Concat Text
Joining prompt fragments without one giant text box
- STRING
There's not much mystery here, and that's the appeal: it takes two or three text strings and glues them into one, with a separator you control. If you've ever built a prompt as a single sprawling text box mixing subject, style, and quality tags, this is the node that lets you split that into pieces you can actually edit independently.
How it works
Two required multiline fields, text1 and text2, plus an optional third, text3. separator (default ,) goes between each piece - set it to an empty string if you want the pieces jammed together with nothing between them, or something like a newline or | if you're building something other than a comma-separated prompt. Output is a single STRING.
What people actually use it for
The obvious case is prompt construction: keep a subject block, a style/lighting block, and a quality-tags block as separate text nodes you tweak independently, then concatenate them right before they hit a CLIPTextEncode. That way you can swap "cinematic lighting, 35mm" for "soft studio lighting" without scrolling through and re-finding it inside one giant paragraph. It's just as useful feeding this pack's own text nodes - TextInputAutoSelector or ModifyTextGender, for instance - where building up the input text in pieces upstream is cleaner than hand-editing one long string every time.
It's also generic enough to use for non-prompt text: building a filename out of parts, assembling a caption from separately-generated fragments, anything where "join these strings with something between them" is the actual operation you want, and you'd rather not reach for a more general string-templating node just for that.
Multiline fields on text1/text2/text3 mean each piece can itself hold several lines - this isn't limited to single tag fragments, you can concatenate whole paragraphs of description just as easily as short comma-separated tags, and the separator still goes cleanly between them either way.
Installing it
ComfyUI Manager: search "ComfyUI-utils-nodes." Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/zhangp365/ComfyUI-utils-nodes
Restart ComfyUI. Pure string handling, no dependencies, nothing to configure beyond the node's own fields.
Anything to watch for
Honestly, not much - it's a simple node and there's not a lot of surface area to get wrong. The one thing worth double-checking if your output looks off: text3 is optional, and leaving it disconnected is fine, but if you meant to wire it and forgot, you'll silently get a two-piece concat instead of three with no error telling you a slot went unused. If your final prompt string looks shorter than expected, that's the first thing to check before assuming the bug is somewhere else in the graph.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| text1 | STRING | — | |
| text2 | STRING | — | |
| separator | STRING | , | — |
| text3opt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |