100 lines
6.3 KiB
Markdown
100 lines
6.3 KiB
Markdown
# 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/<shot>.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/<shot>_v1_s<seed>.png`. John reviews before anything touches Flow.
|