# RECORD STORE GUY — production bible (v0 draft, pending John's art review) The whole consistency strategy: **nothing is ever prompted freestyle.** Every image (FLUX) and every clip (Flow/Veo) is assembled from the verbatim blocks below plus ONE shot-specific action sentence and ONE camera line. Blocks are copy-pasted character-for-character. Edit a block → bump its version and regenerate the ingredient stills before generating any more clips with it. ## STYLE BLOCK v1 (verbatim in every prompt, FLUX and Flow) > 1980s hand-drawn cel animation, theatrical animated feature quality, thick > confident ink outlines, rich painterly gouache backgrounds, dramatic colored > rim lighting, saturated jewel-tone palette with deep shadows, subtle film grain, > 2D animation cel look, no photorealism, no 3D render, no CGI. **DECIDED: cel animation is canonical for the build** (John, 2026-07-19 — in the spirit of Dragon's Lair/Space Ace). The look is now a SWAPPABLE layer: blocks live in `production/prompts/` (blocks.json = characters/sets, looks/*.json = styles: cel80s ✦canonical, scannerdarkly rotoscope, fmv90s, heavymetal). Compile any shot in any look with `tools/promptc.py shots/.json [--look NAME | --all]`; `--flux hero --look NAME` emits the matching ingredient-still prompt (each look needs its OWN hero ingredient still — ingredients are style-baked). Style test plan: 1 busy shot (t2_s3_sharkrun) × 4 looks ≈ 80 credits, judge, then commit. Alt-look re-releases later = re-run the same shot files with a different --look. ## HERO BLOCK v1 — "Dez" (placeholder design, John approves at concept review) > Dez, a lanky 20-something record store clerk with a tall messy black quiff, > olive skin, thick eyebrows, wearing an open red flannel shirt over a faded black > band t-shirt, rolled dark jeans, scuffed white hi-top sneakers, oversized silver > headphones worn around the neck, expressive rubber-limbed animation acting. Notes: silhouette-first design (quiff + flannel + neck headphones reads at any size/angle — that's what survives gen drift). Keep clothing colors primary and few. ## VILLAIN candidates (pick one with John, then write VILLAIN BLOCK v1) 1. **The Dead Wax** — an entity living in run-out grooves; black liquid vinyl that drips out of records and takes shapes. Great for varied deaths, easy consistency (it's a black glossy mass — gen drift can't hurt it). *(recommended)* 2. **Mildred** — possessed store cat, eyes like spinning 45 adapters. 3. **The Audiophile** — tyrannical ghost of the store's founder, cable-tentacles, tube-amp glow chest. ## SET BLOCKS v1 **SET-A store floor:** > inside a cluttered independent record store at night, rows > of wooden crates packed with vinyl records, walls covered in gig posters and > album sleeves, a buzzing neon sign glowing red and cyan, dusty air, single > flickering fluorescent tube, checkerboard floor. **SET-B backroom:** > the record store stockroom, floor-to-ceiling industrial > shelving stacked with record boxes, a single hanging bulb, a service hatch, > cobwebs, teetering towers of 7-inch singles. **SET-C listening booth:** > a vintage wood-paneled listening booth with a glowing > turntable console, padded walls, a porthole window, warm amber light. (3 sets is enough for a full gauntlet — Dragon's Lair reused rooms shamelessly. Add SET-D "the groove" (surreal inside-the-record void, black glossy landscape, concentric ridges to the horizon) if we pick villain #1.) ## PROMPT GRAMMAR **FLUX still:** `[STYLE] [HERO or VILLAIN] [SET] [pose/expression sentence] [framing line]` **Flow clip:** `[STYLE] [HERO] [VILLAIN if present] [SET] [ACTION: one sentence, one verb chain, ≤25 words] [CAMERA: one line, e.g. "static wide shot" / "slow push-in"]` Rules: - ONE action per clip. Veo garbles compound choreography. A scene needing two beats = two clips frame-chained. - Name the character every time ("Dez ducks…" never "he ducks…"). - Camera: default static or slow push — wild moves amplify drift. - Deaths end on a held comedic tableau (readable freeze for DEATH_HOLD). - Negative/avoid line on every gen: "no text, no captions, no watermark, no extra people, no photorealism." ## FLOW WORKFLOW (Phase 3+; John drives the browser/login, never Claude with credentials) 1. Ingredients: upload approved FLUX `hero_face` + `hero_sheet` (+ villain still). Every clip gen uses ingredients-to-video referencing them. 2. Veo Fast (~20 cr) for all takes; quality (~100 cr) reserved for intro/win/hero deaths. 3. Within-scene continuity: Flow "extend" / last-frame→first-frame chaining. Between scenes: hard cuts (hide drift; it's the Dragon's Lair idiom anyway). 4. 16:9, and trim in post — never re-gen to fix length (postprocess.sh trims free). 5. Log EVERY gen in production/SHOTLOG.csv before the next gen: `date,scene_id,take,mode,credits,verdict(keep/reject),drift_notes`. ## CONCEPT-ART PROMPTS (Phase 2, MODELBEAST flux_local, free — iterate hard) Compose per grammar above. Shot list + specific final sentences: 1. `hero_sheet`: "character model sheet, full body turnaround, front view and side view, neutral standing pose, plain warm gray background" *(omit SET)* 2. `hero_face`: "close-up head and shoulders portrait, three-quarter view, confident smirk, plain warm gray background" *(omit SET — this is the prime Flow ingredient)* 3. `villain`: per chosen candidate + "emerging menacingly, full figure, dramatic low angle" 4. `store_wide`: STYLE + SET-A + "wide establishing shot, empty of people, moody" *(omit HERO)* 5. `store_backroom`: STYLE + SET-B same treatment 6. `style_frame`: full grammar, SET-A, "Dez frozen mid-leap over a toppling crate of records as black vinyl tendrils snatch at his ankles, dramatic wide shot" — the money shot 7. `death_concept`: SET-A, "Dez flattened under an avalanche of record crates, only sneakers and one hand visible giving a weak thumbs-up, comedic tableau" 8. `title_card`: "vintage 1983 arcade cabinet marquee art with the title RECORD STORE GUY in chrome airbrushed lettering over a black vinyl record dripping like liquid" *(text WILL come out mangled — it's concept only; real logo gets drawn/typeset later)* Run seeds 1–4 per shot (`-p seed=N`), pick best, file as `bible/concept/_v1_s.png`. John reviews before anything touches Flow.