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 5 months ago· 3
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_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.

    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—