String Combiner - PromptDrafter
Stop hand-joining prompt parts
- combined
ComfyUI's plumbing layer is full of small nodes whose only job is to keep you from typing the same thing twice, and String Combiner - PromptDrafter is a good one of those. It takes up to 25 input strings and joins them into one output with a , separator - and, unlike doing it by hand, it handles the ugly edge cases. No double commas, no trailing ones, blank inputs simply skipped. If you're assembling a prompt from several sources (a subject from one node, a quality string from another, a style tag from a third), this is the node that glues them together before the text hits your encoder.
It's the kind of utility that looks trivial until you've debugged a prompt that reads masterpiece, best quality,, portrait, , detailed eyes. The smart comma handling exists precisely so that output never happens. Any input with leading or trailing commas gets them stripped before joining, and empties are ignored entirely.
What you actually set
The schema is genuinely small:
input_count- an integer from 2 to 25, default 2. It controls how many input slots are visible. Show only the three you need; the rest stay hidden.string_1throughstring_25- optional text inputs. Only the count you chose ininput_countare shown, and unconnected or blank ones are silently ignored at combine time.combined- the single STRING output. Wire it into a CLIP Text Encode, or into a PromptDrafter node's prefix/suffix input if you want it glued onto a larger prompt.
Because every input is forceInput, they present as sockets rather than widgets - this node is designed to be fed by other nodes, not typed into. A typical setup: a quality-tags string from a Single PromptDrafter node and a subject string from somewhere else both land here, and combined goes to the positive CLIP encode.
Installing and the gotcha that's fixed now
Install via ComfyUI Manager (search "PromptDrafter") or:
cd ComfyUI/custom_nodes
git clone https://github.com/Carasibana/ComfyUI-PromptDrafter
Restart after. No dependencies beyond ComfyUI itself, no model files - it's pure string work.
The one real gotcha this node had is already in the changelog, which matters if you're on an old version: input connections used to get dropped on workflow reload or when you changed input_count. That was a LiteGraph timing bug, fixed in v1.2.1 by moving the input reconciliation from node-creation time to after the graph is fully wired. If you're seeing connections vanish when you reopen a workflow, update the pack rather than re-wiring everything by hand. And one quirk to expect: the node is always-dirty, so it re-runs every generation - which for a pure string joiner is harmless, just slightly more work than strictly needed.
Inputs (26)
| Name | Type | Default | Description |
|---|---|---|---|
| input_count | INT | 22–25 | — |
| string_1opt | STRING | — | |
| string_2opt | STRING | — | |
| string_3opt | STRING | — | |
| string_4opt | STRING | — | |
| string_5opt | STRING | — | |
| string_6opt | STRING | — | |
| string_7opt | STRING | — | |
| string_8opt | STRING | — | |
| string_9opt | STRING | — | |
| string_10opt | STRING | — | |
| string_11opt | STRING | — | |
| string_12opt | STRING | — | |
| string_13opt | STRING | — | |
| string_14opt | STRING | — | |
| string_15opt | STRING | — | |
| string_16opt | STRING | — | |
| string_17opt | STRING | — | |
| string_18opt | STRING | — | |
| string_19opt | STRING | — | |
| string_20opt | STRING | — | |
| string_21opt | STRING | — | |
| string_22opt | STRING | — | |
| string_23opt | STRING | — | |
| string_24opt | STRING | — | |
| string_25opt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| combined | STRING | — |