Prompt Vault — Build
Build a photographic prompt the way a photographer would actually shoot it
- prompt
- prompt_dna
Browse gives you a finished template; Build hands you the kit bag. Instead of one pre-written prompt, you assemble your own from real camera gear, lighting setups, film stocks, moods, compositions, and quality directives - 100+ hand-written components total, no generic "cinematic lighting" filler in sight.
The idea is that photographic vocabulary carries meaning the model actually keys on. "Shot on Hasselblad X2D with XCD 80mm f/1.9" is not the same token soup as "very detailed, masterpiece, 8k" - the medium-format phrasing steers rendering, bokeh, and tonal depth. That's the same insight the photorealism crowd has been running on for years: the tells that make an image read as fake - too-smooth skin, catchlights that don't match the scene, inconsistent shadows - are exactly what a real lighting description encodes. This node is a way to write like a shooter instead of a prompter.
How it works
Type a subject (the only required field), then pick from the dropdowns: camera_lens (27 combos, from Sony A7R V + 85mm GM to ARRI Alexa 35 + Zeiss Supreme), lighting (24 real setups - Rembrandt, butterfly, clamshell, split), film_stock (18, including Portra, Ektar, Tri-X, CineStill), mood (15), quality_directive (7), and composition (10). Leave any of them on "none" and that fragment is skipped. Every selection maps to a hand-written prompt fragment in the pack's vault_data.py - a "Sony A7R V + 85mm" pick expands to "Shot on Sony A7R V with 85mm f/1.4 G Master lens, shallow depth of field, natural skin rendering," and so on.
Then the node joins your subject plus every chosen fragment with ". " into one natural-language paragraph. Note the default quality_directive is "Ultra-realism (anti-AI)" - that's the pack's whole stance in one dropdown. There's also an extra_details box for specifics the dropdowns can't cover (the subject's jacket, the prop in frame), and save_to_favorites if you want the result saved for the Favorites node.
Outputs: prompt (the assembled paragraph - straight into a CLIP Text Encode positive) and prompt_dna, a JSON recipe listing every component you used. That's quietly the most underrated feature: it's a full reproducibility record. Change one thing, compare the DNA, you can see exactly what shifted.
Why you'd reach for it
Consistency. When you're batching a series and want every frame to share the same lighting language and film look, fixed dropdowns beat retyping the same sentence for the tenth time - it's the same logic as wildcard batching, minus the syntax. Swap the lighting from Rembrandt to clamshell and the whole series re-shoots with one click.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/jeremieLouvaert/ComfyUI-Prompt-Vault.git
Restart and you'll find it under AKURATE/Prompt Vault. No dependencies - the requirements file is literally a comment. ComfyUI Manager search "ComfyUI-Prompt-Vault" works too.
Common issues
- Empty subject = an error string. Run it with a blank subject and the
promptoutput is literallyError: Subject description is required.- which, wired into CLIP, becomes a prompt about an error message. Always fill the subject first. - Prose vs. tags, again. Build emits long natural-language sentences. Great on SDXL-lineage and newer LLM-encoded checkpoints; much weaker on tag-based models like Illustrious or Pony, which want booru tags, not camera prose. Know what your checkpoint's encoder speaks before you lean on this.
- Photography only, by design. No anime, 3D, or illustration angles in the component database - this is a tool for photographic looks, full stop.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| subject | STRING | — | |
| camera_lens | COMBO | none | 28 options: none, Sony A7R V + 85mm f/1.4 GM, Canon R5 + RF 85mm f/1.2L, Nikon Z9 + 105mm f/1.4, Hasselblad X2D + 80mm f/1.9, Leica SL2 + 50mm f/1.4 Summilux, +22 |
| lighting | COMBO | none | 25 options: none, Rembrandt (classic portrait), Butterfly / Paramount, Split light (dramatic), Clamshell (beauty), Loop lighting (natural portrait), +19 |
| film_stock | COMBO | none | 19 options: none, Kodak Portra 400, Kodak Portra 160, Kodak Portra 800, Kodak Ektar 100, Kodak Gold 200, +13 |
| mood | COMBO | none | 16 options: none, Intimate & quiet, Editorial confidence, Melancholic nostalgia, Raw documentary, Luxurious opulence, +10 |
| quality_directive | COMBO | Ultra-realism (anti-AI) | 8 options: none, Ultra-realism (anti-AI), Editorial print-ready, Fine art photography, Commercial product, Documentary authenticity, +2 |
| composition | COMBO | none | 11 options: none, Rule of thirds, Center weighted, Golden ratio, Environmental portrait, Tight crop (beauty), +5 |
| extra_detailsopt | STRING | — | |
| save_to_favoritesopt | BOOLEAN | false | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |
| prompt_dna | STRING | — |