Prompt (Mango)
Six labeled boxes that become one prompt, in a sane order
- STRING
Prompt (Mango) is the pack's answer to the most common beginner prompt failure: a single giant text box where quality tags, character, scene, and background all blur into one undifferentiated wall of tokens. It splits the prompt into six labeled boxes - QualityTags, SceneDescription, CharacterTags, SceneTags, BackgroundTags, and Embeddings - and joins whatever you fill in into one comma-separated prompt string in a fixed, sensible order.
The utility is more than cosmetic. Because quality tags always land first, character and scene stay in the middle, and embeddings come last, the assembled prompt has a structure that most models like. And because each box is separate, you can edit "the character" without scrolling through the whole prompt - which is exactly the "organizes prompts into three separate text boxes, making them easier to read and edit" pitch from the README, expanded.
How it works
On execution, each box is stripped of surrounding whitespace and the non-empty ones are joined with , in this fixed order: QualityTags, SceneDescription, CharacterTags, SceneTags, BackgroundTags, Embeddings, then the optional string input last. Empty boxes are dropped, so you never get stray commas. There's no reordering logic and no deduplication - the order is hardcoded, and that's a feature for predictability: your quality tags are always at the front of the string, your embeddings always at the back.
The optional string input is the hook for the rest of the pack: wire the Trigger Exporter (Mango) output there and the LoRA trigger words get appended after everything else, automatically.
Inputs and outputs
- QualityTags - the quality stack, e.g.
(masterpiece, best quality:1.2). - SceneDescription - a short sentence describing the scene.
- CharacterTags - who/what's in frame.
- SceneTags - the scene's subject tags.
- BackgroundTags - background detail tags.
- Embeddings - embedding tokens, typed normally.
- string (optional) - spare input for the Trigger Exporter or anything else.
Output: a single STRING with the joined prompt. Feed it into a CLIP Text Encode node, and into a Mango sampler's prompt_text field so your saved metadata records the exact assembled text.
Installing it
Prompt (Mango) ships in the Mango Node Pack:
cd ComfyUI/custom_nodes
git clone https://github.com/mang01010/MangoNodePack
Restart ComfyUI, or install "Mango Node Pack" from ComfyUI Manager. The README's only extra dependency is pip install safetensors.
Gotchas
Two honest warnings. First, the boxes are organizational, not magical - nothing validates your tags, sorts them, or warns you when you've put quality tags in three different boxes. If you misuse the structure you'll get a prompt that's just as messy as the single-box version, with extra steps. Second, keep the fixed ordering in mind: this node always puts Embeddings last, which is generally fine, but if your workflow depends on a different tag order you'll need to build it yourself. And don't chain it with Prompt /w Embedding (Mango) - they're two flavors of the same idea, and running both just doubles the join. For readable, editable prompts that play nice with the pack's metadata chain, this is the one you'll actually reach for.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| QualityTags | STRING | — | |
| SceneDescription | STRING | — | |
| CharacterTags | STRING | — | |
| SceneTags | STRING | — | |
| BackgroundTags | STRING | — | |
| Embeddings | STRING | — | |
| stringopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |