Join Strings (Text-Driven)
Autogrowing pins, one delimiter, everything stitched together
- string_inputs
- string_out
Join Strings (Text-Driven) is the node every other node in this pack ultimately points at. All those prompt fragments - the character core from Text Line Selector, the staging from Prompt Line, the weighted bits from Multi Prompts - have to become one string before CLIP Text Encode will look at them, and this is the seam. It's a concatenator with two genuinely nice properties: a custom delimiter and input pins that grow themselves as you connect things.
How it works
Two inputs. delimiter is just a string - set it to , and your fragments join comma-separated; set it to \n and they stack as lines. Leave it empty (the default) and they join with nothing, which is fine for tag-style prompts that already carry their own commas.
The second input is the interesting one: string_inputs, an Autogrow pin. This is the ComfyUI V3 extension API's native dynamic-input feature, and it behaves exactly like you hope: connect a wire to the first string pin and a second pin materializes; connect that and a third appears, up to 100. No "max inputs" widgets to fiddle with, no plus buttons. The backend sorts the pins numerically (string0, string1, string2…), skips empty ones, and joins the rest with your delimiter into string_out.
For this pack, the intended shape is a small tree of prompt-assembly nodes all draining into one Join Strings, then straight into the CLIP encoder. It's also where the README's "batch size = 1 but 2 images" trick comes together: when Prompt Line feeds it a list of staging prompts, Join Strings passes that through and the KSampler sees multiple conditionings and renders one image each.
What to watch
The delimiter is literal, not smart - if you type , expecting it to be a magic "smart comma" it just is what it is. And the join skips empty inputs, which is usually what you want (a muted fragment upstream simply drops out) but can surprise you if you wanted a placeholder line in the output. It also does no deduplication and no cleanup - that's what the individual prompt nodes are for.
This node is also the clearest demonstration that the pack is built on ComfyUI's new V3 declarative API: Autogrow inputs are a platform feature, not a hack. That's also your one install caveat - see below.
Install
Part of ComfyUI Text-Driven Workflows. ComfyUI Manager → search "ComfyUI Text-Driven Workflows" → Install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/kanryu/ComfyUI-Text-Driven-Workflows.git
Restart. No pip dependencies, no models - genuinely empty dependency list. The catch is ComfyUI's version: this pack needs the V3 extension API that ships with current builds. On an older install you'll get "Failed to load nodes" in the console and no Text-Driven Workflows category until you update ComfyUI.
Bottom line
A string joiner is a string joiner, but the autogrowing pins and the clean delimiter make this one nicer than the half-dozen concatenate nodes floating around the ecosystem, and it's the correct hub for this pack's prompt-assembly pattern. If you only wire up one node from the pack, this is probably it.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| delimiter | STRING | — | |
| string_inputs | COMFY_AUTOGROW_V3 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| string_out | STRING | — |