<h1 align="center">
<a href="https://prompts.chat">
Every visual element in a scene is a layer. Each layer is an entity in `objects/`. The generation model composites them — you provide the ingredients.
Loading actions...
<a href="https://prompts.chat">
TypeScript and ESLint rules that MUST be followed when creating, modifying, or reviewing any file under apps/frontend/, including .ts, .tsx, .js, and .jsx files. Also apply when discussing frontend linting, type safety, or ESLint configuration.
risks
Every visual element in a scene is a layer. Each layer is an entity in objects/. The generation model composites them — you provide the ingredients.
Sheets are not decorations. They are countermeasures for known AI image generation failures:
| AI Weakness | What Goes Wrong | Countermeasure |
|---|---|---|
| Identity drift | Different face every panel | Character reference sheet |
| Expression collapse | Same neutral face regardless of emotion | Expression sheet |
| Wrong body mechanics | Impossible poses, broken physics | Motion sheet (with figure-posing skill) |
| Spatial amnesia | Room layout changes between panels | Multi-angle room views |
| Prop mutation | Bunny becomes a bear, phone changes shape | Props in owner's sheets or independent reference |
| Hand disasters | Wrong finger count, impossible grips | Hand-motion sheet for POV characters |
Every sheet exists because the model WILL fail without it. If you can't name the failure it prevents, you don't need the sheet.
When you feed the model reference images for each layer — the room, each character, key props — it has precise visual DNA for every element. The model does the compositing (it's smart enough), but you control what goes into the mix. Without layering, every element is a guess. With layering, each element is locked by its reference sheets.
Before creating entities, decompose the scene into layers:
Scene = Environment Layer + Character Layers + Prop Layers
Example - Hospital Room Scene:
Environment: hospital-room (3 views: door, window, overhead)
Characters: daughter (character + expression + motion sheets)
└─ bunny absorbed into her motion sheet
mother (character + expression sheets)
└─ newborn absorbed into her character sheet
father (character + hand-motion sheets)
└─ phone absorbed into his hand-motion sheet
Entities own their props. Props that belong to a character live in that character's entity, not as separate entities.
| Prop | Owner | Why |
|---|---|---|
| Phone | Father entity | Only he uses it. It's part of his hand-motion sheet. |
| Hospital gown | Mother entity | It's her wardrobe, described in her sheet.md. |
| Bunny | Daughter entity | She carries it, drops it, but it's always HER bunny. Part of her motion sheet. |
| Newborn | Mother entity | Always in mother's arms. Part of her character sheet. |
| Hospital bed | Hospital-room entity | It's furniture. It appears in room views. |
| IV stand | Hospital-room entity | Set dressing. Part of the room. |
The test: Does this prop exist independently in scenes without its owner? If yes, it may need its own entity. If no, it belongs to the owner.
If an element is always shown with its owner, it belongs in the owner's sheets — not as a separate entity.
The bunny appears in 3 of the daughter's reference images already. Making it a separate entity means spending $0.15 on a redundant sheet. The newborn is always in the mother's arms — it's part of her visual identity, not a separate character.
The absorption test: Count how many of the owner's sheets already show this element. If it's in 2+ sheets, absorption is free — you already have the visual DNA. A separate entity wastes money and adds no consistency.
Room views should show ALL contained furniture/equipment in their natural positions. When the model sees the room reference, it sees the complete spatial layout — bed, chair, IV stand, table — not an empty box.
Not every layer needs the same depth of reference:
| Layer Complexity | Sheets | When |
|---|---|---|
| Full character (complex actions, emotions) | character + expression + motion | Main characters with unusual physical actions |
| Standard character (emotions, no complex motion) | character + expression | Characters who emote but don't do unusual things |
| Minimal character (simple visual) | character only | Characters with one visual state — but consider absorption first |
| POV character (hands/arms only) | character + hand-motion | First-person POV where only hands are visible |
| Full environment | 3 views (door, window, overhead) | Rooms where characters move through space |
| Simple environment | 1-2 views | Static backgrounds |
| Independent prop | 1 reference | Small items at risk of drift |
| Owned prop | Part of owner's sheets | Props always attached to their owner |
Ask these questions for each visual element:
Sheets are not random. They come FROM scenes — each sheet resembles a layer of the scene it serves. They are a mechanism to fix the weakness of AI image generation.
The same principle applies one level up: skills fix the weakness of AI memory. Claude forgets techniques between sessions. Skills persist those techniques as files. Reference sheets compensate for image model weaknesses. Skills compensate for language model weaknesses. Both are systematic countermeasures for known failure modes.
Knowing WHEN you will fail is the crucial preparation. The entity layering system exists because AI image models fail at consistency without visual anchors. Every sheet is a pre-deployed fix for a failure that hasn't happened yet.