Nodes/ComfyUI_Dados_Nodes/Text Concatenator
ComfyUI Node

Text Concatenator

Glue strings together with a delimiter you control

By DadoIrie·Created 2 years ago·Updated 3 days ago· 10
Text Concatenator
    • text
    delimiter,

    This one does exactly what its name promises, no more and no less: it joins text strings together with a separator you pick. Not glamorous, but genuinely useful once you start building prompts out of pieces instead of one long hand-typed block - a Text DropDown for style, another for lighting, a trigger-word string from somewhere else, all funneled into one final prompt right before it hits your encoder. It's part of dadoirie's ComfyUI_Dados_Nodes pack, listed in the README as "Dynamic Text Concatenate - flexible text combination with custom delimiters."

    How it works

    The formally documented part of this node is small: one required field, delimiter, a string that defaults to ", " - the classic comma-and-space you'd use for a Danbooru-style tag list. Set it to a single space if you're combining sentence fragments instead of tags, a newline if you want each piece on its own line, or a pipe if you're going for a wildcard-style look.

    The "dynamic" half - combining more than one piece of text - is exactly that: dynamic, meaning it isn't a fixed, named field the way delimiter is. Instead of a hardcoded text_1, text_2 and so on, you add as many text inputs as you actually need on the canvas itself. That's a common pattern for "combine N of these" nodes across ComfyUI generally - the same idea shows up for merging masks or batching images - so look for the node's own add/remove control on canvas rather than expecting a fixed set of slots.

    Inputs and outputs that matter

    • delimiter (STRING, default ", ") - the one input the schema actually names. Everything between your joined pieces uses this exact string.
    • text (STRING) - the single output: your inputs, joined. Wire it into a CLIP Text Encode, a save-text node, or chain it into a second Text Concatenator if you're assembling a prompt in stages.

    Installing it

    Standard for this pack:

    • ComfyUI Manager - search "Dados Nodes," install, restart ComfyUI.
    • Manual - cd ComfyUI/custom_nodes && git clone https://github.com/dadoirie/ComfyUI_Dados_Nodes.git, then cd ComfyUI_Dados_Nodes && pip install -r requirements.txt, then restart.

    That install pulls in the whole pack's dependencies at once, including the ones for its vision-tagger and wildcard nodes - you don't get to install just this one node's requirements separately, so don't be surprised by extra packages landing even if all you wanted was string concatenation.

    Common issues

    The most common gotcha with any concatenator, this one included: leave a slot unwired or blank and you can end up with an orphan delimiter sitting in your output - a stray , with nothing on one side of it. It won't throw an error, it'll just quietly land in your prompt, so it's worth glancing at the actual joined string before you fire off a big batch, especially if you're not previewing the text output anywhere.

    If you're stacking a few of these with different delimiters in one workflow, rename each node (right-click → Title) so you're not guessing which one uses commas and which one uses newlines six months from now - the delimiter value doesn't show in the node's default title, so it's easy to lose track once a graph gets busy.

    Beyond that, the usual pack-wide friction applies: if the node doesn't appear after installing, restart the ComfyUI process rather than just refreshing the browser tab - a very common "it's not showing up" fix across the ecosystem generally, not specific to this pack. And if you share a workflow using this node with someone who doesn't have the pack installed, they'll hit a missing-node error on load; ComfyUI Manager's "Install Missing Custom Nodes" resolves that in one click rather than making them track down the GitHub URL by hand.

    CategoryDado's Nodes/Text

    Inputs (1)

    NameTypeDefaultDescription
    delimiterSTRING,

    Outputs (1)

    NameTypeDescription
    textSTRING