Text Concatenate
Glue five prompts into one string without a single dropdown
- text
Text Concatenate does exactly one boring thing well: it takes up to five text strings and joins them together with a separator you choose, then hands you the result as a single STRING. That's it. No dropdowns of "operations," no hidden magic. In a workflow that's already drowning in nodes, that boringness is the feature.
You'll reach for it the moment you stop typing prompts as one blob and start composing them from parts. Say you've got a character description from a storage node, a style snippet from another, and a quality tag from a third. Wire each into text1, text2, text3, and they come out the other side as one clean prompt string you can feed straight into a CLIP Text Encode. It's the same job the built-in "Primitive" + string juggling does, just with a tidier contract: you decide the glue.
The inputs that matter
Only one input is required: separator, and its default is a newline. That's the detail most people trip on - this node defaults to joining lines, not spaces, because the author set it up for building multi-line prompts where each piece sits on its own row. If you want "cyberpunk, neon, detailed" as one comma-joined string, set separator to , (comma + space). For a space-separated run-on, set it to a single space. You can even glue with \n explicitly if you ever re-order things and the default gets edited away.
text1 through text5 are all optional, and they're marked forceInput in the schema - meaning they're designed to be wired from other nodes, not typed. You can type into them, but if you just want a labeled text box that outputs its own value, Text Storage is the more honest tool. Text Concatenate earns its keep when at least two of those five wires are populated.
Output
One output: text, a STRING. Wire it into any text input on the graph - a CLIP encode, a filename prefix, a LORA prompter, a save node's metadata. Because the output is a plain string, it composes with basically everything else in the ecosystem.
Installing it
ComfyBros installs like any custom node pack. Easiest is ComfyUI Manager - search for "ComfyBros" and install, then restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/turnbros/ComfyBros
Then restart ComfyUI. One quirk: the pack README says pip install -r requirements.txt, but that file doesn't exist in the repo - the real deps (pillow, numpy, requests) are declared in pyproject.toml, and Manager handles those. Don't let the stale README's node list confuse you either; it describes nodes that aren't in the shipped code. Text Concatenate is real and lives under ComfyBros/Text in the node menu.
Gotchas
The separator is literal text, so watch for invisible whitespace. And remember the default joins with newlines - if your workflow suddenly produces multi-line prompts where you expected a single line, that's the separator default, not a bug. Change it once, save the workflow, and it's done. For a genuinely thin node, that's the whole troubleshooting list.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| separator | STRING | — | |
| text1opt | STRING | — | |
| text2opt | STRING | — | |
| text3opt | STRING | — | |
| text4opt | STRING | — | |
| text5opt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |