ComfyUI Node

Concat Text _O

Glue a prompt together without a dozen add nodes

By omar92·Created 3 years ago·Updated 5 months ago· 181
Concat Text _O
    • STRING
    text1
    text2
    text3
    text4
    text5
    text6
    text7
    text8
    text9
    text10
    text11
    text12
    text13
    separator,

    Every serious ComfyUI prompt starts as pieces - a subject, a style, a quality suffix, a LoRA trigger - and at some point those pieces have to become one string you feed to a CLIP Text Encode. That's exactly what Concat Text _O does: it takes up to 13 strings and joins them with a separator you choose (default ,), so instead of stacking add/concat nodes you just drop a few text widgets into one box and wire the single output to your encoder.

    It lives in the O/ group, in O/text/operations, from the Quality of Life Suit pack. If you've ever built a "dynamic prompt" where one node holds the base and another holds a wildcard or a ChatGPT-generated tag list, this is the node that fuses them. It's the same idea as the old A1111 wildcard syntax that people keep rediscovering - the point is that you don't hand-edit a prompt string per run; you compose it from interchangeable parts.

    How it works

    The mechanism is boring in the best way. Each of the 13 inputs (text1 through text13) is an optional string, and separator is what gets inserted between them. Two details matter:

    • Empty inputs are silently dropped. If text2 is blank, you get text1 + separator + text3, not a hole. That's a feature - it means you can leave slots unused without messing up the join.
    • There's no trailing separator. The node joins the pieces between each other, so "a", "b", "c" with , gives "a,b,c" - not "a,b,c,". Good.

    The single output is a STRING ready for your positive conditioning.

    The inputs that matter

    You really only touch two things:

    • separator - default , (the classic prompt-tag joiner). Set it to a space or newline if you're building a description instead of a tag list.
    • The text fields - text1 through text5 also accept wired input, so you can route another node's output straight in and mix dynamic and static text freely.

    Installing it

    This node ships in the Quality of Life Suit, so the install is pack-wide. Easiest route is ComfyUI Manager - search for ComfyUI-QualityOfLifeSuit_Omar92 and hit install - or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/omar92/ComfyUI-QualityOfLifeSuit_Omar92.git
    

    Then restart ComfyUI completely (a browser refresh isn't enough). All the pack's nodes appear under O/. The pack has no requirements.txt; its optional dependencies (OpenAI, pygit2) get pulled at runtime only if you use those features, so a plain text-concat workflow needs nothing extra.

    When it bites

    The only real gotcha is expecting a separator between every field when the input is empty - blank slots vanish, which is usually what you want, but it means you can't use an empty input to insert a literal gap. If you need that, put the separator in a text field yourself. Otherwise this is one of those nodes that just works and quietly sits in the corner of every workflow you actually ship.

    CategoryO/text/operations

    Inputs (14)

    NameTypeDefaultDescription
    text1optSTRING
    text2optSTRING
    text3optSTRING
    text4optSTRING
    text5optSTRING
    text6optSTRING
    text7optSTRING
    text8optSTRING
    text9optSTRING
    text10optSTRING
    text11optSTRING
    text12optSTRING
    text13optSTRING
    separatoroptSTRING,

    Outputs (1)

    NameTypeDescription
    STRINGSTRING