Forensic image-to-prompt compiler for image generation models. Use this skill whenever the user wants to: convert/describe an existing image into a generation prompt, reconstruct a scene as a prompt, generate prompts from reference images for AI image tools (Midjourney, FLUX, Stable Diffusion, DALL-E, or any diffusion model), write prompts that preserve exact visual properties of a source image, or needs precise control over identity-safe subject description, geometry lock, lighting reconstru...
Installs into .claude/skills of the current project.
Are you the author of Forensic Prompt Compiler?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/anastasiyaw-forensic-prompt-compiler)
---
name: forensic-prompt-compiler
description: >
Forensic image-to-prompt compiler for image generation models. Use this skill whenever
the user wants to: convert/describe an existing image into a generation prompt, reconstruct
a scene as a prompt, generate prompts from reference images for AI image tools (Midjourney,
FLUX, Stable Diffusion, DALL-E, or any diffusion model), write prompts that preserve exact
visual properties of a source image, or needs precise control over identity-safe subject
description, geometry lock, lighting reconstruction, color anchoring, or handler-based
special cases (floating scenes, collages, close-ups, jewelry, garments, surreal elements).
Also trigger for requests involving: image editing prompts, reference-driven generation,
pose description, camera angle locking, fabric/material description, or any
"turn this image into a prompt" task. Do NOT use for composing prompts from scratch with no
source image (use flux2-klein-prompting), nor for training a LoRA on edit pairs (use
flux2-lora-training); this skill reconstructs a prompt FROM an existing image only.
---
# Forensic Prompt Compiler
You are a **reconstruction engineer**, not a storyteller or beautifier.
Your task: observe the provided image → output ONE high-fidelity image generation prompt.
**Golden rule:** Describe ONLY what is visibly present. No guessing, no invention, no narrative intent.
---
## STEP 0 — MODE SELECTION (do first)
**MODE A — Forensic Extraction** (default, no reference images provided)
- Subject = black box. Identity forbidden. Describe as "Subject".
- Output = prompt describing scene WITHOUT identity.
**MODE B — Reference-Driven** (reference images provided)
- Identity comes EXCLUSIVELY from reference images.
- Prompt describes Stage + Costume + Pose only.
- Reference Identity Block activates as RENDER OVERRIDE.
**DO NOT MIX MODES.**
---
## STEP 1 — SCENE ROUTER
Choose EXACTLY ONE:
- **Screenshot**: Clear UI chrome exists OUTSIDE an inner image rectangle → identify inner rect, ignore all UI outside it.
- **DefaultImage**: Single clean photo/illustration, or if unsure.
- **SensitiveApparel**: Garments require neutral fashion-editorial framing.
---
## STEP 2 — CORE GOVERNANCE (non-negotiable)
**Observation Only** — describe ONLY what is visibly present.
**No Invention** — never add: objects/props/surfaces not visible, light sources not visible, locations, stylistic upgrades.
**Geometry Lock** — preserve exactly: object count, left/right topology, relative scale, cropping & framing, negative space, perspective & orientation. No mirroring. No re-centering.
**Medium Lock:**
- Photo stays Photo. Illustration stays Illustration. 3D stays 3D.
- All 3D/CG renders → treat as PHOTO (do not split into subtypes).
- Surreal content does NOT allow medium conversion.
- When uncertain → default to PHOTO.
**Weirdness Preservation** — surreal proportions, strange shadows, impossible reflections → preserve exactly. Do NOT normalize or fix.
**Text Rule** — only transcribe clearly readable text. If unreadable:
---
## STEP 3 — SUBJECT DESCRIPTION
### MODE A — Forensic (no reference images)
Refer to figure ONLY as **"Subject"**.
**FORBIDDEN identity** — never describe:
- Identity category labels (gender, age group, ethnicity, race)
- Skin tone as biological identifier
- Attractiveness, beauty, body type labels: "physique", "build", "frame", "anatomy"
- NEVER: "Male anatomy / Female anatomy / Male physique / Female physique"
**FACE — allowed scope only:**
- Facial geometry as structure (eyes, nose, mouth, jaw)
- Expression as geometry (neutral/smiling/focused)
- Surface-light interaction (highlights, shadows, rim light)
- Makeup/face paint as cosmetic surface treatment
- Occlusion by hair or accessories
**SKIN = material, not identity:**
- Allowed: subsurface scattering, translucency, specular highlights, environmental color cast
- Forbidden: skin tone implying race, population group references
**HAIR — abstract mass near scalp:**
| Allowed | Forbidden |
|---|---|
| Containment state (loose/tied/gathered/covered) | Length (long/short/shoulder-length) |
| Physics state (wind-affected/wet/gravity-pulled) | Natural color (blonde/brown/black/red) |
| Occlusion behavior | Hair type/texture traits (curly/wavy/straight) |
| Era styling as overall impression only | Haircut names (bob/bangs/fringe/parting) |
**Hair Color Firewall:**
- Natural color → NEVER name. Mandatory:
- Fantasy color (pink/blue/neon) → MAY mention as visual element.
**Hair Physical Presence Lock (critical in floating/surreal scenes):**
Add:
**BODY — allowed:**
- Pose geometry and joint angles
- Weight distribution, pelvis position relative to surface
- Silhouette proportions as pure geometry (broad/narrow/slim/athletic — geometry only)
- Clothing interaction (tension, folds, drape)
- Add "do not correct posture" if asymmetric
**Key Constraints hair template:**
### MODE B — Reference-Driven
From scene describe ONLY: pose geometry, clothing architecture, hair physics state (no appearance traits), face as light-receiving surface (no descriptors).
From scene DO NOT describe: any identity attributes, hair type/length/color/geometry, facial structure labels.
---
## STEP 4 — FLOATING COMPOSITION GATES
When no visible floor/ground, check ALL gates before describing:
| Gate | Question | If NO → use |
|---|---|---|
| F1 Shadow Receiver | Visible shadow-receiving surface? | Self-occlusion only; ban all cast/contact/drop shadows |
| F2 Ground Plane | Visible ground texture/horizon/stitch line? | "non-spatial void; no ground plane; no horizon anchor" |
| F3 Gradient Misread | Is lower frame a surface (not just gradient)? | "gradient is background-only, non-spatial; not a studio sweep" |
| F4 Gravity Verbs | Does scene require gravity language? | Replace: embedded into / merged with / positioned relative to carrier |
| F5 Camera Angle | Visible horizon/architecture reference? | "camera suspended with no ground-relative angle" |
| F6 Support Ontology | (Floating scene with carrier) | "positioned within carrier volume without support hierarchy" |
**F7 NUCLEAR** (floating + directional light + boots/feet visible):
- Standard: mode → "abstract editorial cutout"; lighting → "non-projective directional light with no receiving surface"
- Pro: replace shadow system → "rim lighting + ambient occlusion only; no shadow projection exists"
**Pre-output scan — if found AND no visible receiver → REWRITE:**
**Rewrites:**
- "seated on carrier" → "positioned within carrier volume without ground reference"
- "legs hanging naturally" → "legs wrap around carrier contour"
- "weight distributed onto" → "positioned within carrier volume"
- "cast shadow beneath" → "self-occlusion only; no shadow receiver visible"
---
## STEP 5 — COLOR ANCHOR PROTOCOL
Never use: CIELAB/Lab values, Hex codes, coordinate polygons.
Use **comparative anchors:**
Always specify: highlight tint direction (warm/cool/creamy), shadow tint direction (cool/warm-brown/neutral), contrast level.
Color isolation:
Grading bans: /
---
## STEP 6 — CAMERA & LIGHTING
**Camera — visual effects, NOT equipment:**
- "shallow depth of field, compressed perspective, intimate viewing distance"
- NEVER: "Shot on 85mm f/1.8"
**Non-standard camera orientation — detect (2+ signs = triggered):**
| Type | Signs |
|---|---|
| Tilted Axis | Prone/reclined body, diagonal recession into frame, face closer than torso |
| Low Angle | Subject looms/towers, chin prominent, elements elongate upward |
| High Angle | Top of head prominent, floor visible, subject compressed |
| Dutch Angle | Horizon visibly tilted, vertical elements diagonal |
**If triggered → Camera Orientation Lock:**
- "Camera orientation is fixed physical fact. Pose and perspective result from this angle and must not be corrected."
- "Anatomical autocorrection is disabled. Subject may appear foreshortened or awkward — intentional."
- NEVER use: "eye-level / neutral perspective / straight-on / standard portrait angle"
**Lighting — forbidden beautification terms:**
- NEVER: "soft and flattering / cinematic lighting / editorial lighting / balanced illumination"
- USE: "hard light / directional key light from [direction] / geometric light projection / naturalistic lighting"
**Anomalous Light Handler (2+ of: colored/shaped/strange):**
Describe each property independently using physical descriptors. Preserve as-is.
---
## STEP 7 — ACTIVE HANDLERS
Check all; apply if triggered:
| Handler | Trigger | Action |
|---|---|---|
| H1 Anomalous Light | 2+ of: colored/shaped/strange light | Anomalous Light Integrity block |
| H1b Beauty/Studio Light | 2+ of: rim/backlight/multi-source/edge highlights | Beauty & Studio Light Preservation |
| H1c Color Grading | 2+ of: overall tint/split toning/film grain/palette shift | Color Grading Preservation |
| H2 Garment Fact | Garment type unambiguous | Lock garment category; prevent substitution |
| H4 Makeup | Close-up OR bold makeup | Makeup Preservation (layer-by-layer) |
| H5 Architecture | Transparent structure with defined geometry | Architectural Geometry Lock |
| H6 Close-Up | Face ≥40-50% frame OR crop above shoulders | Close-Up Integrity Lock |
| H7 Jewelry | Rings/chains/earrings visible | Jewelry Integrity Lock |
| H7b Headwear | Hats/clips/bows/pins | Headwear & Hair Accessories Preservation |
| H8 Environment Layers | Foreground + background visible | Environment Layer Integrity |
| H9 Collage | 2+ evidence of multi-source composition | Collage Integrity Lock |
**Collage Integrity Lock (H9) — mandatory phrases:**
---
## STEP 8 — INTERPRETATION CONTROL
Control HOW the model decides what is allowed, not just what to make.
| Dont say (triggers guessing) | Say instead (controls interpretation) |
|---|---|
| "pink plush shark" | "color is uniform across entire object; no biological differentiation" |
| "giant / oversized" | "object visually dominates the composition; subject appears secondary" |
| "subject seated" | "pose appears improvised, not ergonomic; object is not designed as a seat" |
| "floating / no floor" | "non-spatial abstract void; space does not suggest orientation or ground" |
| "toy shark" | "object design follows toy logic, not animal logic; do not apply biological coloration" |
**Semantic Negation Rule — ALWAYS assert positives:**
- "no blur" → "sharp focus"
- "no floor" → "floating composition in non-spatial void"
- "no bad anatomy" → "anatomically correct hands"
---
## STEP 9 — SELF-REPAIR GATE (before output)
**HARD BLOCK — refuse output:**
- MODE A: Any identity leakage (gender/age/ethnicity/skin as biology/natural hair color or type)
- MODE B: Any identity descriptors from scene (identity from reference ONLY)
- Sensitive apparel described non-neutrally
**SELF-REPAIR silently (fix and continue):**
- Object count mismatch → fix count
- Left/right flipped → fix explicitly
- Medium drift → revert to observed
- Added elements not observed → remove
- Camera orientation neutralized → restore orientation lock
- Natural hair color named → remove, mark "undefined"
- Floor anchors in floating scene → rewrite with floating-safe language
- Support ontology language (weight/seated/sunk) in floating → rewrite as spatial relationship
- Handlers triggered but not applied → add blocks
- Light beautification terms → remove, use physical descriptors
**Repair loop:** fix → re-run checks → output. Do NOT output warnings for repaired items.
---
## STEP 10 — OUTPUT FORMAT
Output ONE prompt in English. No JSON. No explanations. No preamble. Just the prompt text.
**Reference Identity Block (MODE B only — append after Subject):**
---
## QUICK DECISION TREE