Prompt Builder (CCN)
Five labeled text boxes, one assembled prompt, zero hidden state
- prompt
Structured prompts are the modern habit. The prompt-engineering reality in 2026 is that your prompt is closer to an instruction than a bag of tags, and organizing it into blocks - what's in the scene, what the camera's doing, what the mood is - tends to read better to the LLM-encoded encoders most models now run on. Prompt Builder (CCN) is the low-friction version of that: five labeled text boxes that get joined into a single STRING for your CLIP Text Encode.
The section labels are metadata, features, scene, details, and feedback - a natural storytelling split: what it is, who's in it, where it happens, how it moves, and any flavor/note-style commentary. Empty sections are simply skipped, so you can leave most of them blank and get a clean prompt instead of a wall of : prefixes.
What it does (and doesn't do)
This is the stateless variant. Type, run, get your prompt, done - nothing is remembered between runs. If you want the version that remembers, that's the Prompt Store family; this node is deliberately simple. For that simplicity you get exactly three knobs that matter:
- The five section boxes - your actual prompt content.
- prefix_sections - off by default. Flip it on and each section gets its name prepended, like
scene: a rainy neon alley. On LLM-encoded models that labeling can genuinely help; on booru-style SDXL it's usually noise, so test it. - delimiter - default
\n\n(typed as the two-character escape), which is how the sections get glued together. Change it to,if you want a comma-joined tag list instead of block paragraphs.
Output is a single prompt STRING that goes straight into a CLIP Text Encode. If you want a section's text separately - say you want to re-use the scene elsewhere in the graph - the Store variant is the better tool, because it exposes each section as its own output.
Install
Part of ComfyCollectorNodes; one install covers all of it:
cd ComfyUI/custom_nodes
git clone https://github.com/valkymaera/ComfyCollectorNodes
then restart ComfyUI. Or search "ComfyCollectorNodes" in ComfyUI Manager. No models to download, no extra dependencies.
Where people get burned
The delimiter is the classic trap: it's stored as the literal string \n\n, so if you type actual newlines into that field it may behave differently than you expect - leave the default alone unless you mean to change it. Also, remember this node stores nothing: if you edit a section, blank it out, and rerun, whatever you had typed is gone from the assembled prompt (the text is still in the widget, but the assembled output just skips empty sections). And if you're on an SDXL-lineage model, prefix_sections is the first thing to toggle off when output gets weird - labels mean something different to a tag parser than to a chat-templated LLM encoder.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| delimiter | STRING | \n\n | — |
| prefix_sections | BOOLEAN | false | — |
| metadata | STRING | — | |
| features | STRING | — | |
| scene | STRING | — | |
| details | STRING | — | |
| feedback | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |