@slatesvideo/shared 0.5.10 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: slates-prompting-seedance-2-5
3
- description: How to prompt Seedance 2.5 and Seedance 2.5 Edit. Read before calling slates_generate_video with model seedance-2.5, or slates_edit_video with model seedance-2.5-edit. 2.5 is a SECOND SEAT next to 2.0, not an upgrade — it buys 30-second takes, 30 image references, audio-only references and INTEGER-SECOND TIMESTAMPS, and it gives up 1080p and 4K — it is 480p or 720p on every route Slates offers. Timestamps are the one grammar difference that matters: 2.0 ignores them and answers only to shot numbers, 2.5 acts on them. Otherwise it shares 2.0's grammar (read slates-prompting-seedance for subject binding, camera and constraint vocabulary); this file covers what is different, plus the two hazards unique to 2.5 — the prompt-intent task classifier and the cost trap at 720p.
3
+ description: How to prompt Seedance 2.5 and Seedance 2.5 Edit. Read before calling slates_generate_video with model seedance-2.5, or slates_edit_video with model seedance-2.5-edit. 2.5 is a SECOND SEAT next to 2.0, not an upgrade — it buys 30-second takes, 30 image references, audio-only references and INTEGER-SECOND TIMESTAMPS, and it gives up native 4K and costs more than 2.0 at every resolution they share. Timestamps are the one grammar difference that matters: 2.0 ignores them and answers only to shot numbers, 2.5 acts on them. Otherwise it shares 2.0's grammar (read slates-prompting-seedance for subject binding, camera and constraint vocabulary); this file covers what is different, plus the two hazards unique to 2.5 — the prompt-intent task classifier and the cost trap that comes with 30-second takes.
4
4
  ---
5
5
 
6
6
  # Seedance 2.5 — prompting
@@ -15,15 +15,16 @@ where 2.0 ignores them.**
15
15
 
16
16
  ## The one fact that decides whether you use it at all
17
17
 
18
- **Seedance 2.5 is 480p or 720p on every route Slates offers — no 1080p, no 4K.**
18
+ **Seedance 2.5 is the EXPENSIVE seat, not the cheap one — and it has no 4K.**
19
19
 
20
- Treat that as the current ceiling on our routes, not a claim about the model everywhere. It is not a
21
- tier gate either: no Slates plan unlocks a higher resolution on 2.5. So 2.5 does not replace 2.0;
22
- it sits beside it:
20
+ It runs at 480p, 720p or 1080p (1080p landed on all three routes on 2026-08-24), and at every
21
+ resolution the two seats share it costs MORE than 2.0 — 720p $0.231/s against $0.15/s, **54% more**.
22
+ So 2.5 does not replace 2.0; it sits beside it, and you pay for what it buys:
23
23
 
24
24
  | | Seedance 2.0 | Seedance 2.5 |
25
25
  |---|---|---|
26
- | Resolution | 480p / 720p / 1080p / **native 4K** | **480p / 720p only** |
26
+ | Resolution | 480p / 720p / 1080p / **native 4K** | 480p / 720p / 1080p — **no 4K** |
27
+ | Price at 720p (faceless) | **$0.15/s** | $0.231/s |
27
28
  | Length | 4–15s | **4–30s in one take** |
28
29
  | Reference budget | 15 (9 image + 3 video + 3 audio) | **50 (30 image + 10 video + 10 audio)** |
29
30
  | Combined reference video/audio | ≤15s | **≤30s** |
@@ -78,7 +79,7 @@ is forbidden — the words that reach the model are always the words the user ca
78
79
 
79
80
  ---
80
81
 
81
- ## 🚨 Hazard 2 — 720p is not "the cheap one" any more
82
+ ## 🚨 Hazard 2 — resolution is not the price dial here. LENGTH is.
82
83
 
83
84
  Every other model in Slates trains the habit that lower resolution means lower cost. 2.5 breaks it,
84
85
  because the thing that moves the bill is **length**, and 2.5's length ceiling is double 2.0's.
@@ -87,16 +88,20 @@ Worked, at the shipped rates:
87
88
 
