| 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