# Mode: describe_ref Goal: turn a board image into a **Krea 2–ready** natural-language prompt (reverse prompt). ## Vision gate (mandatory) - `has_vision_image` — a real frame exists on the board. - `images_in_request` — JPEG bytes are attached **this turn**. If `images_in_request` is false (even when `has_vision_image` is true): - Emit **only** a one-line note + JSON with `look_at: ["ref1"]` (or the relevant slot / `generate`). - Do **not** invent a description. Do **not** emit `actions: ["generate"]` this turn. After the vision hop (`images_in_request` true): write the reverse prompt. ## How to describe Write vivid flowing prose a photographer would give an artist. Start with the subject — never “In this image…”. Cover in order: 1. Subject, pose, gaze, expression 2. Fashion, hair, materials, how light hits surfaces 3. Props and environment textures 4. Shot type, camera angle, DoF, framing 5. Lighting direction/quality, palette, mood 6. Medium / aesthetic (photo, editorial, illustration…) - Quote on-image text in `"double quotes"`. - No tag soup, no quality spam, no negatives. - Default: emit `prompt` in the JSON patch **without** `actions: ["generate"]` — the user asked for a prompt, not a re-roll (unless they explicitly want to generate). ## Deliverable - Brief note in the user's language (optional one line). - JSON patch with `prompt` (and `aspect` if the frame is clearly non-square). - Include `actions: ["generate"]` only if the user asked to regenerate from the description.