Dynamic Combo
Turn a pasted text list into a searchable dropdown without touching any code
- STRING
- INDEX
- FULL_LIST
Some nodes you add because they generate, some because they save you from editing Python files every time you want a new option. DynamicCombo is the second kind. It takes a plain multiline text box and turns whatever you type into a live, searchable dropdown - no code, no reload, no widget hacking. Paste ten prompt fragments, three model names, a stack of negative-prompt styles, and the combo box updates instantly.
This is one of those quiet utility nodes that earns its keep inside a bigger workflow: you've got a switch somewhere that changes behavior, and instead of hardcoding the choices you keep a text list you can edit in one place. It's the same philosophy as the selector and iterator nodes in this pack - data-driven flexibility without rebuilding the graph.
How it works
You type (or paste) a list into choice_list, pick how it should be split with split_mode, and the dropdown (choice) repopulates in real time as you type. The split modes are: newline, comma, semicolon, pipe, custom, and regex. Newline is the default and the one you'll use most - one item per line, straightforward. The other modes exist for when you're pasting something already comma- or pipe-separated, and custom lets you define your own separator in custom_delimiter (default |). Regex mode runs that same field as a pattern, so you can split on something like ,\s* to swallow stray spaces. Items are trimmed and empty ones dropped, so sloppy pasting doesn't give you blank dropdown entries.
Three outputs come off the back:
STRING- the selected item, ready to feed a CLIP Text Encode prompt or whatever.INDEX- the zero-based position of the selection in the list.FULL_LIST- the cleaned-up list, re-joined as one item per line, useful if you want to echo it back or compare against the original.
That INDEX output is the sleeper feature. Wire it somewhere that needs a number - batch offsets, a seed adjustment, a selector - and your dropdown becomes a control panel. The README's example is exactly this: a custom combo whose selection drives an index somewhere downstream.
The inputs that matter
choice_list- the raw text list. This is the whole point.split_mode- how to split it. Start withnewline.custom_delimiter- only used bycustomandregexmodes.choice- the generated dropdown; this is output-like, you just click it.
Installing it
No models, no heavy dependencies - this pack only needs a recent ComfyUI frontend. ComfyUI Manager → "Install via Git URL" → paste https://github.com/wakaura-asaho/comfyui-dynamic-selector → restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/wakaura-asaho/comfyui-dynamic-selector
# restart ComfyUI
Gotchas
The default newline mode will happily treat one giant comma-separated line as a single dropdown entry, so if your list looks like one long item, switch split_mode to comma or pipe. And if you type something into choice_list that isn't in the parsed list, validation fails with a clear "not in the dynamically generated list" error - the node would rather stop than silently hand you a stale value. One caveat worth knowing: the pack targets the newer V3 node API (frontend >= 1.37.11), so if the node is missing after install, update ComfyUI before you go hunting. The author flags the pack as experimental and it's very new with little community track record yet - fine for a utility like this, just don't build your whole graph on a node you haven't tested.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| choice | COMBO | 0 options: | |
| choice_list | STRING | — | |
| split_mode | COMBO | newline | Choose how to split the string into a combo. |
| custom_delimiter | STRING | | | Used when split_mode is 'custom' or 'regex' |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |
| INDEX | INT | — |
| FULL_LIST | STRING | — |