String Concate 9 Parallelly
Wrap nine strings in the same prefix and suffix at once
- text_1
- text_2
- text_3
- text_4
- text_5
- text_6
- text_7
- text_8
- text_9
The display name is "String Concate 9 Parallelly," and that's actually the most useful piece of documentation this node comes with - the pack's own README doesn't mention it at all. What it does is simple once you see it: you give it up to nine separate strings, a shared prefix and a shared suffix, and it wraps every one of them the same way, in parallel, keeping them as nine separate outputs. It's the node for when you've got a batch of short strings - subject tags, trigger words, filenames - that all need the same wrapper text glued on, and you don't want to drag in nine individual "prepend/append" nodes to do it.
The trap: it's not a merge
If you've used a "concat" node before, your instinct is that this one takes several strings and mashes them into one output. It doesn't. Each of the nine text slots gets processed independently and comes back out its own slot - text_1 in becomes text_1 out, still separate from text_2. If you were expecting one combined string and got nine unchanged-looking outputs instead, this is why: you're looking at nine parallel pipelines sharing one prefix and one suffix, not a single joiner.
The inputs and outputs that matter
Three required fields, plus nine optional text slots:
prefixandsuffix- plain strings, both default empty. Whatever you put here gets added to the front and back of every non-empty text slot you fill in.join_with_space- a boolean toggle (default on). When it's on, a space goes between the prefix, the text, and the suffix. Turn it off if you need them jammed together with no separator - useful for building filenames or tags where a stray space breaks things downstream.text_1throughtext_9- optional strings, all default empty. Fill in as many as you need; leave the rest blank.
Outputs mirror the inputs one-for-one: text_1 through text_9, each carrying its own wrapped string. Wire whichever ones you filled into wherever those strings need to go - separate CLIP Text Encode nodes, separate Save Image filename prefixes, whatever your graph needs nine of.
How to install it
Search RuiquNodes for ComfyUI in ComfyUI Manager, or do it by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/ruiqutech/ComfyUI-RuiquNodes
Restart ComfyUI. There's nothing to download here - this is pure string manipulation, no models, and going by the README, no heavy Python dependencies either. It should show up instantly with no pip install step and no first-run wait.
Where people get burned
The README for this whole pack is three sentences long, and none of them are about StringConcat9 - the only node it actually describes is a completely different family, EvaluateMultiple1/EvaluateMultiple3, which run arbitrary fragments of Python code. That's worth knowing even if you never touch those nodes yourself: installing this pack for its string utilities pulls in everything else that ships alongside it, and ComfyUI custom nodes execute with full Python access on import, no sandbox. Nothing here suggests RuiquNodes is doing anything shady - it's just a fact of how ComfyUI custom node packs work in general, and it's worth a glance at what else is in the custom_nodes/ComfyUI-RuiquNodes folder after you install it.
Beyond that, this is about as obscure a node as they come - it doesn't show up in community troubleshooting threads anywhere, so there's no folklore to pass on. If something's not working, the two real culprits are the ones above: you're expecting a merged output instead of nine parallel ones, or you left join_with_space in the wrong state and got a run-together string (or an unwanted space) where you didn't want one. Toggle it and check the output - there's no third knob to blame.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| prefix | STRING | — | |
| suffix | STRING | — | |
| join_with_space | BOOLEAN | true | — |
| text_1opt | STRING | — | |
| text_2opt | STRING | — | |
| text_3opt | STRING | — | |
| text_4opt | STRING | — | |
| text_5opt | STRING | — | |
| text_6opt | STRING | — | |
| text_7opt | STRING | — | |
| text_8opt | STRING | — | |
| text_9opt | STRING | — |
Outputs (9)
| Name | Type | Description |
|---|---|---|
| text_1 | STRING | — |
| text_2 | STRING | — |
| text_3 | STRING | — |
| text_4 | STRING | — |
| text_5 | STRING | — |
| text_6 | STRING | — |
| text_7 | STRING | — |
| text_8 | STRING | — |
| text_9 | STRING | — |