Nodes/comfyui-axces2000/๐Ÿ”— String Combine
ComfyUI Node

๐Ÿ”— String Combine

The boring prompt-glue ComfyUI forgot to ship

By axces2000ยทCreated 6 months agoยทUpdated about a month agoยท 12
๐Ÿ”— String Combine
    • combined
    โ—„string_1โ€”โ–บ
    โ—„string_2โ€”โ–บ
    โ—„string_3โ€”โ–บ
    โ—„string_4โ€”โ–บ
    โ—„string_5โ€”โ–บ
    โ—„string_6โ€”โ–บ
    โ—„string_7โ€”โ–บ
    โ—„string_8โ€”โ–บ
    โ—„string_9โ€”โ–บ
    โ—„string_10โ€”โ–บ

    ComfyUI still doesn't have a native "join these strings together" node, which is wild given that prompt assembly is half of what people do in the graph. The moment you want to build a prompt from parts - a base, a subject, a style, a lighting phrase that's reused everywhere - you either hand-type the same line into multiple Text Encode nodes or you glue strings with clunky workarounds. ๐Ÿ”— String Combine is the fix: up to ten text inputs in, one combined string out. It's the most boring node in the pack, and the one you'll reach for constantly.

    How it works

    Under the hood it's a single line: "".join(s for s in parts if s is not None). It walks string_1 through string_10 in order, drops anything that isn't connected, and concatenates what's left. Nothing is trimmed, nothing is added, nothing is reordered. What you put in is exactly what comes out, just longer.

    That "nothing is added" part is the whole personality of this node. If you want a space or a comma between parts, you supply it - either inside one of the strings or with a separator upstream. It's deliberate: the author's framing is that content is preserved exactly, and separating is your job.

    The inputs and output that matter

    • string_1 โ€ฆ string_10 - optional STRING inputs, all forceInput, meaning you can't type into them. This trips people up: there's no text box on the node. You wire STRING sources into it - a core String/Primitive node, a text node's output, or another combiner. Unconnected inputs are silently ignored, so a 3-part prompt on a 10-input node just works.
    • combined - the single STRING output. Wire it into CLIP Text Encode (positive or negative), or into any node that eats a string: a prompt scheduler, an LLM-style text node, a filename generator. It chains too - the combined of one StringCombine can feed a string_1 of another if you need more than ten parts.

    The trap

    "No separator added" is the number one "this node is broken" report, and it's not broken - it's honest. Feed it "big cat" and "white" and you get "big catwhite", not "big cat, white". Put the separators in the source strings ("big cat, " + "white") and you'll never think about it again. The second gotcha is the no-typing thing: this is a wiring-only node, so it pairs with primitives, not with your fingers.

    Installing it

    It ships inside the axces2000 pack (comfyui-axces2000). Easiest route is ComfyUI Manager - search "axces2000" in the Custom Nodes section and install. Or the manual way:

    cd ComfyUI/custom_nodes
    git clone https://github.com/axces2000/comfyui-axces2000.git
    pip install -r comfyui-axces2000/requirements.txt
    

    Then restart ComfyUI. Worth knowing: the pack's requirements are torchaudio and soundfile, which only the audio nodes need. This node is pure Python with zero dependencies, so if you're only here for the text nodes you can install the pack and skip the audio deps entirely - it just won't hurt to have them.

    It's a small, MIT-licensed utility pack rather than a household name, so don't expect a big support community - but for a node this simple, that's fine. Wire it, join it, forget it.

    Categorytext

    Inputs (10)

    NameTypeDefaultDescription
    string_1optSTRINGโ€”
    string_2optSTRINGโ€”
    string_3optSTRINGโ€”
    string_4optSTRINGโ€”
    string_5optSTRINGโ€”
    string_6optSTRINGโ€”
    string_7optSTRINGโ€”
    string_8optSTRINGโ€”
    string_9optSTRINGโ€”
    string_10optSTRINGโ€”

    Outputs (1)

    NameTypeDescription
    combinedSTRINGโ€”