π String Concat / Append
Glue strings together with sockets that grow as you connect them
- concatenated_string
The humble string-joiner, with a nice trick: you don't pre-declare how many strings you're joining. Connect a wire to string_0 and a string_1 socket appears; connect that one too, and another appears after it. Keep going as long as you need - no menu to dig through, no fixed input count to plan around ahead of time.
How it works
It concatenates whatever's connected, in order, with an optional delimiter inserted between each piece. Leave delimiter empty for direct concatenation, or set it to something like ", " or " | " to keep the pieces readable. Empty inputs are skipped rather than leaving stray delimiters behind, so a disconnected or blank socket doesn't leave you with an awkward double-delimiter in the output.
The dynamic-socket behavior is the part worth calling out specifically: you start with just string_0 visible, and each time you actually connect a wire to the last available socket, a fresh empty one appears below it. There's no dropdown to set "how many strings" up front, and no limit you'll realistically hit - the node grows to match however many pieces your prompt actually needs.
The inputs and outputs that matter
delimiter(optional) - the separator inserted between joined pieces; empty means no separator.string_0,string_1(and more, appearing dynamically as you connect them) - the strings to join, in connection order.
Output: concatenated_string.
How to install it
Via ComfyUI Manager: search ComfyUI-mnemic-nodes, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/MNeMoNiCuZ/ComfyUI-mnemic-nodes
Restart ComfyUI. No model downloads or extra dependencies.
Common issues & troubleshooting
A piece seems to be missing from the output. Because empty inputs are skipped silently rather than erroring, an accidentally disconnected socket just drops out of the join without any warning. If the final string looks shorter than expected, check each connected input rather than assuming the node malfunctioned.
Need different separators in different spots. The delimiter applies uniformly between every connected piece - there's no way to use ", " between the first two strings and " | " between the next two on a single node. Chain two String Concat / Append nodes together if you need mixed separators.
Where this earns its place: building a prompt out of pieces that each come from their own source - a random subject from this pack's Random String, a fixed style block from Literal String, a caption pulled off an image - without hand-typing one long prompt every time you want to swap a single component. Change the source node upstream and the final joined string updates automatically.
It's also a natural pairing with this pack's splitting/extraction nodes going the other direction - pull a value apart with String Text Splitter or String Text Extractor, transform one of the pieces, then reassemble the final string here instead of rebuilding the whole thing from scratch.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| delimiteropt | STRING | Optional separator to insert between concatenated strings (e.g., ', ' or ' | '). Leave empty for direct concatenation. | |
| string_0opt | STRING | String input - connect strings here. More inputs appear as you connect. | |
| string_1opt | STRING | String input - connect strings here. More inputs appear as you connect. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| concatenated_string | STRING | β |