Prompt Builder
Same world engine, but you pick every slot
- prompt
Prompt Builder is the manual sibling of the pack's flagship Prompt Generator. Same world-JSON engine, same enhancer stack, same logging - but instead of one button that samples a random value per category, you get a dropdown per category and you decide what goes in each slot. If Prompt Generator is a slot machine, this is the build-a-prompt workshop next door.
Why reach for it? Because the flagship's randomness is great until it isn't - you finally get an outfit you love and it keeps drawing you a different one. Prompt Builder lets you lock the categories that matter (outfits, lighting, background) to specific values and leave the rest on random, or take manual control of every single one. It's also where the pack's "reload JSON worlds without restarting" trick actually lives: a bundled web extension refreshes the dropdown options from a generated world_options.json, so newly added worlds show up without a ComfyUI restart.
How it works
At load time it scans every world in JSON_DATA/, unions all values across them per category, and builds those dropdowns. That's why the enums are enormous - 837 outfits, 675 backgrounds, 1,330 objects/accessories. Each category dropdown gives you none (skip it), random (let the sampler pick), or a specific value. The COLOR_REALM selector picks the palette within a world that defines realms. Then it runs the exact same assembly logic as the generator - gender, identity_profile, horror/sensuality levels, subject_count, multi_object_count - and optionally the same LLM enhancer (use_enhancer: none/ollama/llamacpp/openai/cohere/gemini) with an enhancer_mode system prompt.
The inputs that matter
Honestly, only a few. json_name selects the world, and per-category picks (epochs_pick, outfits_pick, lighting_pick, backgrounds_pick, poses_pick, expressions_pick, camera_angles_pick, atmospheres_pick) plus objects_mode/objects_pick and accessories_mode/accessories_pick are the whole point. Everything else mirrors the generator: color_realm, gender, identity_profile, lock_identity, horror_intensity, sensuality_level, lora_triggers, seed, lock_last_prompt, and the Ollama knobs.
The same default landmine applies here: ollama_host defaults to http://192.168.1.1:11434 - the author's network, not yours. Point it at your local Ollama (http://127.0.0.1:11434) before you blame the node.
Output
A single prompt STRING. Same wiring story as the generator: feed it into a CLIPTextEncode (or CLIPTextEncodeSDXL) node - the builder doesn't encode for you. And because it shares the generator's logger, whatever it produces lands in logs/prompt_history.jsonl and shows up in the pack's Prompt Replay node.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/zeeoale/PromptCreatorNode
restart, and you'll find "Prompt Builder" alongside the rest of the pack. No model downloads; the only pip deps are openai, google-generativeai, cohere (requirements.txt), plus requests that ComfyUI already bundles. Cloud enhancers need keys in api_keys.txt inside the pack folder; the node works fully with none.
The honest take
If the generator's whole-prompt random roll feels like fighting the pack, this is the antidote. It's still the same niche, personal-codebase experience - no community to speak of, author's own conventions baked into the worlds - but for "curate a look, randomize the rest" it's the one I'd reach for over the flagship. One catch: those massive dropdowns mean a lot of scrolling, and the specific values you see are pulled at load time, so world edits want that web-extension refresh (or a restart) to show up.
Inputs (30)
| Name | Type | Default | Description |
|---|---|---|---|
| json_name | COMBO | 130 options: LoRa_Identity_Training.json, PFN_Astonished_Origin.json, PFN_Atomic_Nocturne.json, PFN_Bio_Baroque_Corrupted.json, PFN_Bio_Baroque_Luminescent.json, PFN_Bio_Baroque_Luminescent_V2.json, +124 | |
| color_realm | COMBO | 3 options: none, auto, random | |
| epochs_pick | COMBO | 457 options: none, random, 1920s forbidden salon glamour, 1920s midnight salon, 1930s cinematic glamour, 1930s urban life, +451 | |
| outfits_pick | COMBO | 837 options: none, random, Aged textured shawl with gold thread filigree, Antique slip dress under a loose knit shawl, edges slightly weathered, Architectural collar with rigid symmetry, Architectural high-neck ivory garment, +831 | |
| lighting_pick | COMBO | 623 options: none, random, Backlight through thin haze, hair and shoulders separated with restrained halo, Backlit halo glow outlining crown silhouette, Backlit incense haze, strong frontal light shaping facial features, Backlit rim glow through mist, subtle halation, +617 | |
| backgrounds_pick | COMBO | 675 options: none, random, Abandoned cathedral ruins, Abandoned subway covered in overgrowth, Abstract architectural void, quiet and clean, Abstract architectural void, quiet and heated, +669 | |
| poses_pick | COMBO | 820 options: none, random, Adjusting glasses with one hand, wrist jewelry catching light, Aggressive seated position with sculptural stillness, Arms behind back, posture straight, restrained authority, Arms crossed with tension, specular lines tracing contours, +814 | |
| expressions_pick | COMBO | 593 options: none, random, A faint melancholic stare, almost dreaming, Barely parted lips with serene composure, Blank and menacing, Calm and commanding gaze, +587 | |
| camera_angles_pick | COMBO | 352 options: none, random, 35mm urban environmental perspective, 50mm balanced portrait with shallow depth of field, 50mm perspective with moderate depth of field, 85mm cinematic portrait framing, +346 | |
| atmospheres_pick | COMBO | 599 options: none, random, A mix of danger and beauty, Absolute silence suspended in darkness, pressure held in negative space, Absolute silence within reflective darkness, Absolute silence, suspended in darkness, +593 | |
| objects_mode | COMBO | 3 options: none, random, pick | |
| objects_pick | COMBO | 1330 options: none, 35mm analog rangefinder camera, A black lacquered chair merging into shadow, edges revealed by rim light, A collar resting beside a pearl necklace, A disposable cup with condensation, half-finished drink, A folded cloak or fabric bundle near the knees, +1324 | |
| accessories_mode | COMBO | 3 options: none, random, pick | |
| accessories_pick | COMBO | 1330 options: none, 35mm analog rangefinder camera, A black lacquered chair merging into shadow, edges revealed by rim light, A collar resting beside a pearl necklace, A disposable cup with condensation, half-finished drink, A folded cloak or fabric bundle near the knees, +1324 | |
| use_enhancer | COMBO | 6 options: none, ollama, llamacpp, openai, cohere, gemini | |
| enhancer_mode | COMBO | 80 options: LoRa_Training, standard, dark_ritual, dark_ritual_closeup, Mecha_Sanctum_V1_(Dark), Mecha_Sanctum_V2_(AngelCore), +74 | |
| add_symbols | COMBO | 2 options: no, yes | |
| seed | INT | 0 | — |
| gender | COMBO | 8 options: neutral, female, 2 female, 3 female, female vampire, anime woman, +2 | |
| identity_profile | COMBO | 13 options: none, Fallen_Helly, Helly_Identity, Classic_Muse, NeoTokyo_Muse, Mediterranean_Muse, +7 | |
| lock_identity | COMBO | yes | 2 options: no, yes |
| custom_intro | STRING | — | |
| horror_intensity | COMBO | 12 options: auto, 0, 1, 2, 3, 4, +6 | |
| sensuality_level | COMBO | 5 options: auto, 0, 1, 2, 3 | |
| lora_triggers | STRING | — | |
| subject_count | COMBO | 3 options: 1, 2, 3 | |
| lock_last_prompt | COMBO | no | 2 options: no, yes |
| multi_object_count | INT | 11–5 | — |
| ollama_host | STRING | http://192.168.1.1:11434 | — |
| ollama_model | STRING | llama3.2 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |