Prompt Generator
The prompt generator that thinks in 'worlds'
- prompt
- pose_preview
This is the flagship of the traumakom Prompt Creator pack, and it's not a wildcard node in the usual sense. Think of it as a themed prompt slot machine: you pick a JSON "world" from the ~130 bundled with the pack, it samples one value per category (outfit, lighting, background, pose, expression, camera angle, atmosphere, objects…), stitches them into one long cinematic sentence, and - if you switch on the enhancer - an LLM rewrites the whole thing into an even longer, more coherent one.
The pitch is honestly specific: you're tired of typing the same prompt skeleton by hand and want curated, coherent variation that still keeps a character recognizable. The worlds are the author's own aesthetic (Noir Neon Embers, Tokyo Dance Crew Studio, Bio Baroque, a whole goth/horror run). This is one person's personal cinematic prompt toolkit, made public - it shows, in both good and fiddly ways.
How it works
Each world JSON lives in JSON_DATA/ inside the pack folder and declares category lists plus optional COLOR_REALM palettes (RGB/CMYK splits), HORROR_INTENSITY and SENSUALITY_LEVEL blocks, and CUSTOM_INTRO pools. The node:
- picks one value per category (or several for objects/accessories, via
multi_object_count), - applies director-level controls -
camera_angle,camera_light,daytime- which override the world's own values, - inserts your
gender+identity_profile, and - optionally hands the assembled seed to an LLM with a system prompt chosen by
enhancer_mode(fromsystem_prompt.json, 80 modes) and asks for "one long cinematic sentence."
seed drives the sampling, so same seed + same settings = same base prompt (the enhancer is still nondeterministic). Every run is logged to logs/prompt_history.jsonl, which is exactly what the pack's Prompt Replay node reads later. lock_last_prompt freezes a good run to disk so you can keep regenerating everything else around it.
The inputs that matter
json_name- the world. This is 90% of the flavor; swap it to change genre wholesale.use_enhancer/enhancer_mode-nonekeeps the raw assembly (free, instant, deterministic-ish). The other options are ollama, llamacpp, openai, cohere, gemini, openrouter.gender+identity_profile+lock_identity- how your character is described. Setlock_identityto yes so every generation keeps the same face/hair description.lora_triggers- free text appended verbatim (e.g. your LoRA's trigger words).horror_intensity/sensuality_level- map into the world's corresponding blocks when the world defines them.
One default will bite you: ollama_host ships as http://10.10.10.2:11434 - that's the author's LAN address. If you're running Ollama locally, set it to http://127.0.0.1:11434.
Outputs and wiring
prompt is a plain STRING - you still need a CLIPTextEncode node to turn it into conditioning. That trips up people who expect the node to do the encoding. pose_preview is a STRING text preview of the chosen pose (pose_mode random / world_pick / lock, and show_pose_preview toggles the widget).
Install
cd ComfyUI/custom_nodes
git clone https://github.com/zeeoale/PromptCreatorNode
then restart ComfyUI. Or Manager → Install from URL with that repo. No model files download; the only pip deps are openai, google-generativeai, cohere (via requirements.txt), and it uses requests, which ComfyUI already ships. API keys for the cloud enhancers go in api_keys.txt inside the pack folder, one openai=sk-... per line. Everything works with no key at all.
The honest take
This is a niche pack with no real community footprint - zero Google search impressions, one r/comfyui self-post with a handful of comments. Don't expect a busy issue tracker; expect the author's personal workflow. And remember the prompt-engineering lesson from our KB: long prose suits SDXL-lineage realistic checkpoints, but it's actively counterproductive on tag-driven models like Illustrious or Pony V6. If your checkpoint wants tags, skip the enhancer and keep the raw assembly.
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 | |
| camera_angle | COMBO | 25 options: none, front, three_quarter, profile_left, profile_right, low_angle, +19 | |
| camera_light | COMBO | 9 options: none, soft_key, hard_key, rim_light, top_light, practical_mixed, +3 | |
| daytime | COMBO | 8 options: none, dawn, morning, midday, golden_hour, blue_hour, +2 | |
| use_enhancer | COMBO | 7 options: none, ollama, llamacpp, openai, cohere, gemini, +1 | |
| enhancer_mode | COMBO | 80 options: LoRa_Training, standard, dark_ritual, dark_ritual_closeup, Mecha_Sanctum_V1_(Dark), Mecha_Sanctum_V2_(AngelCore), +74 | |
| system_prompt_lock | COMBO | auto | 2 options: auto, external |
| enhancer_words_mode | COMBO | auto | 3 options: auto, min, max |
| enhancer_words_min | INT | 14040–400 | — |
| enhancer_words_max | INT | 22040–600 | — |
| 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 | 14 options: none, external, Fallen_Helly, Helly_Identity, Classic_Muse, NeoTokyo_Muse, +8 | |
| external_identity | STRING | — | |
| lock_identity | COMBO | yes | 2 options: no, yes |
| custom_intro | STRING | — | |
| custom_intro_id | COMBO | Random | 8 options: Random, 0, 1, 2, 3, 4, +2 |
| horror_intensity | COMBO | 12 options: auto, 0, 1, 2, 3, 4, +6 | |
| sensuality_level | COMBO | 5 options: auto, 0, 1, 2, 3 | |
| pose_mode | COMBO | random | 3 options: random, world_pick, lock |
| pose_index | INT | 00–200 | — |
| show_pose_preview | BOOLEAN | true | — |
| 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://10.10.10.2:11434 | — |
| ollama_model | STRING | qwen3:8b | — |
| openrouter_model | STRING | openai/gpt-4o-mini | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |
| pose_preview | STRING | — |