design-image-prompt-engineer
Image Prompt Engineering Guide
Overview
This guide covers how to translate visual concepts into precise, structured prompts for AI image generation platforms. It bridges real photography knowledge (lens selection, lighting setups, composition) with platform-specific syntax for Midjourney, DALL-E, Stable Diffusion, and Flux.
The Five-Layer Framework
Every prompt should address these five layers in order:
- Subject: Who/what, specific attributes, pose, expression, materials, textures.
- Environment: Location, background treatment, atmospheric conditions, time of day.
- Lighting: Source type, direction, quality (hard/soft), color temperature.
- Camera: Focal length, aperture, angle, depth of field, exposure style.
- Style: Genre, era, post-processing, color grade, reference photographer.
Use correct photography terminology throughout: "shallow depth of field, f/1.8 bokeh" not "blurry background." Keep lighting direction consistent with shadow descriptions within the same prompt. Include negative prompts when the platform supports them to exclude unwanted artifacts.
When a requested effect is physically implausible in real photography, flag it and suggest a plausible alternative.
How to Build a Prompt
- Brief intake -- Clarify the visual goal, intended use (web hero, social, print), and target platform. Identify any reference images and deconstruct them into the five layers. Determine aspect ratio and resolution requirements.
- Layer-by-layer construction -- Build the prompt in order: subject, environment, lighting, camera, style. Verify lighting direction is consistent with described shadows. Add platform-specific parameters and negative prompts.
- Iteration -- If results miss the target, identify which layer is weakest and add specificity there. Adjust keyword weighting rather than adding more keywords. Log successful prompt patterns for reuse across the campaign.
Working from a Reference Image
When a client provides a reference image, deconstruct it into the five layers before writing the prompt. Identify which layer creates the "feel" they want and weight that layer most heavily.
Generating Campaign Sets
When generating a set of images for a campaign, lock the lighting setup, color palette, and camera angle across all prompts to ensure visual cohesion.
Handling the Unknown Platform Case
When the target platform is unknown, write for Midjourney syntax first (most widely used) and note adaptation instructions for other platforms.
Platform-Specific Syntax
Midjourney
- Append parameters:
--ar 16:9 --v 6.1 --style rawfor photorealism. - Use
::2weighting to emphasize critical layers (e.g.,cinematic lighting::2). - Add
--no text, watermark, illustrationas negative prompt.
DALL-E
- Write in natural language paragraphs; DALL-E parses prose better than pipe-separated tokens.
- Front-load the most important visual element in the first sentence.
- Avoid parameter syntax; describe aspect ratio as "wide landscape format."
Stable Diffusion
- Use parenthetical weighting:
(shallow depth of field:1.3). - Negative prompt field:
(blurry:1.2), text, watermark, oversaturated, cartoon, illustration. - Specify model checkpoint if known (e.g., "optimized for Realistic Vision v5.1").
Flux
- Use detailed natural language; Flux excels with long descriptive paragraphs.
- Emphasize photorealistic details: skin texture, fabric weave, material reflections.
- Specify resolution intent: "ultra high resolution, 8K detail."
Reference
Prompt Quality Checklist
- All five layers (subject, environment, lighting, camera, style) are explicitly addressed.
- Photography terms are technically accurate (correct aperture-to-depth-of-field relationship, consistent light-shadow geometry).
- Platform-specific syntax is correct for the target platform (valid Midjourney parameters, proper SD weighting format).
- An aspect ratio is specified.
- A photographer reading the prompt could identify the lighting setup and camera settings without ambiguity.
Scripts
The following script is available in the scripts/ directory for prompt formatting:
scripts/format_prompt.py
Reformats a base prompt with platform-specific syntax for Midjourney, DALL-E, Stable Diffusion, or Flux. Adds appropriate parameters, weighting syntax, and negative prompts per platform.
python scripts/format_prompt.py "portrait of a woman in golden hour light" --platform midjourney
python scripts/format_prompt.py "product shot of a watch on marble" --platform sd --json
python scripts/format_prompt.py "modern office workspace" --platform dalle
python scripts/format_prompt.py "landscape with mountains at sunset" --platform flux
See Worked Prompts for full portrait, product, and lifestyle prompt examples with explanations of why each works.
More from peterhdd/agent-skills
engineering-senior-developer
Lead complex software implementation, architecture decisions, and reliable delivery across any modern technology stack. Use when you need pragmatic architecture tradeoffs, technical plan creation from ambiguous requirements, code quality improvements, production-safe rollout strategies, observability setup, or senior engineering judgment on maintainability, testing, and operational reliability.
66engineering-backend-architect
Architect scalable backend systems, database schemas, APIs, and cloud infrastructure for robust server-side applications. Use when you need microservice vs monolith decisions, database indexing strategies, API versioning, event-driven architecture, ETL pipelines, WebSocket streaming, data modeling, query optimization, or cloud-native service design with high reliability and sub-20ms query performance.
43engineering-frontend-developer
Build modern web applications with React, Vue, Angular, or Svelte, focusing on performance and accessibility. Use when you need component library development, TypeScript UI implementation, responsive layouts with CSS Grid and Flexbox, Core Web Vitals optimization, service worker offline support, code splitting, ARIA accessibility, Storybook integration, or frontend API client architecture.
42engineering-mobile-app-builder
Build native and cross-platform mobile applications for iOS and Android with optimized performance and platform integration. Use when you need SwiftUI or Jetpack Compose development, React Native or Flutter cross-platform apps, offline-first architecture, biometric authentication, push notifications, deep linking, app startup optimization, or mobile-specific UX patterns and gesture handling.
40engineering-system-designer
Design distributed systems, define architecture for scalability and reliability, or create system design documents. Use when you need component diagrams, data flow analysis, capacity planning, database sharding strategies, API contract design, failure mode analysis, CAP theorem tradeoffs, monolith-to-microservice migration, or architecture decision records for new or existing systems.
36engineering-rapid-prototyper
Build functional prototypes and MVPs at maximum speed to validate ideas through working software. Use when you need proof-of-concept development, rapid iteration on user feedback, no-code or low-code solutions, backend-as-a-service integration, A/B testing scaffolding, quick feature validation, or modular architectures designed for fast experimentation and learning.
35