Nodes/ComfyUI_StarNodes/⭐ Star Text Inputs (Concatenate)
ComfyUI Node

⭐ Star Text Inputs (Concatenate)

Concatenate your prompt parts and let the empty ones vanish

By Starnodes2024·Created 2 years ago·Updated a day ago· 102
⭐ Star Text Inputs (Concatenate)
    • STRING
    separator
    num_strings2

    Building a good prompt is often assembling one: a fixed quality block, plus a subject part, plus an optional style part, plus an optional negative overrides block. Star Seven Inputs (txt) (StarTextInput) is the pack's text-joiner for exactly that: up to seven text inputs get concatenated with a separator (a space by default) into one output string - and here's the part that makes it better than a naive join - empty inputs are skipped. Leave slots unwired and they contribute nothing, so the same node works whether you're using two parts or seven.

    How it works

    A separator input (default a single space) and text1 through text7, all optional. Non-empty texts are collected in slot order and joined with the separator. That's the whole mechanism, and it's the text-sibling of the pack's image and latent auto-switches - except this one concatenates rather than picking one. The README calls it: "Text concatenation with optional inputs. Works as automatic switch and concatenates multiple inputs."

    One nice behavior worth knowing: if every slot is empty, the node returns a cheerful fallback string ("A cute little monster holding a sign with big text: GIVE ME INPUT!") instead of a blank string. It won't save you from a bad prompt, but it at least makes "I forgot to connect anything" obvious in the output rather than silently blank.

    The inputs that matter

    • separator - how the parts join. A space is the right default for prompt words; switch to , for tag-style lists, or \n for blocks of lines.
    • text1 … text7 - your prompt parts. Slot order is output order, so the quality block you want first goes in slot 1.

    Output: one STRING, ready for a starter's text field, a CLIPTextEncode, or further processing through the pack's Star Text Filter.

    Where it earns its place

    The pattern it serves is modular prompt design. Keep your negative block, quality block, and style additions as separate upstream text sources - a wildcard node like Star Seven Wildcards feeding the dynamic parts, Star Easy-Text-Storage feeding a saved block, an LLM node feeding a generated part - and this node is the merge point. Because empties vanish, a shared workflow with "optional style" just leaves that slot unwired and the prompt still assembles cleanly, no extra conditional nodes required.

    Honest notes

    It's a joiner, not a formatter: you won't get dedup, trimming of internal whitespace, or smart punctuation handling. Feed it a part ending in a comma plus a separator of ", " and you'll get a double comma. If that matters, run the result through Star Text Filter afterward, or keep your parts free of trailing punctuation. And while the info schema shows a fixed seven slots, the current code also supports a num_strings widget for dynamic slot counts - but for stability, build to the seven you can see.

    Install

    Part of the StarNodes pack:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Starnodes2024/ComfyUI_StarNodes
    

    or ComfyUI Manager → search Starnodes, restart, find it under ⭐StarNodes/Text And Data. No dependencies beyond the standard library. It's one of the simplest, least-surprising nodes in the pack - which, for text plumbing, is exactly what you want.

    Category⭐StarNodes/Text And Data

    Inputs (2)

    NameTypeDefaultDescription
    separatorSTRING
    num_stringsINT21–64

    Outputs (1)

    NameTypeDescription
    STRINGSTRING