Concatenate Strings (Multi)
Concatenate up to 8 strings — the glue node this pack forgot to mention
- STRING
This is the pack's quiet utility node, and the author is refreshingly honest about it: the README basically says "this is the same as any other text concatenation node, we just included it so you don't need another pack." Fair. Concatenate Strings (Multi) takes up to eight string inputs and joins them with a separator you choose. That's the entire job. No file IO, no filtering, no prefixes - it's pure plumbing.
So why does it exist in a prompt-filtering pack? Because of the pairing mechanic in Apply Multiple Prefixes to Keywords: prefixes are matched to keyword lines positionally, one line of prefixes per line of keywords. If you want # on your character line and @ on your artist line, you need a string that has those two lines in the right order. This node assembles that string.
How it works
The source is short and honest. string_1 is required; string_2 through string_8 are optional input sockets. Every non-empty string gets collected in order and joined with the separator. Empty strings are skipped, so you don't have to rewire when you drop an input.
The one subtlety lives in the separator field. The default value is the literal text \n, and the code converts \n (and \r) into actual newlines for you. So type \n in the field to get line breaks, type a comma to get commas, type nothing to glue strings together directly. That's the whole behavior - a beginner-friendly "the author didn't bother documenting this, but it just works" detail.
Inputs that matter
separator- how to join. Default is\n(newline), which is exactly what the sibling node wants for building a prefix list.string_1- required, the first piece.string_2…string_8- optional. Skip any of them; the node quietly ignores what's not connected or empty.
Output is a single STRING. In this pack's workflow it typically feeds the prefixes input of Apply Multiple Prefixes to Keywords, but since it's a plain string out, you can send it anywhere a text node accepts input.
Should you install the pack just for this?
No. If you only need string concatenation, WAS Node Suite, rgthree, and a dozen other packs all ship equivalents, and ComfyUI's own text primitives can cover simple cases. This node is a convenience inside this pack, not a reason to install it. The reason to install the pack is the PromptFilterByFile → StringListConcatenate → ApplyMultiplePrefixesToKeywords chain; this is the middle piece that keeps you from adding a second text-tool pack to do one join.
Installing it
Same story as the rest of the pack. It's on the Comfy Registry, so ComfyUI Manager finds it under "ComfyUI-prompt-filter-nodes" - install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/GHOSTLXH/ComfyUI-prompt-filter-nodes
Restart ComfyUI afterward. No dependencies, no models, no pip install - the pack is pure standard-library Python, which is exactly why the whole thing installs in one command and can't drag in a heavy torch build or an API key you never wanted.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| separator | STRING | \n | — |
| string_1 | STRING | — | |
| string_2opt | STRING | — | |
| string_3opt | STRING | — | |
| string_4opt | STRING | — | |
| string_5opt | STRING | — | |
| string_6opt | STRING | — | |
| string_7opt | STRING | — | |
| string_8opt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |