Cut always-on system tokens (slim core, inventory, identity shelves, hops) and fix has_vision_image vs images_in_request so look_at gates correctly; enrich rich LoRAs and expose system_chars in debug. Co-authored-by: Cursor <cursoragent@cursor.com>
39 lines
1.5 KiB
Markdown
39 lines
1.5 KiB
Markdown
# 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.
|