EmAySee Integer String Selector Max-20
Twenty prompt slots under one selector — the big sibling
- SELECTED_STRING
When four choices aren't enough
EmAySee_IntegerStringSelectorNodeDynamic is the same idea as its four-slot sibling - index into a list of strings with an integer, get one back - but with twenty slots. The display name calls it "Max-20" and that's exactly what you get: string_input_1 through string_input_20, plus a select_index slider from 1 to 20, and one SELECTED_STRING output.
Where this earns its keep is any workflow where a pile of named variants needs to stay visible and switchable: a bank of twenty style prompts, a set of negative-prompt policies, a collection of trigger-word strings for different LoRAs. Because the index is a regular INT input, you can drive it from a random node or a seed to sweep through all twenty for a batch. That's the same pattern the four-slot version gives you, just at a scale where the alternatives (a String List + indexer, or a big Switch node) start to feel fiddlier than a purpose-built node.
How it works
One honest caveat before the mechanics: the name says "Dynamic," but the slots are not dynamic in the ComfyUI sense - they're twenty fixed STRING text fields baked into the schema. There's no runtime wiring of arbitrary string lists; you fill in the boxes. The "dynamic" part is just that the selector resolves the input by key lookup (kwargs[f"string_input_{select_index}"]) instead of a hardcoded if/elif chain like the four-slot node. Same result, more slots.
What you actually set
string_input_1…string_input_20- twenty text fields. Only the ones you use need real content; unused slots can be blank (they're required inputs, but empty strings are fine).select_index(INT, 1–20) - which slot comes out. Default 1.
Output: SELECTED_STRING - the single chosen string.
Install
It ships in ComfyUI_EmAySee_CustomNodes:
cd ComfyUI/custom_nodes
git clone https://github.com/EmAySee/ComfyUI_EmAySee_CustomNodes
# restart ComfyUI
Or grab it via ComfyUI Manager → search "ComfyUI_EmAySee_CustomNodes". No extra dependencies, no model downloads - the whole pack has no requirements.txt. On startup it prints a big magenta "SPECTRE" banner; that's just the pack's personality, not a warning.
Gotchas
The obvious one: twenty text boxes is a lot of visual noise. If you routinely use three, the four-slot EmAySee_IntegerStringSelectorNode is the tidier choice. And remember the output is a plain string - if you're feeding it into a prompt encoder, make sure the downstream node accepts a STRING input directly or convert it to conditioning first. There's nothing here that can crash a graph; the only failure mode is picking an empty slot and getting a blank prompt through.
Inputs (21)
| Name | Type | Default | Description |
|---|---|---|---|
| string_input_1 | STRING | Input String 1 | — |
| string_input_2 | STRING | Input String 2 | — |
| string_input_3 | STRING | Input String 3 | — |
| string_input_4 | STRING | Input String 4 | — |
| string_input_5 | STRING | Input String 5 | — |
| string_input_6 | STRING | Input String 6 | — |
| string_input_7 | STRING | Input String 7 | — |
| string_input_8 | STRING | Input String 8 | — |
| string_input_9 | STRING | Input String 9 | — |
| string_input_10 | STRING | Input String 10 | — |
| string_input_11 | STRING | Input String 11 | — |
| string_input_12 | STRING | Input String 12 | — |
| string_input_13 | STRING | Input String 13 | — |
| string_input_14 | STRING | Input String 14 | — |
| string_input_15 | STRING | Input String 15 | — |
| string_input_16 | STRING | Input String 16 | — |
| string_input_17 | STRING | Input String 17 | — |
| string_input_18 | STRING | Input String 18 | — |
| string_input_19 | STRING | Input String 19 | — |
| string_input_20 | STRING | Input String 20 | — |
| select_index | INT | 11–20 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SELECTED_STRING | STRING | — |