⭐ Star Text Inputs (Concatenate)
Concatenate your prompt parts and let the empty ones vanish
- STRING
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\nfor 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.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| separator | STRING | — | |
| num_strings | INT | 21–64 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |