AI4ArtsEd Photo Prompt Randomizer
A new film-stock photograph every run — Kodachrome to Tri-X
- prompt
The AI4ArtsEd Photo Prompt Randomizer is an LLM node that invents a realistic photographic prompt for you, and the film stock is the hook. Pick Portra 400 and it writes a prompt that begins "a Kodak Portra 400 color negative of..."; pick Ilford HP5 and you get a black-and-white negative framing. Pick random and it rolls one of the fourteen stocks per run. The prompt template injects the film description wherever the {film_description} placeholder sits, then asks the model for a verbose, contemporary, non-retro scene description.
This leans on a real, well-established trick in the photorealism playbook: a physical equipment name does more than any quality adjective. "Point-and-shoot film camera" is famously the single highest-leverage phrase for dropping a model out of beauty-default mode, and specific stocks - Portra for warm skin, HP5 for genuine B&W grain, Cinestill 800T for night halation - are the most reliable color-grading control you have. This node automates exactly that: it picks the gear for you and forces it into the prompt's first line.
How it works
The node builds the system prompt by substituting the chosen film into the template, calls the LLM, and returns the generated prompt. Like ai4artsed_clean_prompt_randomizer, it's cache-proofed: a random_seed input that's functionally ignored plus IS_CHANGED returning NaN, so every queue pass produces a fresh draw. The model dropdown is the same hybrid list - OpenRouter models with prices and tags, plus any local Ollama models you have, with automatic fallback if a hosted call fails.
The film_type dropdown is the star. The full list: Kodachrome, Ektachrome (slide films), Portra 400/800, Ektar 100, Fuji Pro 400H, Fuji Superia, CineStill 800T (color negatives), Ilford HP5, Delta 400, FP4, Pan F, XP2, and Kodak Tri-X 400 (black-and-white) - plus random. The system_prompt is editable, so you can keep the film mechanism and change everything else about how the model describes scenes.
Inputs worth knowing: random_seed, film_type, system_prompt, model, unload_model, and optional api_key and context. Output: a single prompt STRING.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/joeriben/ai4artsed_comfyui_nodes
# restart ComfyUI
Or search "AI4ArtsEd" in ComfyUI Manager. Local models need the Ollama server on port 11434; hosted models need an OpenRouter key (in the node or in openrouter.key).
Common issues
The film type has no visible effect. Some stocks are subtle. A 3B local model may gloss over the injected film language entirely - this node is only as good as the LLM honoring the first line of the prompt. Try a stronger hosted model and check the output actually begins with the film phrase.
"Random" keeps giving you similar films. It's a uniform roll across all fourteen; runs just land close sometimes. If you want more B&W, set a specific Ilford stock instead.
Output starts with the film phrase but reads like a caption. The system prompt asks for it, but you may want to trim "a Kodachrome film slide of" before it hits your encoder - or not; many models benefit from the equipment anchor.
It's a fun, genuinely useful node if you're doing photographic prompt studies or just want an endless stream of "shot on real film" ideas. It's also squarely experimental, from an academic pack - expect to tune the system prompt to your taste, because the default is opinionated (deliberately anti-retro, global, contemporary) and that opinion is editable for a reason.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| random_seed | INT | 00–18446744073709550000 | — |
| film_type | COMBO | 15 options: random, Kodachrome, Ektachrome, Portra 400, Portra 800, Ektar 100, +9 | |
| system_prompt | STRING | You are an inventive creative. Your task is to invent a REALISTIC photographic image prompt. Think globally. Avoid cultural clichés. Avoid "retro" style descriptions. Describe contemporary everyday motives: scenes, objects, animals, nature, tech, culture, people, homes, family, work, holiday, urban, rural, trivia, details. Choose either unlikely, untypical or typical photographical sujets for realistic photographic images. Be verbose, provide intricate details. Always begin your output with: "{film_description} of". Transform the prompt strictly following the context if provided. NO META-COMMENTS, TITLES, Remarks, dialogue WHATSOEVER, STRICTLY FOLLOW THE INSTRUCTION. | — |
| model | COMBO | 30 options: openrouter/anthropic/claude-3.5-haiku [multilingual / $0.80/$4.00], openrouter/anthropic/claude-3-haiku [multilingual / $0.80/$4.00], openrouter/anthropic/claude-haiku-4.5 [multilingual / $0.80/$4.00], openrouter/anthropic/claude-sonnet-4.5 [multilingual / $3.00/$15.00], openrouter/deepseek/deepseek-chat-v3-0324 [rule-oriented / $0.27/$1.10], openrouter/deepseek/deepseek-r1-0528 [reasoning / $0.50/$2.15], +24 | |
| unload_model | COMBO | no | 2 options: no, yes |
| api_keyopt | STRING | — | |
| contextopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | — |