@slatesvideo/shared 0.7.2 → 0.7.3
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.
- package/dist/clients/cloud.d.ts +4 -0
- package/dist/clients/cloud.js +11 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/manual/content.d.ts +1 -1
- package/dist/manual/content.js +1 -1
- package/dist/operations/index.d.ts +12 -13
- package/dist/operations/index.js +158 -133
- package/dist/operations/surface.d.ts +6 -2
- package/dist/operations/surface.js +29 -5
- package/dist/prompts/agent-doctrine.d.ts +4 -4
- package/dist/prompts/agent-doctrine.js +17 -28
- package/dist/prompts/guide-discovery.d.ts +23 -0
- package/dist/prompts/guide-discovery.js +39 -0
- package/dist/prompts/guide-retrieval.js +1 -1
- package/dist/prompts/model-capabilities.d.ts +8 -9
- package/dist/prompts/model-capabilities.js +11 -51
- package/dist/prompts/model-facts.d.ts +2 -2
- package/dist/prompts/model-facts.js +15 -26
- package/dist/prompts/partials.generated.js +6 -3
- package/dist/prompts/prompting-tips.d.ts +1 -1
- package/dist/prompts/prompting-tips.js +21 -63
- package/dist/prompts/search-terms.d.ts +3 -0
- package/dist/prompts/search-terms.js +24 -0
- package/dist/skills/content.js +36 -37
- package/dist/skills/metadata.d.ts +7 -0
- package/dist/skills/metadata.js +29 -0
- package/exports/slates-chatgpt-images/generated/SKILL.md +7 -1
- package/exports/slates-chatgpt-images/generated/slates-chatgpt-images.skill +0 -0
- package/exports/slates-prompt-builder/generated/SKILL.md +28 -16
- package/exports/slates-prompt-builder/generated/reference-character.md +12 -13
- package/exports/slates-prompt-builder/generated/reference-content-policy.md +2 -2
- package/exports/slates-prompt-builder/generated/reference-gpt-image-2-5.md +191 -0
- package/exports/slates-prompt-builder/generated/reference-kling.md +32 -11
- package/exports/slates-prompt-builder/generated/reference-nano-banana.md +24 -6
- package/exports/slates-prompt-builder/generated/reference-omni-flash.md +65 -0
- package/exports/slates-prompt-builder/generated/reference-seedance-2-5.md +362 -0
- package/exports/slates-prompt-builder/generated/reference-seedance.md +34 -4
- package/exports/slates-prompt-builder/generated/slates-prompt-builder-manifest.json +77 -23
- package/exports/slates-prompt-builder/generated/slates-prompt-builder.skill +0 -0
- package/package.json +2 -1
- package/skills/_partials/blender-action-curves.md +24 -0
- package/skills/_partials/iteration-diagnosis.md +5 -0
- package/skills/_partials/model-routing.md +35 -0
- package/skills/_partials/seedance-25-timestamps.md +2 -2
- package/skills/_partials/still-gate.md +2 -2
- package/skills/_partials/thresholds.md +1 -1
- package/skills/slates-blocking-to-prompt.md +15 -13
- package/skills/slates-camera-language.md +45 -7
- package/skills/slates-character-identity.md +8 -6
- package/skills/slates-chatgpt-images.md +7 -1
- package/skills/slates-cinematic-look.md +1 -1
- package/skills/slates-content-policy.md +4 -6
- package/skills/slates-cost-discipline.md +18 -12
- package/skills/slates-dialogue-blocking.md +6 -6
- package/skills/slates-direct-response-ad.md +1 -1
- package/skills/slates-edit-and-iterate.md +12 -4
- package/skills/slates-model-selection.md +82 -90
- package/skills/slates-one-prompt-film.md +1 -1
- package/skills/slates-previs-blocking.md +44 -13
- package/skills/slates-project-organization.md +2 -2
- package/skills/slates-prompting-elevenlabs.md +4 -4
- package/skills/slates-prompting-flux-2-max.md +2 -3
- package/skills/slates-prompting-gpt-image-2-5.md +2 -2
- package/skills/slates-prompting-inworld-tts.md +174 -174
- package/skills/slates-prompting-kling-v3.md +11 -9
- package/skills/slates-prompting-lip-sync.md +15 -15
- package/skills/slates-prompting-ltx-2-5.md +5 -6
- package/skills/slates-prompting-minimax-h3.md +11 -11
- package/skills/slates-prompting-motion-transfer.md +8 -8
- package/skills/slates-prompting-nano-banana-2.md +8 -4
- package/skills/slates-prompting-omni-flash.md +9 -9
- package/skills/slates-prompting-seed-audio.md +24 -4
- package/skills/slates-prompting-seedance-2-5.md +40 -30
- package/skills/slates-prompting-seedance.md +4 -4
- package/skills/slates-prompting-seedream-5-lite.md +6 -6
- package/skills/slates-restyle-from-blocking.md +2 -2
- package/skills/slates-script-craft.md +1 -1
- package/skills/slates-shot-variety.md +1 -1
- package/skills/slates-storyboard-from-script.md +1 -1
- package/skills/slates-style-prompting.md +56 -54
- package/skills/slates-ugc-influencer-ad.md +1 -1
- package/skills/slates-vision-feedback-loop.md +118 -110
- package/skills/slates-prompting-veo-3.md +0 -224
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: slates-prompting-seedance-2-5
|
|
3
|
-
description:
|
|
3
|
+
description: "Prompt Seedance 2.5 generation (seedance-2.5) or edits (seedance-2.5-edit). Covers whole-second timing, shared Seedance craft, reference inputs, task-classifier hazards and long-take spend."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Seedance 2.5 — prompting
|
|
@@ -18,15 +18,15 @@ description: How to prompt Seedance 2.5 and Seedance 2.5 Edit. Read before calli
|
|
|
18
18
|
**Card — Seedance 2.5.** Shares 2.0's grammar exactly (subject binding, camera vocabulary, externalised emotion, inline constraints — read `slates-prompting-seedance` for those). Two things are different, and both matter.
|
|
19
19
|
|
|
20
20
|
**The five levers**
|
|
21
|
-
1. **Timestamps work here
|
|
22
|
-
2. **Length is the reason to be here
|
|
21
|
+
1. **Timestamps work here**: integer seconds, and the model acts on them: `[0s-4s] she reads the letter. [4s-9s] she folds it and looks up.` 2.0 ignores exactly this syntax.
|
|
22
|
+
2. **Length is the reason to be here**: takes up to 30 seconds, where 2.0 stops at 15. Write the beats as `[0s-6s]`, `[6s-12s]`, `[12s-18s]`; do not hope for them.
|
|
23
23
|
3. **Up to 30 image references**, and a multi-view image can serve as ONE subject reference (up to 5 subjects). 2.0 cannot do either.
|
|
24
24
|
4. **Audio-only references are accepted** without an image or video alongside — the only Seedance seat that takes one.
|
|
25
25
|
5. **Keep the 2.0 discipline**: one camera move per beat (`slow track right`, `handheld follow`), physical action instead of stated emotion, and quality asked for in the image-quality slot vocabulary — `rich details`, `natural colors`, `cinematic texture`, `soft lighting`.
|
|
26
26
|
|
|
27
27
|
**Examples**
|
|
28
|
-
- `[
|
|
29
|
-
- `[
|
|
28
|
+
- `[0s-6s] Wide shot, <Subject_1>@<Image_1> crosses an empty car park toward a idling van, slow track right. [6s-12s] Medium, she stops as the driver's window comes down. [12s-18s] Close-up, she looks off past the lens and does not answer. Rich details, natural colors. Keep it subtitle-free.`
|
|
29
|
+
- `[0s-10s] A single continuous handheld follow behind a courier climbing a fire escape, rain. [10s-20s] She reaches the landing, turns, and the city opens behind her. Cinematic texture, soft lighting.`
|
|
30
30
|
|
|
31
31
|
**Hard constraint:** it is the default AND the dearer seat, and it has NO 4K — 480p/720p/1080p only, dearer than 2.0 at every resolution they share. Long takes multiply cost linearly: quote a 30-second take before you fire it.
|
|
32
32
|
<!-- @card:end -->
|
|
@@ -38,7 +38,7 @@ description: How to prompt Seedance 2.5 and Seedance 2.5 Edit. Read before calli
|
|
|
38
38
|
estimate, and every submitted prompt is matched against it. Keep entries
|
|
39
39
|
backticked and prose outside the backticks. -->
|
|
40
40
|
<!-- /slates-only -->
|
|
41
|
-
**Never use** (2.5
|
|
41
|
+
**Never use** (with a reference video, 2.5 can reclassify the task and fail a fresh generation on these):
|
|
42
42
|
- `edit`, `extend`, `continue the video`, `same video but` — they make the provider read a fresh generation as an edit
|
|
43
43
|
- `f/1.4`, `Portra 400` and any other aperture or film-stock token, or a stacked list of gear — image-model vocabulary. The 2.5 guide's own example names one camera body and one 35 mm lens in a single style line, so a lone lens there is not on this list
|
|
44
44
|
<!-- @banned:end -->
|
|
@@ -64,7 +64,7 @@ So 2.5 does not replace 2.0; it sits beside it, and you pay for what it buys:
|
|
|
64
64
|
| Resolution | 480p / 720p / 1080p / **native 4K** | 480p / 720p / 1080p — **no 4K** |
|
|
65
65
|
| Price at 720p (faceless) | **$0.15/s** | $0.231/s |
|
|
66
66
|
| Length | 4–15s | **4–30s in one take** |
|
|
67
|
-
| Reference budget |
|
|
67
|
+
| Reference budget | 12 files total (9 image / 3 video / 3 audio caps) | **50 (30 image + 10 video + 10 audio)** |
|
|
68
68
|
| Combined reference video/audio | ≤15s | **≤30s** |
|
|
69
69
|
| Audio-only reference | ✗ (needs an image or video alongside) | **✓** |
|
|
70
70
|
| **Timestamps in the prompt** | **✗ — ignored; shot numbers only** | **✓ — integer seconds, acted on** |
|
|
@@ -94,19 +94,19 @@ The trigger words are ordinary English:
|
|
|
94
94
|
| **video edit** | `edit video` · `add` · `insert` · `remove` · `delete` · `modify` · `replace` · `change to` |
|
|
95
95
|
| **video extend** | `extend forward` · `extend backward` · `continue` · `continue from` · `extend the story` |
|
|
96
96
|
|
|
97
|
-
So a perfectly legitimate reference
|
|
97
|
+
So a perfectly legitimate prompt with a reference video, *"a wide shot of the workshop, **remove** the
|
|
98
98
|
tripod from frame"* — gets classified as an edit and fails on constraints it never set.
|
|
99
99
|
|
|
100
100
|
**What to do:**
|
|
101
101
|
|
|
102
|
-
1. **If you mean to edit an existing clip,
|
|
103
|
-
|
|
104
|
-
|
|
102
|
+
1. **If you mean to edit an existing clip, choose its dedicated video-edit endpoint.** The
|
|
103
|
+
task-typed endpoint removes the classifier's ambiguity. <!-- slates-only -->In Slates, call
|
|
104
|
+
`slates_edit_video` with `model: 'seedance-2.5-edit'`.<!-- /slates-only -->
|
|
105
105
|
2. **If you mean a fresh shot, describe the finished frame rather than an instruction to change
|
|
106
106
|
one.** Not *"remove the tripod"* → *"the workshop bench, clear and uncluttered"*. Not
|
|
107
107
|
*"add rain"* → *"heavy rain falling through the streetlight"*. This is better prompting anyway:
|
|
108
108
|
the model renders what you describe, it does not take edits to an imagined draft.
|
|
109
|
-
3. The trigger
|
|
109
|
+
3. The trigger needs **a reference video plus edit or extend intent**. Image references alone do not trigger it. A plain text-to-video prompt is safe
|
|
110
110
|
however it is worded.
|
|
111
111
|
|
|
112
112
|
**Slates will warn you, and it will never rewrite your prompt.** When a 2.5 reference generation's
|
|
@@ -142,8 +142,10 @@ real-face route has spent 71% of their welcome grant on one clip; **on the real-
|
|
|
142
142
|
|
|
143
143
|
**Discipline:**
|
|
144
144
|
|
|
145
|
+
<!-- slates-only -->
|
|
145
146
|
- **Always quote with `slates_estimate_generation_cost` before a take over ~10 seconds,** and say
|
|
146
147
|
the number out loud before generating.
|
|
148
|
+
<!-- /slates-only -->
|
|
147
149
|
- **Find the shot at short LENGTH, not at low resolution.** Length is what moves the price, so cut
|
|
148
150
|
seconds while you are still exploring — 4–8s — and stay at the resolution you actually want.
|
|
149
151
|
**A 480p pass does not de-risk a 720p or 1080p render.** Generation is stochastic: the higher-
|
|
@@ -153,7 +155,7 @@ real-face route has spent 71% of their welcome grant on one clip; **on the real-
|
|
|
153
155
|
- **Length is a creative decision, not a default.** 30 seconds is available; it is rarely the right
|
|
154
156
|
answer for a single shot. Multi-shot storyboards inside one 30s generation are what the length is
|
|
155
157
|
actually for.
|
|
156
|
-
- Read `slates-cost-discipline` — all of it applies, more sharply here
|
|
158
|
+
<!-- slates-only -->- Read `slates-cost-discipline` — all of it applies, more sharply here.<!-- /slates-only -->
|
|
157
159
|
|
|
158
160
|
---
|
|
159
161
|
|
|
@@ -192,8 +194,8 @@ pacing you are happy to leave to the model, timestamps when a beat has to land a
|
|
|
192
194
|
from 4-6 seconds in Video 1, and leave the rest of the content unchanged."* Without a range, a
|
|
193
195
|
whole-clip instruction is applied to the whole clip.
|
|
194
196
|
|
|
195
|
-
Do **not** carry this back to 2.0, and do not
|
|
196
|
-
either — 2.0 ignores time entirely, and the cross-model syntax swap is its own known failure.
|
|
197
|
+
Do **not** carry this back to 2.0, and do not write `[00:00-00:02]` minute-second brackets (another
|
|
198
|
+
vendor's syntax) into either — 2.0 ignores time entirely, and the cross-model syntax swap is its own known failure.
|
|
197
199
|
<!-- @end:seedance-25-timestamps -->
|
|
198
200
|
|
|
199
201
|
---
|
|
@@ -235,7 +237,8 @@ billing dimension** on any Seedance route: audio is included.
|
|
|
235
237
|
### Video references
|
|
236
238
|
|
|
237
239
|
Up to 10 clips, ≤30s combined (2.0: 3 clips, ≤15s). A reference VIDEO switches the cost key to
|
|
238
|
-
`seedance-2.5*-vref-{res}-{T}s`, where **T = Σ input seconds + output seconds**
|
|
240
|
+
`seedance-2.5*-vref-{res}-{T}s`, where **T = Σ input seconds + output seconds** on faceless and real-face routes;
|
|
241
|
+
on the AI-face route, **T = max(Σ input seconds, output seconds) + output seconds** on both 2.0 and 2.5. The sum is across
|
|
239
242
|
**every** clip attached, not just the longest. Three 6-second references on a 12-second output bills
|
|
240
243
|
30 seconds, not 12 and not 18. Quote before confirming.
|
|
241
244
|
|
|
@@ -292,17 +295,22 @@ the citation, not a fallback — *"use her face and wardrobe from image 1, not i
|
|
|
292
295
|
background"* is a stronger instruction than naming the positive alone, because an unscoped reference
|
|
293
296
|
brings its whole frame with it.
|
|
294
297
|
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
is neither: **`@` is a reference-token sigil in the Slates prompt composer, and an unresolved one is
|
|
301
|
-
silently deleted from the prompt before it is sent.** Typing `@Image 1` here does not produce
|
|
302
|
-
`@Image 1`, it produces nothing. The bare form is confirmed working on both models. Never hand-type
|
|
303
|
-
the sigil.
|
|
298
|
+
**BytePlus documents disagree on reference sigils.** Its API tutorial says *"Use `@Image 1`,
|
|
299
|
+
`@Video 1`, and `@Audio 1`"*, while its 2.5 prompt guide uses the bare form
|
|
300
|
+
(`Image 1 / Video 1 / Audio 1`) in its normative sentence. Both are first-party sources; the
|
|
301
|
+
bare form is confirmed working on both Seedance models. Use the syntax accepted by the endpoint
|
|
302
|
+
you are calling, and preserve each asset's role and scope.
|
|
304
303
|
|
|
305
|
-
|
|
304
|
+
<!-- slates-only -->
|
|
305
|
+
The disagreement is recorded in
|
|
306
|
+
`second-brain/business/projects/slates/research/model-prompting-research.md`. Slates composes
|
|
307
|
+
resolved reference tokens for the chosen model and now preserves unresolved sigils verbatim.
|
|
308
|
+
The earlier composer silently deleted unresolved `@Image 1` tokens; that receipt explained the
|
|
309
|
+
old bare-form workaround, and the fix removes its blanket prohibition. Prefer actual bound
|
|
310
|
+
references when available so the composer supplies the canonical citation.
|
|
311
|
+
<!-- /slates-only -->
|
|
312
|
+
|
|
313
|
+
## Seedance 2.5 Edit (<!-- slates-only -->`slates_edit_video`, <!-- /slates-only -->`model: 'seedance-2.5-edit'`)
|
|
306
314
|
|
|
307
315
|
Its own picker row and its own op call, deliberately: the task type is **the model you chose**,
|
|
308
316
|
never something inferred from your sentence.
|
|
@@ -323,14 +331,14 @@ Kling O3 Edit is the one that takes element and style reference images.
|
|
|
323
331
|
will need more attempts.
|
|
324
332
|
- **The aspect ratio follows the source clip too.** No ratio control; the frame is the clip's frame.
|
|
325
333
|
- **480p, 720p or 1080p output**, native audio — and an edit bills the video-reference tier ×2,
|
|
326
|
-
so
|
|
334
|
+
so quote the 1080p edit before confirming.
|
|
327
335
|
- **Prompt and source clip only** on this op. The MODEL takes reference images on an edit
|
|
328
336
|
(ByteDance recommends 1–5 — *"replace the man in dark clothing in @Video 1 with @Image 2"*);
|
|
329
337
|
**Slates has not wired that path**, so today an edit that must lock an identity from a photo
|
|
330
338
|
goes to Kling O3 Edit. Constraint of our build, not of the model — worth revisiting.
|
|
331
|
-
- **An edit
|
|
332
|
-
charges an edit on input + output seconds
|
|
333
|
-
generation rate.
|
|
339
|
+
- **An edit costs about 1.2x a plain 2.5 generation of the same length**: every Seedance provider
|
|
340
|
+
charges an edit on input + output seconds, at the reduced video-reference rate. Read the confirm
|
|
341
|
+
gate's number; do not reason from the generation rate.
|
|
334
342
|
- **Set `seedanceFace: true` when a character's face is visible in the clip.** The faceless provider
|
|
335
343
|
blocks faces outright — this is not a price optimisation, it is whether the job runs at all.
|
|
336
344
|
- **There is no consented-real-face route for editing.** Real-person footage that the AI-face route
|
|
@@ -362,12 +370,14 @@ not a lip-sync job. Bill it like any other edit — on the source clip's length.
|
|
|
362
370
|
|
|
363
371
|
## Faces, and what does NOT change
|
|
364
372
|
|
|
373
|
+
<!-- slates-only -->
|
|
365
374
|
The three-tier face routing is identical to 2.0 — faceless → default route, an AI character's face →
|
|
366
375
|
`seedanceFace: true` (the relaxed provider, a real cost premium), a real person's photo → the
|
|
367
376
|
consent-gated real-person route after a `[REAL_FACE_DETECTED]` rejection, with `realFaceConsent: true`
|
|
368
377
|
set **only** after the user explicitly confirms they hold the rights to the likeness. The full rules,
|
|
369
378
|
including why the real-vs-AI call is the provider's and not yours, are in
|
|
370
379
|
`slates-prompting-seedance`.
|
|
380
|
+
<!-- /slates-only -->
|
|
371
381
|
|
|
372
382
|
Also unchanged, and worth restating because 2.5's length makes each one more expensive to get wrong:
|
|
373
383
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: slates-prompting-seedance
|
|
3
|
-
description:
|
|
3
|
+
description: "Prompt Seedance 2.0 (seedance-2), and retrieve the shared Seedance craft used by 2.5. Covers subject binding, shot-number storyboards, camera moves, physical action and inline constraints."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Seedance 2.0 — prompting
|
|
@@ -250,13 +250,13 @@ using the voice timbre from audio 1. Preserve his identity, appearance and outfi
|
|
|
250
250
|
|
|
251
251
|
### Motion transfer & lip-sync recipes (reference video / audio)
|
|
252
252
|
|
|
253
|
-
These aren't separate Seedance features
|
|
253
|
+
These aren't separate Seedance features; they're prompting strategies over reference media.<!-- slates-only --> Run `slates_generate_video` with the clip as a video reference and write the motion or dialogue into the prompt:<!-- /slates-only -->
|
|
254
254
|
|
|
255
255
|
- **Motion transfer:** subject image as a reference + the driving clip<!-- slates-only --> via `videoReferenceAssetId`<!-- /slates-only --> (2–15s) + `The character from image 1 performs the exact motion, choreography, and camera movement from video 1. Preserve the character's identity, appearance, and outfit.`
|
|
256
256
|
- **Lip-sync / dialogue:** write the line in the prompt — `The person in video 1 says: "…"` — with audio generation on (always on in Slates). A **video** source's own voice is cloned natively; an **audio** reference (≤15s) drives speech from an existing recording: `…speaks the dialogue from audio 1 with accurate lip sync.`
|
|
257
257
|
- **Voice + face from one clip (the talking-head recipe):** ONE unedited 2–15s clip of the person speaking (clear voice, no music, no cuts) as the video reference + prompt with the new script → their likeness AND voice deliver the new line.
|
|
258
258
|
<!-- slates-only -->
|
|
259
|
-
- **Billing:** a reference VIDEO switches the cost key to `seedance-2*-vref-{res}-{T}s` where T = clip seconds + output seconds
|
|
259
|
+
- **Billing:** a reference VIDEO switches the cost key to `seedance-2*-vref-{res}-{T}s` where T = combined clip seconds + output seconds on faceless and real-face routes. The AI-face route bills max(combined input, output) + output on both 2.0 and 2.5; quote before confirming. Audio references are free (audio is included on every route).
|
|
260
260
|
<!-- /slates-only -->
|
|
261
261
|
|
|
262
262
|
<!-- slates-only -->
|
|
@@ -266,7 +266,7 @@ Seedance routes through **three tiers** depending on the face in the reference,
|
|
|
266
266
|
|
|
267
267
|
- **Faceless / object / environment refs → default route (cheapest).** Leave `seedanceFace` off.
|
|
268
268
|
- **An AI-character's FACE in a reference → `seedanceFace: true`.** The default route's baseline moderation rejects or degrades faces, so this reroutes to the face-capable provider. It costs **~45% more** — the cost key becomes `seedance-2-face-{res}-{N}s`, so the pre-flight quote already reflects it. Announce the face-route price, not the faceless one.
|
|
269
|
-
- **A REAL person's photo (the user themselves, an actor) → the consent-gated real-person route.** If a `seedanceFace` gen fails with `[REAL_FACE_DETECTED]`, the provider classified the reference as a real person: confirm with the user that (a) they hold the rights/consent to the likeness and (b) they accept the higher price (cost key `seedance-2-realface-{res}-{N}s`,
|
|
269
|
+
- **A REAL person's photo (the user themselves, an actor) → the consent-gated real-person route.** If a `seedanceFace` gen fails with `[REAL_FACE_DETECTED]`, the provider classified the reference as a real person: confirm with the user that (a) they hold the rights/consent to the likeness and (b) they accept the higher price (cost key `seedance-2-realface-{res}-{N}s`, about 1.4× the AI-face rate, about 2× faceless; quote via `slates_estimate_generation_cost`), then retry with `seedanceRealFace: true` + `realFaceConsent: true`. Never set `realFaceConsent` without the user's explicit confirmation.
|
|
270
270
|
|
|
271
271
|
Rules:
|
|
272
272
|
- **The real-vs-AI call is the PROVIDER'S, not yours.** ByteDance's classifier is probabilistic — some real photos pass the standard face route (billed at the cheap rate; fine), others get rejected with `[REAL_FACE_DETECTED]` (auto-refunded). Don't preemptively route to the real-face tier just because a photo looks real; try `seedanceFace: true` first and escalate only on the marked rejection. Public figures / celebrities fail on every route.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: slates-prompting-seedream-5-lite
|
|
3
|
-
description:
|
|
3
|
+
description: "Prompt or edit images with Seedream 5 Lite (seedream-5-lite). Use with slates_generate_image or slates_edit_image on this model; covers attention order, focused descriptions, layout and quoted text."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Seedream 5 Lite — prompting
|
|
@@ -15,7 +15,7 @@ description: How to prompt Seedream 5 Lite (ByteDance image model — the cheap
|
|
|
15
15
|
Keep it under 2,400 characters (the build fails above that) and keep the
|
|
16
16
|
rationale, the receipts and the worked examples in the body below. -->
|
|
17
17
|
<!-- /slates-only -->
|
|
18
|
-
**Card — Seedream 5 Lite.** The cheap volume seat: flat-priced at every resolution, which makes it
|
|
18
|
+
**Card — Seedream 5 Lite.** The cheap volume seat: flat-priced at every resolution, which makes it useful for storyboard passes, variant grids and look-dev when volume is the requirement. Structure, most important first: `Subject + Style + Composition + Lighting/Atmosphere + Technical`.
|
|
19
19
|
|
|
20
20
|
**The five levers**
|
|
21
21
|
1. **Lead with the subject.** Earlier words weigh more; close with the camera and technical detail.
|
|
@@ -35,7 +35,7 @@ Bind references inline. A scene reference owns the grade; for a look-only refere
|
|
|
35
35
|
<!-- slates-only -->Use `slates-cinematic-look` with a technique ID or section query for more.<!-- /slates-only -->
|
|
36
36
|
<!-- @end:cinematic-card -->
|
|
37
37
|
|
|
38
|
-
**
|
|
38
|
+
**Selection:** it is a volume option. Re-render a keeper on another image model only when an observed shortfall or the delivery brief justifies it; use the current catalogue for that choice.
|
|
39
39
|
<!-- @card:end -->
|
|
40
40
|
|
|
41
41
|
<!-- @banned:start -->
|
|
@@ -54,7 +54,7 @@ Bind references inline. A scene reference owns the grade; for a look-only refere
|
|
|
54
54
|
- `Professional headshot of a female CEO, short blonde hair, confident expression, navy suit, neutral office background. Studio lighting, shallow depth of field, high-end corporate photography, shot on 85mm.`
|
|
55
55
|
- `A rain-soaked night market stall, cinematic, rule of thirds with the vendor camera-right, foreground steam blurred, moody low-key lighting with practical neon, shot on 35mm.`
|
|
56
56
|
|
|
57
|
-
ByteDance's Seedream image model, Lite tier, routed via fal.ai. In Slates: `slates_generate_image` with `model: seedream-5-lite` (REQUIRES projectId
|
|
57
|
+
ByteDance's Seedream image model, Lite tier, routed via fal.ai. In Slates: `slates_generate_image` with `model: seedream-5-lite` (REQUIRES projectId; no headless path). **Flat-priced regardless of resolution**, the cheapest flat-priced seat in Slates, which makes it a useful choice for high-volume drafting, storyboard exploration, and variant grids. Call `slates_estimate_generation_cost` for the current number; never quote prices from memory. Less censored than Nano Banana 2.
|
|
58
58
|
|
|
59
59
|
**When to pick it:** lots of frames cheap (storyboard passes, 3-4 variant exploration), posters/layouts with text, quick look-dev. Step up to NB2 or FLUX.2 Max for the locked hero shot.
|
|
60
60
|
|
|
@@ -101,7 +101,7 @@ Via `slates_edit_image` with `editModel: seedream-5-lite`. Seedream edits respon
|
|
|
101
101
|
Change the bag to brown leather. Keep the person's face, pose, and the room unchanged.
|
|
102
102
|
```
|
|
103
103
|
|
|
104
|
-
|
|
104
|
+
Seedream edits accept extra `referenceAssetIds` within the current edit-reference cap, with the source occupying the first image slot. Read the tool schema for the cap. An older desktop without that capability refuses the request: update the desktop rather than claiming the extra references were sent.
|
|
105
105
|
|
|
106
106
|
## Common failure modes + fixes
|
|
107
107
|
|
|
@@ -115,7 +115,7 @@ Note: Seedream edits in Slates ignore extra `referenceAssetIds` — that path is
|
|
|
115
115
|
|
|
116
116
|
## Iterate cheap, lock expensive
|
|
117
117
|
|
|
118
|
-
Flat pricing
|
|
118
|
+
Flat pricing supports iteration: draft, evaluate inline, diagnose one specific delta, then generate only within the authorized set. Repeated failures trigger diagnosis rather than unchanged re-rolls; only re-render the winning composition on another model when the delivery requires it. Cost rules live in `slates-cost-discipline` — the batch-authorization pattern applies when generating variant grids.
|
|
119
119
|
|
|
120
120
|
## Sources
|
|
121
121
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: slates-restyle-from-blocking
|
|
3
|
-
description:
|
|
3
|
+
description: "Generate different visual treatments from one blocking pass while preserving its camera, cuts and choreography. Use when comparing looks or restyling an approved structure without rebuilding it."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Restyle — one edit, many worlds
|
|
@@ -27,7 +27,7 @@ You need a blocking clip whose structure you are happy with, and a finished prom
|
|
|
27
27
|
Copy these across every style **verbatim**. Changing them is what desynchronises the outputs:
|
|
28
28
|
|
|
29
29
|
- The blocking reference's own contract — that it is the master for all movement, the placement-only clause, the tie-break clause, the disambiguation clause
|
|
30
|
-
- The shot count and
|
|
30
|
+
- The shot count and measured cut boundaries; translate prompt timestamps once to the chosen model's syntax and keep that translation across treatments
|
|
31
31
|
- Every shot's camera position, angle, framing and cut point
|
|
32
32
|
- Screen direction and seating
|
|
33
33
|
- The `HOLD FOR THE FULL TIMELINE` block
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: slates-script-craft
|
|
3
|
-
description: Write or revise script passages,
|
|
3
|
+
description: "Write or revise script passages, openings, bridges and saved variations while preserving voice, format and fixed material. Use for writing within a production brief or a writing-only request."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Script craft and variations
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: slates-shot-variety
|
|
3
|
-
description:
|
|
3
|
+
description: "Shape visual rhythm across a shot sequence or diagnose unintended sameness. Use while planning or reviewing cuts; preserve deliberate repetition, continuing performance and the chosen format."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Visual rhythm across a sequence
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: slates-storyboard-from-script
|
|
3
|
-
description:
|
|
3
|
+
description: "Save a supplied script or treatment as an editable Slates document and bind production passages to shots. Use when preparing a storyboard while preserving the words, structure and requested scope."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Script into editable production
|
|
@@ -1,54 +1,56 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: slates-style-prompting
|
|
3
|
-
description:
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Per-style prompting (photoreal · anime · painterly · 3d-render)
|
|
7
|
-
|
|
8
|
-
The style library (`slates_create_style` / the app's style ids) defines what each style IS. This guide is how to PROMPT each style per model. Derived from `research/style-prompting-research.md` (second-brain) — claims marked *(hypothesis)* are untested; don't present them to users as fact.
|
|
9
|
-
|
|
10
|
-
## The four ground rules (all styles)
|
|
11
|
-
|
|
12
|
-
1. **Assign references where they contribute.** Describe the scene with inline bindings, such as "the woman from image 1, lit and graded like image 2." Preserve an existing scene reference when its look should stay. A look-only reference may need light and exposure described for the new scene; prose and references can work together.
|
|
13
|
-
2. **Use each model’s language, without imposing a fixed prompt template:**
|
|
14
|
-
- **Nano Banana 2** — narrative prose; the style is the opening framing of the sentence ("A hand-drawn 2D anime cel illustration of…"), never a comma tag.
|
|
15
|
-
- **Seedance 2.0** — the 8-part formula reserves "visual style" (slot 6) and "image quality" (slot 7). One clause each. Don't scatter style words through the action text.
|
|
16
|
-
- **Kling V3** — prose scene direction; style rides the lighting/style tail of Scene → Subject → Action → Camera → Lighting/Style. Tag soup underperforms badly.
|
|
17
|
-
3. **Keep the intended look consistent across shots.** Reuse relevant references and stable descriptions, adapting the wording to each scene.
|
|
18
|
-
4. **A styled start frame is one video control.** Generate it with the image seat suited to the brief, then describe the motion. Preserve its look unless the user wants the light or grade to change.
|
|
19
|
-
|
|
20
|
-
Never stack style buzzwords ("ARRI ALEXA, 35mm, film grain, depth-of-field mastery…"). One or two register tokens maximum — piles of specs dull the image.
|
|
21
|
-
|
|
22
|
-
## Photoreal
|
|
23
|
-
|
|
24
|
-
- **NB2:** never the literal word "photorealistic". Describe *a real photograph*: natural skin texture and imperfection, motivated lighting, one lens/film register ("shot on a 50mm, soft window light"). Photographic composition terms: wide-angle / macro / low-angle.
|
|
25
|
-
- **Seedance:** put "sharp focus, natural color, high detail" in the image-quality slot and always include a lighting clause. Keep motion slow and coherent — fast/burst action is the #1 quality killer and reads most fake in photoreal.
|
|
26
|
-
- **Kling:** the photoreal-PEOPLE lane — convincing acting, dialogue, lip-sync. It breaks on close-up hands, fine fluids, and crowds beyond ~5 faces: route those beats to Seedance or reframe.
|
|
27
|
-
- **Faces on Seedance:** photoreal humans trigger the face-tier routing (AI face vs consented real face — see slates-prompting-seedance §Faces). Set the face flags honestly; never skip them to save credits.
|
|
28
|
-
|
|
29
|
-
## Anime
|
|
30
|
-
|
|
31
|
-
- **NB2:** open with the medium — "A hand-drawn 2D anime cel illustration of…" — then normal narrative Subject/Setting/Action. Clean line art, flat-shaded color, expressive eyes. NB2 has no negative prompt: phrase exclusions positively ("flat cel shading with uniform focus", not "no depth of field").
|
|
32
|
-
- **Seedance:** visual-style slot = "2D anime style, clean line art, flat cel shading". The slow/coherent-motion preference still applies — burst sakuga actions are the same instability trap as in photoreal.
|
|
33
|
-
- **Kling:** weakest anime lane (its strength is live-action-like acting); expect style drift on long prose-only shots. Prefer ground rule 4: NB2 anime start-frame → i2v with a motion-only prompt. *(hypothesis: refs hold Kling's anime better than prose — verify before promising.)*
|
|
34
|
-
- Anime faces drift under multiple references faster than photoreal
|
|
35
|
-
|
|
36
|
-
## Painterly
|
|
37
|
-
|
|
38
|
-
- **NB2:** medium + technique in the style framing: "digital concept-art painting, visible brushwork, painted edges". At most ONE school/era register ("classic gouache illustration") — a register, not an artist-name pile.
|
|
39
|
-
- **Video:** the least-supported style lane. Use ground rule 4 (painterly NB2 frame → i2v, motion-only prompt) and expect some cleanup of painterliness over the clip *(hypothesis — set user expectations, don't promise a perfectly painterly clip)*.
|
|
40
|
-
- Camera language still applies — painterly ≠ static; "slow push-in" works the same.
|
|
41
|
-
|
|
42
|
-
## 3D render
|
|
43
|
-
|
|
44
|
-
- **NB2:** name the lineage register in the style framing: "stylized 3D render, soft global illumination, subsurface skin". Lighting vocabulary (GI, rim light) is unusually load-bearing for the 3D read.
|
|
45
|
-
- **Seedance:** the physics/effects lane flatters 3D content — visual-style slot "stylized 3D animation", image-quality slot "clean render, high detail".
|
|
46
|
-
- **Kling:** same start-frame preference as anime.
|
|
47
|
-
- *(hypothesis)* An engine token ("Unreal Engine 5 render") may help NB2; if used, ONE token, style slot only — never on Seedance where spec-stuffing hurts.
|
|
48
|
-
|
|
49
|
-
## Routing recipe (what to actually do)
|
|
50
|
-
|
|
51
|
-
1. Style reference available →
|
|
52
|
-
2.
|
|
53
|
-
3.
|
|
54
|
-
4. Multi-shot run →
|
|
1
|
+
---
|
|
2
|
+
name: slates-style-prompting
|
|
3
|
+
description: "Translate a visual-style brief into model-specific image or video direction and maintain the look across shots. Covers photoreal, anime, painterly and 3D styles, references and optional start-frame control."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Per-style prompting (photoreal · anime · painterly · 3d-render)
|
|
7
|
+
|
|
8
|
+
The style library (`slates_create_style` / the app's style ids) defines what each style IS. This guide is how to PROMPT each style per model. Derived from `research/style-prompting-research.md` (second-brain) — claims marked *(hypothesis)* are untested; don't present them to users as fact.
|
|
9
|
+
|
|
10
|
+
## The four ground rules (all styles)
|
|
11
|
+
|
|
12
|
+
1. **Assign references where they contribute.** Describe the scene with inline bindings, such as "the woman from image 1, lit and graded like image 2." Preserve an existing scene reference when its look should stay. A look-only reference may need light and exposure described for the new scene; prose and references can work together.
|
|
13
|
+
2. **Use each model’s language, without imposing a fixed prompt template:**
|
|
14
|
+
- **Nano Banana 2** — narrative prose; the style is the opening framing of the sentence ("A hand-drawn 2D anime cel illustration of…"), never a comma tag.
|
|
15
|
+
- **Seedance 2.0** — the 8-part formula reserves "visual style" (slot 6) and "image quality" (slot 7). One clause each. Don't scatter style words through the action text.
|
|
16
|
+
- **Kling V3** — prose scene direction; style rides the lighting/style tail of Scene → Subject → Action → Camera → Lighting/Style. Tag soup underperforms badly.
|
|
17
|
+
3. **Keep the intended look consistent across shots.** Reuse relevant references and stable descriptions, adapting the wording to each scene.
|
|
18
|
+
4. **A styled start frame is one video control.** Generate it with the image seat suited to the brief, then describe the motion. Preserve its look unless the user wants the light or grade to change.
|
|
19
|
+
|
|
20
|
+
Never stack style buzzwords ("ARRI ALEXA, 35mm, film grain, depth-of-field mastery…"). One or two register tokens maximum — piles of specs dull the image.
|
|
21
|
+
|
|
22
|
+
## Photoreal
|
|
23
|
+
|
|
24
|
+
- **NB2:** never the literal word "photorealistic". Describe *a real photograph*: natural skin texture and imperfection, motivated lighting, one lens/film register ("shot on a 50mm, soft window light"). Photographic composition terms: wide-angle / macro / low-angle.
|
|
25
|
+
- **Seedance:** put "sharp focus, natural color, high detail" in the image-quality slot and always include a lighting clause. Keep motion slow and coherent — fast/burst action is the #1 quality killer and reads most fake in photoreal.
|
|
26
|
+
- **Kling:** the photoreal-PEOPLE lane — convincing acting, dialogue, lip-sync. It breaks on close-up hands, fine fluids, and crowds beyond ~5 faces: route those beats to Seedance or reframe.
|
|
27
|
+
- **Faces on Seedance:** photoreal humans trigger the face-tier routing (AI face vs consented real face — see slates-prompting-seedance §Faces). Set the face flags honestly; never skip them to save credits.
|
|
28
|
+
|
|
29
|
+
## Anime
|
|
30
|
+
|
|
31
|
+
- **NB2:** open with the medium — "A hand-drawn 2D anime cel illustration of…" — then normal narrative Subject/Setting/Action. Clean line art, flat-shaded color, expressive eyes. NB2 has no negative prompt: phrase exclusions positively ("flat cel shading with uniform focus", not "no depth of field").
|
|
32
|
+
- **Seedance:** visual-style slot = "2D anime style, clean line art, flat cel shading". The slow/coherent-motion preference still applies — burst sakuga actions are the same instability trap as in photoreal.
|
|
33
|
+
- **Kling:** weakest anime lane (its strength is live-action-like acting); expect style drift on long prose-only shots. Prefer ground rule 4: NB2 anime start-frame → i2v with a motion-only prompt. *(hypothesis: refs hold Kling's anime better than prose — verify before promising.)*
|
|
34
|
+
- Anime faces drift under multiple references faster than photoreal; the named-entity one-sheet doctrine applies unchanged.
|
|
35
|
+
|
|
36
|
+
## Painterly
|
|
37
|
+
|
|
38
|
+
- **NB2:** medium + technique in the style framing: "digital concept-art painting, visible brushwork, painted edges". At most ONE school/era register ("classic gouache illustration") — a register, not an artist-name pile.
|
|
39
|
+
- **Video:** the least-supported style lane. Use ground rule 4 (painterly NB2 frame → i2v, motion-only prompt) and expect some cleanup of painterliness over the clip *(hypothesis — set user expectations, don't promise a perfectly painterly clip)*.
|
|
40
|
+
- Camera language still applies — painterly ≠ static; "slow push-in" works the same.
|
|
41
|
+
|
|
42
|
+
## 3D render
|
|
43
|
+
|
|
44
|
+
- **NB2:** name the lineage register in the style framing: "stylized 3D render, soft global illumination, subsurface skin". Lighting vocabulary (GI, rim light) is unusually load-bearing for the 3D read.
|
|
45
|
+
- **Seedance:** the physics/effects lane flatters 3D content — visual-style slot "stylized 3D animation", image-quality slot "clean render, high detail".
|
|
46
|
+
- **Kling:** same start-frame preference as anime.
|
|
47
|
+
- *(hypothesis)* An engine token ("Unreal Engine 5 render") may help NB2; if used, ONE token, style slot only — never on Seedance where spec-stuffing hurts.
|
|
48
|
+
|
|
49
|
+
## Routing recipe (what to actually do)
|
|
50
|
+
|
|
51
|
+
1. Style reference available → inspect it, bind its look role, and describe any light or exposure needed in the new scene.
|
|
52
|
+
2. Image request → use the current image default unless the brief supplies a reason for another seat; load that model's craft. The NB2 examples above apply when NB2 is selected, not to every image model.
|
|
53
|
+
3. Video request → choose a styled start frame when composition, exact text or an approved look must hold. Use the image seat suited to that job, then the chosen video model's motion and sound grammar. Direct styled text-to-video is also valid when it serves the brief; an image pass is not mandatory.
|
|
54
|
+
4. Multi-shot run → retain stable style references and descriptors, adapting action, light and model-specific wording to each scene.
|
|
55
|
+
|
|
56
|
+
`slates-model-selection` and the current catalogue own routing. These style techniques supply craft after the production choice; no user needs to select a skill or workflow.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: slates-ugc-influencer-ad
|
|
3
|
-
description: Direct a creator-style spoken
|
|
3
|
+
description: "Direct a creator-style spoken ad when the brief calls for a camera-facing person or exchange. Covers activity, performance, phone-camera handling, speech, interaction and sound."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Creator-style performance
|