Combine Prompt
The Node That Turns Eight Dropdowns Into One Prompt
- positive_prompt
- negative_prompt
Combine Prompt is where the Prompt Builder pack finally pays out. Every other node in the pack - Style Preset, Character, Action, all of them - is a "section" that spits out one comma-joined string. This node is the merge point: it takes all seven sections, adds whatever custom text you type, and hands you a finished positive and negative prompt you can wire into a KSampler. It's the only node you'll definitely keep in the final graph, which is also why it's the one Google actually sends people to.
How it works
Despite the name, there's no AI and no API call here. Combine Prompt is a text joiner with a fixed, deliberate order. Reading the source, it concatenates your inputs in exactly this sequence:
style_preset, composition, preset_character, character, action, environment, nsfw, positive_prompt_text
That order isn't random. On the CLIP-encoded models this pack is aimed at (Pony V6, Illustrious, NoobAI), earlier tokens get stronger attention, so the style lands first on purpose - the README says Style Preset has a major influence on the final output, and the code backs that up. Any section left on None is skipped, and it cleans up stray double commas so you never get 1girl,, ,,night garbage.
The inputs and outputs that matter
Of the nine inputs, a beginner only really touches three:
- The seven section inputs (
style_preset,composition,preset_character,character,action,environment,nsfw) - these are just the string outputs of the other nodes in the pack, wired in by hand. positive_prompt_text- your freeform escape hatch. It's appended last, which on CLIP models is the weakest-attention position, so don't expect a custom sentence to dominate a fully-loaded Character node.negative_prompt_text- and here's the gotcha that will bite you. The shipped default is pure Pony DNA:score_6, score_5, score_4, source_pony,followed by a wall of quality and anatomy boilerplate. That formula makes sense on Pony V6 and its descendants, where thescore_xvocabulary is actually trained in. On an Illustrious or NoobAI checkpoint those score tags mostly do nothing, and on a distilled model you run at CFG 1 the entire negative prompt does nothing at all - at CFG 1 ComfyUI doesn't even compute the unconditional pass. Swap the default for whatever your model family expects.
Outputs are two strings: positive_prompt and negative_prompt. Each feeds into a CLIP Text Encode node, which converts them into conditioning for the KSampler.
Install
Same story as every node in this pack, and a rare pleasant one: there's no requirements.txt, no pip dependencies, and nothing to download. Python 3.10+ is all it needs.
cd ComfyUI/custom_nodes
git clone https://github.com/zinigo-creations/comfyui-prompt-builder
Restart ComfyUI. Or, easier, use ComfyUI Manager - search for "Prompt Builder", install, restart. In a world where half of custom nodes drag in conflicting dependencies, this one just works.
Common issues
The most frequent mistake is leaving a section unwired and then staring at a prompt missing half your character. Every section node outputs a string - drag all seven into Combine Prompt. If your negative prompt looks wrong for your checkpoint, that's the Pony-default problem above, not a bug. And if you edit presets.json to customize the dropdowns, restart ComfyUI before expecting to see changes - the dropdowns are read when the node loads. One last honest note: this pack speaks Danbooru tags for the anime-SDXL lineage. If your pipeline is Flux or a 2026 LLM-encoded model, the tag vocabulary and () weights this whole approach leans on are the wrong tool, and no amount of combining will fix that.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| composition | STRING | — | |
| preset_character | STRING | — | |
| character | STRING | — | |
| action | STRING | — | |
| environment | STRING | — | |
| nsfw | STRING | — | |
| style_preset | STRING | — | |
| positive_prompt_text | STRING | — | |
| negative_prompt_text | STRING | score_6, score_5, score_4, source_pony, (worst quality:1.2), (low quality:1.2), (normal quality:1.2), lowres, bad anatomy, bad hands, signature, watermarks, ugly, imperfect eyes, skewed eyes, unnatural face, unnatural body, error, extra limb, missing limbs | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| positive_prompt | STRING | — |
| negative_prompt | STRING | — |