EmAySee AdLib Prompt Generator
Five prompt skeletons, one seed — EmAySee's fill-in-the-blank prompt shaker
- prompt
- layout_used
Batch variation is the whole game in ComfyUI: same subject, same scene, different framing, roll the dice. EmAySee AdLib Prompt Generator automates the "different framing" part. You fill in seven prompt components - subject, attire, action, expression, environment, lighting, camera and tags - and it stuffs them into one of five hardcoded prompt templates chosen at random, driven by a seed.
The result is a prompt you didn't have to hand-write for every layout, plus a second output telling you which layout it picked. Run the batch with a different seed each time and you get "STANDARD NARRATIVE" framing on one image, "EXTREME CLOSE-UP" on the next, "HIGH FASHION EDITORIAL" on the one after. It's a poor man's dynamic prompt - no wildcard files, no {a|b|c} syntax - but it costs nothing to set up and it reliably changes composition, which is the part most people actually want varied.
The author is the same EmAySee who posts their LLM workflow nodes on Reddit and readily admits the prompts need hand-crafting to be useful. That honesty applies here too: the defaults are lifted from one of their own workflows (a woman in an arctic parka fighting through a blizzard), and they're worth replacing with your subject before you trust the output.
How it works
Seeded randomness, plain and simple. The node seeds Python's random with your seed input, picks one of five template strings, and .format()s your seven components into it. Same seed = same layout every time, so it's reproducible - which is what you want in a batch. The five templates are named and distinct: standard narrative, extreme close-up, environmental establishing shot, moody contrast, and high fashion editorial.
The inputs that matter
- seed - drives both the layout pick and nothing else. Bump this per image for variation.
- subject, attire, action, expression, environment, lighting, camera_and_tags - the seven fill-in slots. All multiline strings.
Outputs are prompt (the full formatted text) and layout_used (the template name, handy for logging or sorting results).
Install
It's part of the EmAySee pack - one author's 60+ node collection, no requirements.txt:
cd ComfyUI/custom_nodes
git clone https://github.com/EmAySee/ComfyUI_EmAySee_CustomNodes
Restart ComfyUI (or Manager → "ComfyUI_EmAySee_CustomNodes"). It appears under the plain EmAySee category.
Gotchas
Three things will bite. First, the templates hardcode "She"/"her" - every skeleton assumes a female subject. A male or neutral subject needs templates you can't edit, so you'll get "she is wearing..." regardless. Second, the prompt output includes a --- LAYOUT NAME --- prefix line, which some CLIP encoders treat as prompt text; strip it or tolerate it. Third, layout_used isn't controllable - there's no input to force a specific template, only the seed. If you want to choose "HIGH FASHION EDITORIAL," this node can't do it; you'd copy the template out of the source. And remember the pack's standing disclaimer - no guarantees, no support - so treat the output as a starting point, not gospel.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| seed | INT | 00–18446744073709550000 | — |
| subject | STRING | a young woman named emac_megan | — |
| attire | STRING | a matte-white, heavy arctic parka over a reflective silver thermal under-layer | — |
| action | STRING | leaning her entire body weight forward, pulling a thick climbing rope | — |
| expression | STRING | strained, exhausted grimace with narrowed eyes | — |
| environment | STRING | a barren, jagged ice field during a blizzard | — |
| lighting | STRING | a single, intense blue-white flare burning on the ground | — |
| camera_and_tags | STRING | professional quality, cinematic depth of field, sharp focus, 8k | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |
| layout_used | STRING | — |