88
89
  | Generation | Credits |
89
90
  |---|---|
90
- | 2.5 · 480p · 5s · faceless | 28 |
91
- | 2.5 · 720p · 5s · faceless | 59 |
92
- | 2.5 · 720p · 30s · faceless | 355 |
93
- | 2.5 · 720p · 30s · AI-face route | **484** |
91
+ | 2.5 · 480p · 5s · faceless | 26 |
92
+ | 2.5 · 720p · 5s · faceless | 58 |
93
+ | 2.5 · 1080p · 5s · faceless | 103 |
94
+ | 2.5 · 720p · 30s · faceless | 347 |
95
+ | 2.5 · 720p · 30s · AI-face route | **489** |
94
96
  | 2.5 · 720p · 30s · consented real-face route | **710** |
97
+ | 2.5 · 1080p · 30s · faceless | **614** |
98
+ | 2.5 · 1080p · 30s · consented real-face route | **1,749** |
95
99
  | *(for scale)* 2.0 · 1080p · 15s · AI-face route | 411 |
96
100
 
97
101
  **A 30-second 720p clip can cost more than a 15-second 1080p one** — and a base licence starts
98
102
  with 1,000 credits. Someone who reads "720p" as "cheap" and asks for a 30-second take on the
99
- real-face route has spent 71% of their welcome grant on one clip.
103
+ real-face route has spent 71% of their welcome grant on one clip; **on the real-face route a single
104
+ 30-second 1080p take is more than the whole grant.**
100
105
 
101
106
  **Discipline:**
102
107
 
@@ -104,10 +109,10 @@ real-face route has spent 71% of their welcome grant on one clip.
104
109
  the number out loud before generating.
105
110
  - **Find the shot at short LENGTH, not at low resolution.** Length is what moves the price, so cut
106
111
  seconds while you are still exploring — 4–8s — and stay at the resolution you actually want.
107
- **A 480p pass does not de-risk a 720p render.** Generation is stochastic: the 720p run is a
108
- different take, not the same shot rendered better. So a 480p draft that looks right buys you no
109
- guarantee, and one that looks wrong may have been fine at 720p — you paid 22 credits to learn
110
- nothing, when 48 would have bought a real candidate.
112
+ **A 480p pass does not de-risk a 720p or 1080p render.** Generation is stochastic: the higher-
113
+ resolution run is a different take, not the same shot rendered better. So a 480p draft that looks
114
+ right buys you no guarantee, and one that looks wrong may have been fine at 720p — you paid 26
115
+ credits to learn nothing, when 58 would have bought a real candidate.
111
116
  - **Length is a creative decision, not a default.** 30 seconds is available; it is rarely the right
112
117
  answer for a single shot. Multi-shot storyboards inside one 30s generation are what the length is
113
118
  actually for.
@@ -238,7 +243,8 @@ Kling O3 Edit is the one that takes element and style reference images.
238
243
  ByteDance's own recommendation is to stay inside 20 for quality. A 28-second source is legal and
239
244
  will need more attempts.
240
245
  - **The aspect ratio follows the source clip too.** No ratio control; the frame is the clip's frame.
241
- - **480p or 720p output**, native audio.
246
+ - **480p, 720p or 1080p output**, native audio — and an edit bills the video-reference tier ×2,
247
+ so 1080p on this row is the most expensive second in the app. Quote it.
242
248
  - **Prompt and source clip only** on this op. The MODEL takes reference images on an edit
243
249
  (ByteDance recommends 1–5 — *"replace the man in dark clothing in @Video 1 with @Image 2"*);
244
250
  **Slates has not wired that path**, so today an edit that must lock an identity from a photo
