Concat Text _O
Glue a prompt together without a dozen add nodes
- STRING
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
text2is blank, you gettext1+ 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
textfields -text1throughtext5also 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.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| text1opt | STRING | — | |
| text2opt | STRING | — | |
| text3opt | STRING | — | |
| text4opt | STRING | — | |
| text5opt | STRING | — | |
| text6opt | STRING | — | |
| text7opt | STRING | — | |
| text8opt | STRING | — | |
| text9opt | STRING | — | |
| text10opt | STRING | — | |
| text11opt | STRING | — | |
| text12opt | STRING | — | |
| text13opt | STRING | — | |
| separatoropt | STRING | , | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |