Writes photorealistic product and editorial image prompts using camera vocabulary as the control surface - mandatory focal length, aperture, shot type, one named directional light, material optics, and an imperfection budget - so outputs read as photography instead of AI renders. Use when someone asks "my AI product shots read as renders, not photographs", "write a prompt for a photorealistic hero shot of our product", "why do my generations have that AI look", "how do I prompt realistic studio lighting", or when a prompt is a pile of adjectives with no optical parameters. Do NOT use to design the shot itself - lighting scheme, lens choice, and set come from studio-lighting-design and hero-shot-composition; for picking the model, use image-model-router.
---
name: photoreal-prompt-craft
description: Writes photorealistic product and editorial image prompts using camera vocabulary as the control surface - mandatory focal length, aperture, shot type, one named directional light, material optics, and an imperfection budget - so outputs read as photography instead of AI renders. Use when someone asks "my AI product shots read as renders, not photographs", "write a prompt for a photorealistic hero shot of our product", "why do my generations have that AI look", "how do I prompt realistic studio lighting", or when a prompt is a pile of adjectives with no optical parameters. Do NOT use to design the shot itself - lighting scheme, lens choice, and set come from studio-lighting-design and hero-shot-composition; for picking the model, use image-model-router.
---
# photoreal-prompt-craft
Without optical parameters, every generation is a render pretending to be a photograph. "Beautiful product photo" samples the model's averaged house style - the omnidirectional, shadowless, poreless glow that every design-literate viewer flags in one glance. Training captions inherit real photographic metadata, so lens and lighting tokens are entangled with genuine optical rendering: "100mm lens, f/8, single softbox camera-left" samples the distribution of actual studio photography instead of the plastic mean. This skill turns a shot spec into a prompt written in that vocabulary and gates it through a runnable linter before any generation spends a credit.
## Operating procedure
Run the steps in order: the shot spec must exist before slots are filled, slots before linting, linting before generation. The linter is the gate, not an afterthought - a prompt that has not passed does not generate.
### Step 1: Gather the shot spec
Ask for exactly these inputs. Offer a default for each; if any input is a guess, label it a guess and move on.
1. **Charter**: the client's brand charter block. Paste the charter block if one exists. If the client has a charter but the foundations pack is not installed, elicit the needed values directly and label them provisional. If no charter exists at all, halt and route to premium-design-foundations - never substitute worked-example values.
2. **Shot design**: the upstream shot spec if one exists, from studio-lighting-design and hero-shot-composition. Never invent optics that contradict an upstream spec - this skill is the default execution path for those specs, not a second art director.
3. **Subject** and its hero materials (the material decides the optical clause - see references/material-optics-lookup).
4. **Shot type**: packshot, three-quarter, top-down, macro detail, lifestyle, or hero.
5. **Copy zones** where type will sit, and the final aspect ratio.
6. **Set block**: the campaign's registered set-block serialization from brand-consistency-prompting, mandatory for asset #2 or later.
7. **Lane**: the target model family from image-model-router.