Nodes/ComfyUI_EmAySee_CustomNodes/EmAySee Integer String Selector Max-20
ComfyUI Node

EmAySee Integer String Selector Max-20

Twenty prompt slots under one selector — the big sibling

By EmAySee·Created about a year ago·Updated 4 months ago· 2
EmAySee Integer String Selector Max-20
    • SELECTED_STRING
    string_input_1Input String 1
    string_input_2Input String 2
    string_input_3Input String 3
    string_input_4Input String 4
    string_input_5Input String 5
    string_input_6Input String 6
    string_input_7Input String 7
    string_input_8Input String 8
    string_input_9Input String 9
    string_input_10Input String 10
    string_input_11Input String 11
    string_input_12Input String 12
    string_input_13Input String 13
    string_input_14Input String 14
    string_input_15Input String 15
    string_input_16Input String 16
    string_input_17Input String 17
    string_input_18Input String 18
    string_input_19Input String 19
    string_input_20Input String 20
    select_index1

    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_1string_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.

    CategoryEmAySee_Utils

    Inputs (21)

    NameTypeDefaultDescription
    string_input_1STRINGInput String 1
    string_input_2STRINGInput String 2
    string_input_3STRINGInput String 3
    string_input_4STRINGInput String 4
    string_input_5STRINGInput String 5
    string_input_6STRINGInput String 6
    string_input_7STRINGInput String 7
    string_input_8STRINGInput String 8
    string_input_9STRINGInput String 9
    string_input_10STRINGInput String 10
    string_input_11STRINGInput String 11
    string_input_12STRINGInput String 12
    string_input_13STRINGInput String 13
    string_input_14STRINGInput String 14
    string_input_15STRINGInput String 15
    string_input_16STRINGInput String 16
    string_input_17STRINGInput String 17
    string_input_18STRINGInput String 18
    string_input_19STRINGInput String 19
    string_input_20STRINGInput String 20
    select_indexINT11–20

    Outputs (1)

    NameTypeDescription
    SELECTED_STRINGSTRING