Engineering Image Prompts
Given a request like "a moody portrait for our app's login screen," produce:
Subject: Close-up portrait of a young professional woman, contemplative expression, looking slightly off-camera
Environment: Minimalist dark studio background, subtle gradient from charcoal to black
Lighting: Single soft key light from camera-left at 45°, low-key Rembrandt lighting, soft shadow falloff on right side of face
Style: Editorial photography, reminiscent of Annie Leibovitz portraiture, muted color grade with slight teal-orange contrast
Technical: Shot on 85mm lens, f/1.8 aperture, shallow depth of field with creamy bokeh, ISO 200, sharp focus on eyes
Composition: Rule of thirds, subject positioned right third, negative space left for UI text overlay
Aspect ratio: 3:4 vertical
Negative prompt: harsh shadows, overexposed highlights, cluttered background, extra fingers, distorted features, blurry eyes, low resolution, watermark
Adjust syntax per platform: Midjourney uses --ar 3:4 --style raw; DALL-E 3 favors natural-language sentences; Stable Diffusion/Flux use comma-separated tags with an explicit negative prompt field.
Progress:
- Clarify the visual goal (subject, mood, use case — hero image, placeholder, marketing asset)
- Identify target platform(s) and their prompt syntax conventions
- Draft structured prompt: Subject → Environment → Lighting → Style → Technical → Composition
- Translate any vague creative direction into precise photography terminology
- Add negative prompt to exclude common artifacts and unwanted elements
- Specify aspect ratio and platform-specific flags/parameters
- Review for technical consistency (lighting direction matches shadows, lens choice matches described depth of field)
- If brand consistency is needed, extract reusable lighting/color/composition parameters for reuse across prompts
- Generate, inspect output, and iterate (see Troubleshooting below)
Structured Prompt Framework
Layer information in this order every time:
- Subject — who/what, pose, expression, key details
- Environment — setting, background, props, context
- Lighting — direction, quality (hard/soft), color temperature, time of day or studio setup
- Style — photographic genre, reference photographers/movements, color grade
- Technical specs — lens focal length, aperture (f-stop), depth of field, ISO/grain, focus point
- Composition — framing, rule of thirds/centered, negative space, aspect ratio
- Negative prompt — artifacts, distortions, unwanted elements to exclude
Platform-Specific Notes
- Midjourney: Append
--ar W:H,--style rawfor photorealism,--stylizefor artistic drift,--no [elements]for negatives. Prefers dense comma-separated phrases over full sentences. - DALL-E 3: Prefers natural, descriptive sentences rather than tag lists. No native negative prompt field — phrase exclusions positively ("clean background" instead of "no clutter").
- Stable Diffusion: Explicit separate negative prompt field. Tag-based syntax works well. Weight important terms with
(term:1.2)syntax if supported. - Flux: Similar to Midjourney but more literal — avoid overly poetic language, favor concrete technical descriptions.
Photography Terminology Translation
| Vague input | Technical translation |
|---|---|
| "blurry background" | "shallow depth of field, f/1.8 bokeh" |
| "nice lighting" | "soft golden hour side lighting, warm color temperature ~3200K" |
| "professional look" | "studio strobe lighting, three-point setup, softbox key light" |
| "moody" | "low-key lighting, high contrast, desaturated shadows" |
| "close up" | "85mm portrait lens, tight framing, subject fills 60% of frame" |
| "wide shot" | "24mm wide-angle lens, environmental context visible" |
Troubleshooting After Generation
- Extra limbs/fingers/distorted anatomy → strengthen negative prompt, reduce subject complexity, try a different aspect ratio.
- Inconsistent lighting/shadows → check that lighting direction and shadow description agree; simplify to a single dominant light source.
- Wrong mood/color → add explicit color grade terms (e.g., "teal-orange," "desaturated," "warm 3200K") rather than mood adjectives.
- Flat/generic composition → add explicit composition terms (rule of thirds, negative space location, subject fill percentage).
- Platform ignoring style reference → move style reference earlier in the prompt or increase specificity (name + genre, not just genre).
Example 1 — Bad vs. corrected prompt:
Input: "Product photo of a coffee mug, nice lighting, high quality"
Bad output (vague, low signal):
A beautiful high quality photo of a coffee mug with nice lighting, professional, 4k, amazing
Problems: adjectives carry no visual signal; no lighting setup; no lens/aperture; no aspect ratio; no negative prompt — expect inconsistent, generic results.
Corrected output:
Subject: Ceramic coffee mug, matte white finish, centered, no handle-side rotation distortion
Environment: Seamless white backdrop, subtle floor reflection
Lighting: Softbox lighting from both sides at 45°, even diffusion, minimal shadow, high-key setup
Style: Commercial product photography, clean e-commerce aesthetic
Technical: Shot on 100mm macro lens, f/8 for full product sharpness, studio strobes, ISO 100
Composition: Centered subject, ample negative space, square crop
Aspect ratio: 1:1
Negative prompt: harsh shadows, reflections of camera equipment, dust, fingerprints, uneven lighting, background clutter, color cast
Example 2 — Brand hero banner:
Input: "Something for our brand's hero banner — outdoorsy, adventurous, golden light"
Output:
Subject: Solo hiker viewed from behind, mid-stride on a ridge trail, backpack visible
Environment: Mountain ridge line, distant peaks with atmospheric haze
Lighting: Golden hour backlighting, sun low on horizon, warm rim light on subject's silhouette, lens flare
Style: Adventure/travel editorial photography, National Geographic aesthetic, warm color grade with lifted shadows
Technical: Shot on 35mm lens, f/4 for environmental sharpness, ISO 100, natural light only
Composition: Rule of thirds, subject lower-left third, expansive sky for text overlay, wide aspect
Aspect ratio: 21:9
Negative prompt: overexposed sky, harsh midday shadows, cluttered foreground, motion blur, low contrast haze, oversaturated colors
Example 3 — Stable Diffusion/Flux tag syntax translation:
Same brief as Example 2, rewritten for Stable Diffusion:
Positive: solo hiker from behind, mid-stride, mountain ridge trail, backpack, distant peaks, atmospheric haze, golden hour backlighting, warm rim light, lens flare, adventure editorial photography, warm color grade, 35mm lens, f/4, ISO 100, rule of thirds, (sharp focus:1.2), 21:9 aspect ratio
Negative: overexposed sky, harsh shadows, cluttered foreground, motion blur, low contrast, oversaturated, extra limbs, watermark, low quality, blurry
- Always specify aspect ratio explicitly — never leave framing to default.
- Match lighting direction to shadow description; inconsistencies confuse the model and degrade output quality.
- Use real photographer/style references sparingly and accurately (e.g., "Annie Leibovitz portraiture," "Peter Lindbergh black-and-white") — they carry strong stylistic weight.
- For brand consistency, lock in a reusable "style block" (lighting setup + color grade + lens choice) and reuse verbatim across all prompts in a campaign.
- Always include a negative prompt on platforms that support it, even a short default one (extra limbs, watermark, blurry, low quality, distorted).
- When precision matters, favor technical photography terms over adjectives — models trained on captioned photo datasets respond strongly to f-stop, focal length, and lighting-setup vocabulary.
- Don't use vague adjectives ("beautiful," "amazing," "high quality") as substitutes for concrete description — they add tokens without adding signal.
- Don't request physically implausible combinations (e.g., "hard shadows" with "overcast diffused lighting") — this produces inconsistent results.
- Don't skip aspect ratio — default ratios rarely match the intended use case (UI placeholder, banner, portrait).
- Don't reuse Midjourney tag-syntax prompts unmodified for DALL-E — rewrite as natural sentences for best results.
- Don't forget negative prompts on Stable Diffusion/Flux — omitting them is the most common cause of artifact-heavy output.