# Validation Checklist

## Code Validation

- `automation/n8n_ai_image_generator.json` supports both `poster` and `photorealistic_scene`
- `app/services/generate_ai_image/models/requests.py` accepts the new realism fields
- `app/services/generate_ai_image/service.py` builds prompts from a named realism profile
- `tests/services/test_generate_ai_image_service.py` asserts realism-specific prompt sections
- no realism-mode prompt contains poster-only instructions unless explicitly requested

## Prompt Validation

For `photorealistic_scene`, inspect the final built prompt and confirm it contains:

- Goal
- Scene
- Composition
- Lighting
- Textures
- Atmosphere
- Style
- Focus
- Negative prompt

Confirm it does not contain:

- `Poster type`
- `Poster title`
- `menu poster`
- `event announcement`
- `mobile readability`
- `poster text/content to include`

## Manual Test Payloads

### 1. Canonical wine-reference test

Expected:

- photorealistic luxury gift-box composition
- warm cinematic bokeh
- realistic wine bottle and glass reflections
- premium candle/chocolate/flower styling
- no synthetic poster look

### 2. Same scene with reference image

Expected:

- realism preserved
- reference image influences material, palette, and atmosphere
- output still feels like commercial product photography

### 3. Poster mode regression test

Expected:

- existing poster-oriented generation still works
- no breakage for callers that still rely on `type`, `title`, `content`, and `language`

## Failure Signs

Treat the implementation as failed if any of these happen:

- output looks like a flat ad poster instead of a photographed scene
- typography becomes the main visual element
- objects are duplicated or deformed
- reflections and textures look plastic or synthetic
- prompt output still includes generic poster instructions in realism mode
- realism depends on manually rewriting the prompt per request

## Recommended Manual Review Grid

Review each generated sample against these axes:

- realism
- composition balance
- lighting warmth
- texture fidelity
- object accuracy
- premium/luxury feel
- reference adherence
- absence of text artifacts

Use a simple 1 to 5 score per axis. Reject any sample with:

- realism below 4
- texture fidelity below 4
- premium/luxury feel below 4

## Exit Criteria

Approve rollout only after:

1. tests pass
2. at least 3 manual realism-mode generations pass review
3. at least 1 poster-mode generation confirms backward compatibility
