Nodes/comfyui-jbnodes/Film Stock Prompt Manager
ComfyUI Node

Film Stock Prompt Manager

Film-stock prompts without memorizing the recipe

By AlbertJBurton·Created 6 months ago·Updated 3 months ago· 1
Film Stock Prompt Manager
  • wof_print_intent
  • positive_prompt
  • negative_prompt
  • filename
prompt_mode
deck
set
prompt_index1
prepend_positive
prepend_negative

Getting a photorealistic film look out of a diffusion model is 20% model and 80% prompt craft - the lighting language, the era vocabulary, the subtle "shot on" grammar that nudges a checkpoint toward a documentary frame instead of a skincare ad. PromptLab is the pack's answer to that: instead of re-typing the same film-stock recipe every run, it retrieves a curated prompt from bundled decks and hands you positive and negative prompt strings, ready to feed your KSampler.

The description spells out the two flavors: 'Text-based prompts' for FLUX-style models (descriptive natural language) and 'Tag-based prompts' for SDXL-style models (short comma tags). Pick your architecture, pick a deck, pick an index, and the node does the vocabulary work.

How it works

The required inputs: prompt_mode (Text-based for FLUX / Tag-based for SDXL), deck (the curated theme set: Photojournalism, Studio (1950s-1970s), World View, 1930s-1940s Cinema, Boudoir and Intimate Portraiture, Pinup and Bikini, Classic Nudes), set (a dynamic dropdown that fills with the deck's sub-sets - e.g. Photojournalism opens into "Hard Noir (Shadow Density)" and friends), and prompt_index (1–50) to walk through variations within a set.

The prompts live in the pack's config (film_stock_prompt_v4.flux.json / .sdxl.json), decked out with per-set descriptions so each option reads like a brief - gritty documentary aesthetic for Photojournalism, that 1930s cinema shadow language for the cinema deck. The node pulls the entry at prompt_index for the chosen deck+set and outputs positive_prompt, negative_prompt, and filename (the source entry's file name, handy for bookkeeping and reproducibility).

Two optional inputs: prepend_positive and prepend_negative - plain strings pasted onto the front of the retrieved prompts, so you can bolt on your own subject ("brunette portrait, 1950s studio") without editing the deck. And the interesting one: wof_print_intent, a WOF_PRINT_INTENT object from WOFPrintLab. When connected, PromptLab validates the retrieved prompt against your print intent, checking that its tonal emphasis and contrast class are compatible with the selected film stock and era - the schema catching the incoherent combos before you generate them.

How to use it

Choose prompt_mode by your base model (Text-based → FLUX, Tag-based → SDXL - mixing them up gives you tag soup in a natural-language model or a paragraph in a tag model). Then the practical loop: pick a deck, browse sets, walk prompt_index through a few variations, and when one lands, lock it and prepend your actual subject. The prompt is a starting point, not a verdict - prepend your subject, and treat the retrieved text as the "film look" seasoning.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/AlbertJBurton/comfyui-jbnodes.git
cd comfyui-jbnodes
pip install -r requirements.txt

Restart ComfyUI, or ComfyUI Manager → "comfyui-jbnodes."

Gotchas

  • The set dropdown is dynamic (it depends on deck), so it populates in the browser UI; over a raw API call it can arrive as a null option, same known dynamic-widget behavior as the pack's other cascading dropdowns.
  • Decks ship in the pack - updating the pack can add, rename, or reorder sets, and prompt_index is position-based, so a saved workflow can silently point at a different prompt after an update. Keep filename visible to catch it.
  • These are curated prompts for a specific aesthetic range (documentary, studio, cinema, portraiture). Don't expect a sci-fi or fantasy deck - pick the era that matches your subject, or prepend your own.
CategoryJBNodes

Inputs (7)

NameTypeDefaultDescription
prompt_modeCOMBO2 options: Text-based prompts, Tag-based prompts
deckCOMBO7 options: Photojournalism, Studio (1950s-1970s), World View, 1930s-1940s Cinema, Bouidoir and Intimate Portraiture, Pinup and Bikini, +1
setCOMBO1 options:
prompt_indexINT11–50
prepend_positiveoptSTRING
prepend_negativeoptSTRING
wof_print_intentoptWOF_PRINT_INTENT

Outputs (3)

NameTypeDescription
positive_promptSTRING
negative_promptSTRING
filenameSTRING