HT Parameter Extractor
Embed your sampler settings inside the prompt text
- parsed_text
- label
- value_string
- value_float
- value_int
Here's a workflow trick the pack is built around: put control values inside your prompt text, then pull them back out as typed numbers. HT Parameter Extractor is the node that does the pulling. It scans your text for labeled parameters in a specific format, returns the value as STRING, FLOAT, and INT simultaneously, and can strip the parameter blocks out of the text so the prompt you hand the sampler is clean. It's the plumbing for "prompt-driven generation settings."
How it works
The format it expects is identifier[label=value]separator. With the defaults that reads like:
a cozy cabin, warm lighting %%[steps=30] && %%[cfg=7] && %%[seed=12345] &&
Where %% is the identifier, steps is the label, 30 is the value, and && is the separator. Feed that into input_text, set label to steps, and the node finds the block, returns steps as the label output and 30 as value_string / value_float / value_int. The three typed outputs are the point - you can wire the INT straight into a KSampler's steps input, the FLOAT into a cfg input, no conversion nodes needed.
The two flags matter:
clear_parameters- when on, the returnedparsed_texthas all parameter blocks removed, leaving just the clean prompt. Set it true when the same text feeds both an extractor and a text-encoder, so the sampler never sees the%%[...]&&scaffolding.debug_mode(default on) - prints what it found to the console. Turn it off once things work if you hate console noise.
The match is case-insensitive on the label, and it uses a robust regex pass (the source has both a general parser and the regex path, so it handles multiple parameters in one string). Outputs: parsed_text, label, value_string, value_float, value_int.
Why you'd bother
The payoff is batch and template workflows: one text template carries per-image settings, and extractors fan them out to the nodes that need them. It's a homegrown, prompt-embedded version of what dedicated workflow systems do with separate metadata. It's also handy for seeds - embedding the seed in the text means the prompt you save contains its own reproducibility info, which pairs nicely with the pack's seed nodes.
Installing
Standard pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/ArtHommage/HommageTools.git
cd HommageTools && pip install -r requirements.txt
restart, or Manager → "HommageTools for ComfyUI". Pure string parsing, no models.
The honest take
Cute and useful, with one foot firmly in "works best in your own workflows." The syntax is yours to enforce - if a prompt arrives without %%[...]&& blocks, the extractor just returns empty, so the whole pattern depends on consistent formatting (that's exactly why the dynamic prompt node in this pack pairs with it). And it's a single text line, not a data structure, so multi-value parsing stays simple-but-brittle. Worth having for prompt-driven automation; don't expect it to read arbitrary text - that's what the Gemini node is for.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| input_text | STRING | — | |
| separator | STRING | && | — |
| identifier | STRING | %% | — |
| label | STRING | — | |
| clear_parameters | BOOLEAN | false | — |
| debug_mode | BOOLEAN | true | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| parsed_text | STRING | — |
| label | STRING | — |
| value_string | STRING | — |
| value_float | FLOAT | — |
| value_int | INT | — |