@@ -0,0 +1,307 @@
1
+ ---
2
+ name: slates-ugc-influencer-ad
3
+ description: Build a UGC-style AI-influencer ad in Slates — one synthetic person, phone-grade footage, one shot per generation, cut to a vertical direct-response ad. Read before making any talking-to-camera creator video, AI spokesperson, faceless-brand UGC ad, TikTok/Reels/Shorts ad with a person in it, or a testimonial-style spot. NOT for polished cinematic spots — that is a different register with an inverted rulebook, and mixing the two ruins both.
4
+ ---
5
+
6
+ # UGC influencer ad — the full production doctrine
7
+
8
+ One synthetic person, talking to a phone, selling one thing. This is the highest-converting short-form ad shape on paid social right now, and almost every rule below exists because the obvious approach fails.
9
+
10
+ **Read this file end to end before generating anything.** The phases are not independent: the plate rules decide whether the video rolls land, and the pacing arithmetic decides how long the script can be.
11
+
12
+ ---
13
+
14
+ ## 🚨 THE GOVERNING LAW: UGLY ON PURPOSE
15
+
16
+ **Handheld, blown highlights, flat light, no colour grade, no music bed.** That is not a shortcut, it is the argument. The ad's implicit claim is *this is a real person filming herself*, and cinematic polish is exactly what makes AI legible as AI.
17
+
18
+ **If a clip looks like a commercial, it failed.** Every competitor reaches for cinematic. The winners reach for boring.
19
+
20
+ **Photoreal is a flaw budget, not a quality setting.** Everything that makes a frame read as real is something the model must be talked out of: even skin, symmetric light, a clean silhouette, a posed smile. Spend the prompt on imperfections. **Never spend it on quality words** — "hyperrealistic", "8k", "masterpiece" and "ultra-detailed" do nothing here and push toward the rendered look you are avoiding.
21
+
22
+ ---
23
+
24
+ ## The pipeline — nothing skips a stage
25
+
26
+ ```
27
+ script → character sheet → beat sheet → plates (one per beat) → video (one per beat) → edit
28
+ [ slates_generate_image ] [ slates_generate_image ] [ slates_generate_video ]
29
+ ```
30
+
31
+ Every video roll starts from an approved plate. Every plate starts from a beat. Every beat starts from a finished script. **A video roll with no plate behind it is the most expensive mistake available in this pipeline** — images are cheap and video is not.
32
+
33
+ Estimate before every stage with `slates_estimate_generation_cost`, and read `slates-cost-discipline` before the first generation.
34
+
35
+ ---
36
+
37
+ ## PHASE 1 — THE SCRIPT
38
+
39
+ **Start from a proven ad, not a blank page.** Find an ad in this format that is currently running, transcribe it, and put its script beside yours. Diagnose why theirs works before writing a word. **Clone the structure; swap the product and the specifics.** A paraphrase of a working script performs worse than the script.
40
+
41
+ ### Write the argument as one unbroken paragraph
42
+
43
+ No beats attached, no shot list, no timings. Get it to where **no sentence can be moved without breaking the one after it.** If two sentences can swap places, it is a list, and a list reads staccato on camera.
44
+
45
+ ### The four tests
46
+
47
+ 1. **Can any two sentences swap?** Then it is a list, not an argument.
48
+ 2. **Does the voiceover describe what is on screen?** It must not. **The picture proves the realism; the words argue the business case.** Two channels, two jobs.
49
+ 3. **Does one named person recognise themselves in the first sentence?** *"Freelancers who haven't offered video to clients yet"* works. *"You're scared of AI"* names nobody.
50
+ 4. **Does the close force a binary?** A question where both answers belong to the viewer and one of them is unacceptable.
51
+
52
+ ### Line-level rules, each earned by a failure
53
+
54
+ - **Clarity beats cleverness, every time.** Write it so a ten-year-old follows it. A line the viewer has to decode is not a hook.
55
+ - **Use the plain word.** "Subscription", not "renting access". "Buy it once", not "perpetual license".
56
+ - **Never sell a feature — sell the end state.** Nobody cares what the tool does. They care about money kept, clients won, competitors beaten.
57
+ - **Give the claim its context.** "No subscription" means nothing on its own — a subscription to *what*? Say what is for sale before saying why it is better.
58
+ - **Fear of missing out must name the loss.** "Your competitors are using this" is nothing. Name what it costs them: the customers being taken, the winning ad someone else found first.
59
+ - **No invented numbers.** A statistic you cannot source is a liability, and the model will happily produce one.
60
+ - **No contrastive negation** — *"this isn't X, it's Y"* / *"Not X. Y."* It is the single most recognisable AI-writing tell.
61
+
62
+ ### Runtime is arithmetic
63
+
64
+ **Words ÷ 3.4 = seconds.** Budget the fast number. A 17-word line is a 5-second shot; a 24-word line is 7 seconds. Decide length by cutting words, never by asking for a slower read.
65
+
66
+ ⚠️ **A generous window manufactures a slow delivery.** Give a 5-word line a 4-second shot and the model stretches the words to fill it. That is what "she talks too slowly" actually is, and no adjective in the prompt fixes it.
67
+
68
+ ⚠️ **The model normalises non-standard grammar and you cannot argue with it.** "One less client" comes back as "one fewer client" every roll. Rewrite the line so the construction never appears rather than re-rolling against it.
69
+
70
+ ---
71
+
72
+ ## PHASE 2 — THE CHARACTER
73
+
74
+ **One person carries the entire ad.** Build her once, lock her, and every plate afterwards references her.
75
+
76
+ ### Build order, and it is counter-intuitive
77
+
78
+ 1. **Generate one ordinary plate first** — any location, described positively: bone structure, colouring, eye spacing, lip shape, hair texture, build.
79
+ 2. **Crop the face out of that plate.** That crop is now the seed.
80
+ 3. **Generate the identity sheet from the crop.** Sheets seeded from a rendered image come back rendered; sheets seeded from a photographic plate come back photographic. **Realism carries through the reference chain.**
81
+
82
+ ### The sheet itself
83
+
84
+ Three panels on one plate, 16:9: a large chest-up portrait at three-quarter angle on the left, a full-body A-pose centre, a full-body back view right with hair visible. The portrait is the largest panel and carries the face at maximum detail. **No second rendering of the face anywhere on the sheet.** Identical wardrobe and hair across all three panels. Plain neutral-grey background.
85
+
86
+ ⚠️ **Phrase a cropped panel as FRAMING, never as absence.** *"The head not shown"* is a content-policy refusal. *"Cropped at the collarbone"* states a camera fact and passes.
87
+
88
+ ⚠️ **Light the sheet with flat phone light and a raking side source, never studio light.** The sheet drives lighting on every plate built from it, so a studio-lit sheet contaminates the whole ad with a studio look.
89
+
90
+ ### Making skin read as photographic
91
+
92
+ **Name the photographic source. Do not inventory flaws.** A list — *"open pores, oily sheen, a blemish"* — gets treated as tokens and produces plastic. This works:
93
+
94
+ > These are photographs off someone's camera roll that were never opened in an editor. Daylight arrives from one side and rakes across her face, so the texture catches the light along the cheekbone and the bridge of the nose while the other side sits in soft shadow. Slight JPEG softness, visible sensor grain in the shadows, white balance left a little cool and uncorrected.
95
+
96
+ **Flat light hides texture. Raking side light is what makes pores visible at all.**
97
+
98
+ **Give her a name**, in the prompt and in the script. A name creates a person; "an AI influencer" creates nothing.
99
+
100
+ ### 🚨 References decide things prompts cannot
101
+
102
+ | The REFERENCE decides | The PROMPT decides |
103
+ |---|---|
104
+ | face, body, build, skin tone, framing, crop | skin detail, light quality, expression, what the camera is, what else is in frame |
105
+
106
+ **Text cannot override the left column.** Asking for fair skin and an ordinary build against a tanned, model-built reference returns tanned and model-built. **Do not argue with a reference — replace it.**
107
+
108
+ ⚠️ **Never drop the reference to win the left column.** Running the same beat text-only returns a stranger and breaks the one thing this format cannot lose.
109
+
110
+ ---
111
+
112
+ ## PHASE 3 — THE BEATS
113
+
114
+ Cut the finished script into scenes. **Cut mid-clause, never on a full stop.** A line that resolves lets the generator sit in one room; an unresolved clause forces the location change.
115
+
116
+ **Each shot gets one complete phrase — roughly 12 to 18 words.** Cut the script into phrases first, then assign a scene to each phrase. Never cut a phrase to fit a scene.
117
+
118
+ ### 🚨 THE CAMERA IS THE VARIETY AXIS, NOT THE LOCATION
119
+
120
+ Eight plates in eight different rooms, all carrying *"shot on a phone at arm's length"*, produce eight shots that look identical. Rewrite the **camera position** per shot and the same eight locations become a real ad.
121
+
122
+ **Six generators — assign a different one to each consecutive beat:**
123
+
124
+ 1. **Inside an object, looking out** — washing machine drum, fridge, microwave, locker, glovebox, mailbox, vending machine, oven. The object's mouth rings the frame out of focus.
125
+ 2. **On the floor, looking up** — sidewalk at ankle height, base of a pillar, stairwell landing, under a bench.
126
+ 3. **High, looking down** — wedged on a shop shelf, on top of a fuel pump, a ceiling corner, one level above.
127
+ 4. **Set on a surface she walks into frame of** — car roof, folding table, bus bench, tailgate.
128
+ 5. **Behind or through something** — a hot food counter, chain-link, a clothes rack, a rain-covered window.
129
+ 6. **Reflections that are not a bathroom mirror** — polished elevator steel, a dark shop window at night, a wing mirror, a puddle, a dead ATM screen.
130
+
131
+ ⚠️ **UGC does not mean selfie.** An arm's-length clause in a shared prompt tail produces one camera position N times *and* puts her extended arm through the corner of every frame. **The phone is propped, set down, wedged or left somewhere far more often than it is held.**
132
+
133
+ ⚠️ **Rooms of a house are a cop-out.** A place with a job beats a place to live: laundromat, parking garage, corner store, gas station, car wash, storage corridor, elevator, stairwell, loading dock.
134
+
135
+ ⚠️ **Changing location costs nothing.** Identity travels on **wardrobe + a fixed hair style + one accessory motif**, never on the room. Never let set continuity argue you into staying put.
136
+
137
+ ⚠️ **Fast cutting is close-weighted.** A wide shot needs time for the eye to find the subject; a close-up lands instantly. At 1.5–2.5 seconds a beat, weight the set toward tight.
138
+
139
+ ---
140
+
141
+ ## PHASE 4 — THE PLATES. One per beat.
142
+
143
+ `slates_generate_image`, model `gpt-image-2`, `quality: high`, vertical `9:16`. **Fire concurrently — 8 slots run at once; serial calls waste the day.** Pass `projectId` so every plate lands in the gallery where you can see it.
144
+
145
+ **GPT Image 2 is the rail for photoreal people.** Head-to-head against the alternatives it is the one that returns photographic rather than plastic skin. Routing detail: `slates-model-selection`.
146
+
147
+ ### 🚨 GPT Image 2 routes references through its EDIT endpoint
148
+
149
+ Two consequences, both of which waste a generation:
150
+
151
+ 1. **A prompt that opens by describing the reference gets the reference edited.** Open with *"one reference image is a three-panel character identity sheet"* and it returns a brand-new character identity sheet. The head block below is written the way it is precisely to prevent this.
152
+ 2. **One reference alone drags the scene into that reference's background.** A sheet-only roll puts her on the sheet's plain grey backdrop with no location at all. **Always pass two references:** the identity sheet, plus a second image supplying either the environment or the skin quality to match.
153
+
154
+ ### 🚨 THE PLATE IS FRAME ZERO
155
+
156
+ The plate is the video roll's first frame, so **whatever is going to happen has not happened yet.** If the beat is something breaking, the thing is intact in the plate. A plate showing the aftermath gives the model nothing to do and opens the shot on a result instead of an event.
157
+
158
+ **Sole exception:** a background element that must be visible in frame one to stop the scroll.
159
+
160
+ ### Build every plate from three blocks
161
+
162
+ **HEAD — identical every time. The anti-sheet clause is load-bearing.**
163
+
164
+ > Reference image 1 is a character identity sheet showing one woman across several panels — the face in the large portrait panel is the authority for her identity. Use that exact woman. Reference image 2 is [the second reference and its job]. Produce a single photograph, not a sheet and not multiple panels.
165
+
166
+ **MIDDLE — the only part that changes:** location, camera position, wardrobe, **expression, and hair state.**
167
+
168
+ **TAIL — identical every time.**
169
+
170
+ > Shot on a phone, slightly soft, mild wide-lens distortion, no colour grade. Camera-original skin with open pores across the nose and cheeks, an oily sheen on the forehead, faint creases under the eyes. These are photographs off someone's camera roll that were never opened in an editor. No retouching and no skin smoothing. Nobody is holding a camera and no phone, camera or device is visible anywhere in the picture. Clean unmarked frame with no text and no logo.
171
+
172
+ ### 🚨 Expression and hair state go in the MIDDLE, never the tail
173
+
174
+ Putting *"caught mid-sentence, mouth slightly open, eyes on the lens"* in the shared tail produces the identical face in every location.
175
+
176
+ **Hair STYLE stays fixed** — that plus wardrobe is what carries identity. **Hair STATE varies:** tucked behind an ear, blown across her face, tangled from lying down, scraped back.
177
+
178
+ Expressions that worked: mid-sentence and locked on the lens · laughing with eyes half shut · concentrating on something, not the camera · squinting into daylight · flat and unimpressed, waiting · bored and blinking, about to speak and not.
179
+
180
+ ### 🚨 The plate decides whether a physical feat is possible at all
181
+
182
+ **The model will mime an action it cannot resolve.** Three rolls failed the same way on 2026-08-24: a dumbbell whose bar stayed straight while her hands moved, a pan that floated free of her grip and folded against her chest, a steel pole that leaned instead of folding.
183
+
184
+ **All three were plate problems.** The pan plate had her holding it one-handed at arm's length with the phone in her other hand — no second hand existed to fold it with, so the model invented one and the object drifted.
185
+
186
+ - **If the act needs both hands, the plate must show both hands free.** That means the camera is propped, set down or wedged — never held at arm's length.
187
+ - **Direct the resistance, not the result.** Knuckles whitening, tendons standing, a beat where it holds, then the give.
188
+ - **State the finished shape.** *"Folded in half so the two ends touch"* is checkable. *"Bends it"* permits a lean.
189
+
190
+ ### 🚨 NEVER composite a character onto a finished scene. Generate the whole frame at once.
191
+
192
+ **Receipt, 2026-08-24.** A spectacle plate was generated first (a street, correctly lit), then the character was added by passing that plate as a second reference. Every attempt came back looking green-screened: her face carried a soft frontal key that existed nowhere in the scene, she was sharper and cooler than the background, and no haze or flare crossed in front of her. **A finished scene handed in as a reference tells the model to paste, not to light.**
193
+
194
+ **The fix is to describe one scene from scratch with only the identity reference attached.** Same subject, same location, same everything — the difference is that the model renders one frame in one pass instead of merging two. The first from-scratch attempt landed.
195
+
196
+ Use a second reference for *design* (a creature's build, a style) — never for a whole composed frame the character has to be inserted into.
197
+
198
+ ### 🚨 Write the light as ONE physical system, or the character reads as pasted in
199
+
200
+ The single most common tell is a key light on the subject's face that has no source in the picture. Name all four of these explicitly:
201
+
202
+ 1. **One source, and where it is.** *"The sun is low and directly down the avenue behind everything."*
203
+ 2. **What that does to HER specifically.** If she is backlit, say her face is in ambient bounce with no highlight and no catchlight, and put the hard rim on her hair, one shoulder and the collar.
204
+ 3. **Forbid the key that does not exist.** *"There is no light in front of her: no frontal key, no fill, no soft source on her face."* Without this clause the model adds one every time.
205
+ 4. **Atmosphere in FRONT of her, not only behind.** Haze, dust and veiling flare must cross the foreground, so her edges are no sharper than the parked cars beside her. **Every shadow in frame runs parallel**, hers included.
206
+
207
+ **Let the camera's exposure be part of the physics.** Backlit means the phone lifts for her face and the sky blows to white. Night means the fire blows out and the blacks lift. That single decision ties subject and background into one image better than any amount of description.
208
+
209
+ ⚠️ **Do not stack grain adjectives.** *"Heavy luminance noise"* plus *"aggressive noise reduction"* plus *"milky lifted blacks"* in one prompt produced a clip so noisy it read as broken. Modern phones are clean at night — name the light, not the sensor damage.
210
+
211
+ ### Other plate rules
212
+
213
+ - **Never describe the phone as an object.** *"She lifts the phone"* renders a phone in her hand. Describe what the camera does.
214
+ - **Write negatives as positives.** *Matte uneven skin*, not "not smooth". *Flat daylight*, not "no studio lighting". *Caught mid-step*, not "not posed". A "no X" list is either ignored or quietly summons X.
215
+ - **Text on props renders cleanly and is worth using.** A label reading `YOUR PRODUCT` comes back legible.
216
+ - **Content refusals are stochastic. Re-roll the identical prompt before rewriting it.** A plate can refuse once and pass on an unchanged second call. A refused job returns no image and costs nothing. Only redesign after two or three refusals.
217
+ - **Generate a pool and pick.** A mediocre plate wastes a metered video roll, and video is the only expensive stage.
218
+
219
+ ---
220
+
221
+ ## PHASE 5 — THE VIDEO. One generation per shot.
222
+
223
+ `slates_generate_video`, vertical `9:16`, the plate as the first frame. Model routing lives in `slates-model-selection` — read it rather than guessing, and check `slates_estimate_generation_cost` before firing.
224
+
225
+ ### 🚨 ONE SHOT PER GENERATION. Never a multi-scene take.
226
+
227
+ Measured directly: a six-scene roll returned **nothing usable**, a three-scene roll returned about one usable second, and **the same beats shot as ten separate single-scene generations all landed on the first attempt.**
228
+
229
+ Cost is linear per second, so splitting is free. What it buys:
230
+
231
+ - **A bad shot costs one shot, not the whole ad.** In a long take one broken scene kills every good scene beside it and the retry re-buys all of them.
232
+ - **Every shot re-rolls independently**, so a note lands on one shot.
233
+ - **8 concurrent jobs means the whole ad shoots in one wave anyway.** A long take buys no wall-clock.
234
+ - **No transition can fail**, because there are no transitions inside a generation. Cuts happen in the edit, where they are free and reversible.
235
+
236
+ A short line padded into the minimum duration is trimmed in the edit for nothing. **That padding is a far cheaper problem than a dead long take.**
237
+
238
+ ### The plate is the first frame, always
239
+
240
+ Passing the plate as the first frame locks the opening on a composition you already approved, so the model animates a frame you chose instead of inventing one. Pass the identity sheet alongside it as a reference.
241
+
242
+ **The one exception** is a shot whose first frame must not exist yet — a reveal, an assembly, anything resolving *into* the plate. There, pass the plate as a reference only.
243
+
244
+ ⚠️ **Re-read the plate before writing its prompt.** A prompt describing a camera resting on a counter, against a plate that is plainly a held selfie, is a contradiction the model resolves badly.
245
+
246
+ ### 🚨 Eyeline decides whether a beat lip-syncs or becomes voiceover
247
+
248
+ **A character not addressing the lens reads as B-roll, and the model lays the voice over silent footage.** This is not a frame-size problem — the identical shot lip-syncs correctly once the eyeline is locked.
249
+
250
+ **Write where her eyes ARE for the whole duration:** *"her eyes are locked on the lens for the entire shot and she talks straight into it."*
251
+
252
+ ⚠️ **A brief exception becomes the whole shot.** *"Glances at her feet once and back up"* produces five seconds of staring at her feet. *"Never looks down at her hand"* produces her looking down at her hand. The model takes the vivid clause and runs the beat on it. State the eyeline as the dominant instruction and add exceptions only if you must.
253
+
254
+ Mixed voiceover and on-camera is a legitimate choice in this format. It has to be chosen, not discovered.
255
+
256
+ ### 🚨 Name the rig, THEN the operator's body
257
+
258
+ **"Single continuous handheld shot" tells the model what the camera IS. The operator's body tells it what the camera DOES.** Ship one without the other and it renders its default: a smooth slow push with almost no shake.
259
+
260
+ **Write a person's body, never a camera path.** Not *"the camera drifts along the tailgate"* but *"the phone is lying flat on the tailgate metal, held loosely by a hand at the corner, so the frame sags to one side and gets nudged back level once."* Arrives, sags, overshoots, corrects, gets bumped, catches up. **And the world must register it** — a move nothing reacts to is a move nobody made.
261
+
262
+ **An unusual camera position is still handheld.** Inside a fridge, on a car roof, in the gutter — someone is holding the phone there. A locked-off version reads as a tripod and loses the whole register.
263
+
264
+ ### Micro-movement is directed, never assumed
265
+
266
+ Every beat carries an explicit list of small involuntary actions. A beat that only says what she says produces a mannequin talking.
267
+
268
+ > Small things: she blinks twice, her weight shifts onto one hip, a strand of hair slips forward over her shoulder, and the framing drifts and corrects the way a held phone does.
269
+
270
+ Others that work: a container tipping as she takes its weight · her shoulder rising as she reaches · her hand sliding along a handrail · picking dry skin off a lip · blowing hair out of the corner of her mouth.
271
+
272
+ 🚨 **Small involuntary business only — never a big physical action at the lens.** Directing her to climb onto something threw her whole body across a close frame and wrecked it. Re-rolled with nothing but a hair flip, a weight shift and two fingers tapping, it landed. **Small business reads as captured; a big action reads as staged, and at close framing it also destroys the composition.**
273
+
274
+ ⚠️ **When a re-roll must hold the plate's pose, say so as a prohibition:** *"She does not climb onto the truck, she does not sit down, and she does not lean any further toward the camera than she already is."* Pair it with *"the camera never travels and nothing in the shot jolts it."*
275
+
276
+ **For a physical feat, direct the struggle, not the event.** Something that gives way on contact reads as a trick; something that **resists for a beat and holds** before it gives reads as real — knuckles whitening, tendons standing out, the forearm tensing, the grip shaking.
277
+
278
+ ### Audio
279
+
280
+ **Always on.** "No music" means no score; it never meant no audio. Say what you want present — her lip-synced dialogue, the sound the action makes, footsteps, room tone — then close with **"No music. No score. No background track of any kind."**
281
+
282
+ Generating with audio disabled produces a mouth moving in silence and the roll is wasted.
283
+
284
+ ---
285
+
286
+ ## PHASE 6 — THE EDIT
287
+
288
+ Free, local, and where the ad is actually made. Trim dead air off a beat that ran slow. Drop a re-rolled beat over the original. Burn captions — all-caps, centred low, one or two words at a time, cut on the stressed syllable.
289
+
290
+ **A one-second overrun is an edit problem, not a re-roll.** Re-rolling a shot to fix a second of air is the expensive way round.
291
+
292
+ ### Verify by WATCHING, never by exit code or by sampling stills
293
+
294
+ A job that exits cleanly can still be a refusal with no file, and a landed take can still have a beat that never cut. **Check the file has an audio stream and the right dimensions, then look at a frame from each beat.**
295
+
296
+ ---
297
+
298
+ ## Anti-patterns
299
+
300
+ - **Don't** write cinematic. Polish is the tell.
301
+ - **Don't** put quality words in a prompt. Spend it on imperfections.
302
+ - **Don't** combine scenes into one generation to save money. It costs more and returns less.
303
+ - **Don't** generate video without a plate behind it.
304
+ - **Don't** generate text overlays in an image. Captions happen in the edit.
305
+ - **Don't** rewrite a prompt after one content refusal. Re-roll it unchanged first.
306
+ - **Don't** describe the reference at the top of a prompt. Describe the photograph you want.
307
+ - **Don't** fire the next roll because the last one failed. Diagnose against this file first.