Nodes/Simple Wildcard/SimpleConcat
ComfyUI Node

SimpleConcat

The glue node that turns wildcard output into an actual prompt

By vanillacode314·Created 3 years ago·Updated about a year ago· 6
SimpleConcat
    • STRING
    delimeter,
    input_0
    input_1
    input_2
    input_3
    input_4
    input_5
    input_6
    input_7
    input_8
    input_9
    output_text

    SimpleConcat is the plain-Jane sibling in the Simple Wildcard pack, and it exists because wildcards have a problem: they give you one string, and one string is rarely your whole prompt. The pack's headline node, SimpleWildcard, picks a random line from a .txt file for you. This one just bolts pieces together - up to ten of them - into a single string you can feed to CLIP Text Encode.

    That sounds trivial until you actually want it. Stack a character wildcard, a scene wildcard, and your fixed style suffix into one prompt, and you'd otherwise be hand-glueing them with commas or reaching for a whole other pack. If you're already installing Simple Wildcard, SimpleConcat costs you nothing extra - it ships in the same repo.

    Mechanically it's embarrassingly simple, and that's a compliment. Python's str.join runs over all the input_* fields, with one nice touch: it silently skips any input that's empty or blank. Leave input_3 unwired and you get "red hair, beach, style", not "red hair, beach, , style". No model, no API key, no state - it just concatenates. The name checks out.

    The inputs that matter:

    • delimeter - the string inserted between pieces. Default is ", ", which is right for most booru-style prompts. (The author spells it "delimeter," one i short. You get used to it.)
    • input_0 through input_9 - the ten pieces. They're all optional, multiline, and forceInput, which means they show up as sockets, not text boxes. You don't type into this node; you wire text into it from SimpleWildcard outputs, text/primitive nodes, or other SimpleConcats chained together. Need more than ten pieces? Chain two of these.

    The output_text field on the node is a read-only display that fills in after each run - don't try to type in it, the frontend disables it on purpose.

    The output gotcha people actually hit. SimpleConcat's output is a single STRING, and the natural target is the text field on CLIP Text Encode (Prompt). But SimpleConcat is registered as an output node, so the connection isn't always there to grab - you'll look at CLIP Text Encode and see no socket to drag into. This is the #1 support question for this whole pack. The fix: right-click the text field on CLIP Text Encode → Convert widget to input, then drag from SimpleConcat's output to the new input. Same move you use everywhere else in ComfyUI to turn a widget into a wire.

    Installing it: ComfyUI Manager → search "Simple Wildcard" (the pack title), or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/vanillacode314/SimpleWildcardsComfyUI
    

    then restart ComfyUI. That's it - the only Python dependency is pipe==2.2, a tiny functional-programming helper the wildcard side uses. No model files, no downloads, nothing heavy. SimpleConcat itself doesn't even need the pipe package; it's pure str.join.

    Honest take: if all you need is a string joiner and you've never touched this pack, plenty of bigger suites (WAS Node Suite, rgthree) can do it too. But this one is free, dependency-light, skips blanks for you, and sits right next to the wildcard node it's meant to feed. For a randomize-your-prompts workflow, it's the missing comma you'd otherwise be fighting.

    Categoryvanilla

    Inputs (12)

    NameTypeDefaultDescription
    delimeterSTRING,
    input_0optSTRING
    input_1optSTRING
    input_2optSTRING
    input_3optSTRING
    input_4optSTRING
    input_5optSTRING
    input_6optSTRING
    input_7optSTRING
    input_8optSTRING
    input_9optSTRING
    output_textoptSTRING

    Outputs (1)

    NameTypeDescription
    STRINGSTRING