ComfyUI Node

Join Strings

An autogrow text list that turns N blocks into one prompt

By jupo-ai·Created about a year ago·Updated 4 months ago· 2
Join Strings
  • texts
  • STRING
delimiter
cleanupfalse

Join Strings is the grown-up sibling in the comfy-join-prompt pack. Where Join Prompt gives you exactly two fixed slots, this one hands you a stack of text inputs that grows and shrinks as you add or remove them, then joins the whole pile into a single string with a delimiter you choose. If you've ever built a prompt from half a dozen building blocks - base tags, subject, character, style, a quality block - this is the node that makes that a clean list instead of a mess of nested text nodes.

How it works

The texts input is an autogrow field. In ComfyUI's newer node API this renders as a collapsible list where you click to add another text slot (text_1, text_2, …) up to a max of 50, or remove the ones you don't need. Every non-empty slot is gathered, and the node joins them with whatever delimiter you set. Then it's done: one STRING out.

Two details make it more than a dumb concat. First, the delimiter parses the common escape sequences - type \n and you get a real newline, \t a real tab. That's handy when you want line breaks between prompt blocks for LLM-style encoders that read structure (Flux, Chroma, the Qwen-based models - the knowledge base has a whole section on this). Second, the cleanup toggle: when it's on, each input is normalized before joining. It splits each line on commas, trims whitespace off every tag, and rejoins with ", ". So a sloppy line like red dress, blue eyes ,cinematic becomes red dress, blue eyes, cinematic. For tag-heavy prompts - the Danbooru/Illustrious style, where comma-and-space consistency genuinely matters - that's a small lifesaver.

Inputs and outputs

  • texts - the autogrow list of string inputs. The one you'll actually poke at.
  • delimiter - a plain STRING, default "". Set to ", " for tags, "\n" for block-separated prompts, or " " if your inputs already carry their own punctuation.
  • cleanup - a BOOLEAN, default false. Flip it on to normalize comma-spacing in every input before joining.

The output is a STRING. It's not conditioning - wire it into CLIPTextEncode (or another node that wants text), never directly into a sampler.

The trap

Same footgun as its sibling: the delimiter defaults to empty. "cat" + "dog" joined with no delimiter is catdog. If you expected a separator to materialize, it won't - set it explicitly. That's honestly the only thing that's easy to get wrong here.

Install

Via ComfyUI Manager, search comfy-join-prompt; or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/jupo-ai/comfy-join-prompt

then restart ComfyUI. No Python dependencies, no model downloads, no API keys - it's a tiny pure-string pack. The one requirement that matters: it's built on ComfyUI's new comfy_api node framework, so it needs a current (2.x-era) ComfyUI. If the node loads as a red/missing class after install, update ComfyUI first. And if you only ever need two inputs, the pack's other node, Join Prompt, is the same idea with a fixed pair of slots.

Categoryjupo/JoinPrompt

Inputs (3)

NameTypeDefaultDescription
textsCOMFY_AUTOGROW_V3
delimiterSTRING
cleanupBOOLEANfalse

Outputs (1)

NameTypeDescription
STRINGSTRING