@milenyumai/film-kit 2.2.1 → 2.3.1

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.
Files changed (55) hide show
  1. package/README.md +69 -17
  2. package/build/index.d.ts +1 -1
  3. package/build/lib/cli.js +2 -2
  4. package/build/lib/film-kit.js +6 -4
  5. package/build/lib/storyboard-reference/adapters/kling30.js +3 -1
  6. package/build/lib/storyboard-reference/adapters/seedance20.d.ts +4 -0
  7. package/build/lib/storyboard-reference/adapters/seedance20.js +77 -14
  8. package/build/lib/storyboard-reference/adapters/veo31.js +3 -1
  9. package/build/lib/storyboard-reference/index.d.ts +1 -1
  10. package/build/lib/storyboard-reference/output-writer.js +84 -6
  11. package/build/lib/storyboard-reference/prompt-bundle-builder.js +311 -8
  12. package/build/lib/storyboard-reference/request-normalizer.js +8 -4
  13. package/build/lib/storyboard-reference/storyboard-interpreter.d.ts +3 -1
  14. package/build/lib/storyboard-reference/storyboard-interpreter.js +21 -1
  15. package/build/lib/storyboard-reference/types.d.ts +151 -2
  16. package/build/lib/storyboard-reference/validators.js +2 -5
  17. package/build/lib/templates.js +10 -6
  18. package/content/ARCHITECTURE.md +4 -4
  19. package/content/MASTER.md +2 -2
  20. package/content/RULES.md +4 -4
  21. package/content/agents/prompt-engineer.md +7 -7
  22. package/content/skills/prompt-structure/SKILL.md +14 -11
  23. package/content/skills/reference-locking/SKILL.md +6 -4
  24. package/content/skills/semantic-consistency/SKILL.md +1 -1
  25. package/content/skills/storyboard-reference/SKILL.md +58 -13
  26. package/content/workflows/generate-storyboard.md +37 -16
  27. package/content/workflows/generate.md +7 -7
  28. package/content/workflows/safety-check.md +2 -2
  29. package/package.json +1 -1
  30. package/packages/gpt-image-smart/content/skills/storyboard-reference/SKILL.md +108 -12
  31. package/packages/gpt-image-smart/content/workflows/generate-storyboard.md +89 -12
  32. package/packages/hybrid/content/skills/storyboard-reference/SKILL.md +108 -12
  33. package/packages/hybrid/content/workflows/generate-storyboard.md +89 -12
  34. package/packages/hybrid-smart/content/skills/storyboard-reference/SKILL.md +108 -12
  35. package/packages/hybrid-smart/content/workflows/generate-storyboard.md +89 -12
  36. package/packages/multi/build/cli.js +39 -0
  37. package/packages/multi/build/index.d.ts +1 -1
  38. package/packages/multi/build/lib/configure.js +208 -1
  39. package/packages/multi/build/lib/defaults.d.ts +3 -1
  40. package/packages/multi/build/lib/defaults.js +32 -0
  41. package/packages/multi/build/lib/templates.js +146 -60
  42. package/packages/multi/build/lib/types.d.ts +16 -0
  43. package/packages/multi/content/agents/continuity-editor.md +6 -6
  44. package/packages/multi/content/agents/delivery-editor.md +2 -2
  45. package/packages/multi/content/agents/lead-director.md +18 -10
  46. package/packages/multi/content/agents/semantic-auditor.md +4 -5
  47. package/packages/multi/content/agents/shot-generator.md +9 -27
  48. package/packages/multi/content/skills/storyboard-reference/SKILL.md +108 -12
  49. package/packages/multi/content/workflows/chain-multi.md +4 -4
  50. package/packages/multi/content/workflows/generate-multi.md +6 -6
  51. package/packages/multi/content/workflows/generate-storyboard.md +89 -12
  52. package/packages/multi/content/workflows/generate-teammate.md +8 -14
  53. package/packages/multi/content/workflows/safety-check-multi.md +7 -11
  54. package/packages/studio/content/skills/storyboard-reference/SKILL.md +108 -12
  55. package/packages/studio/content/workflows/generate-storyboard.md +89 -12
@@ -29,9 +29,6 @@ export function validateResolvedAssetRoles(assets) {
29
29
  if (assets.characters.length === 0) {
30
30
  issues.push("Missing character identity reference.");
31
31
  }
32
- if (assets.storyboards.length === 0) {
33
- issues.push("Missing storyboard planning reference.");
34
- }
35
32
  for (const character of assets.characters) {
36
33
  if (character.asset.role !== "character_identity") {
37
34
  issues.push(`${character.token} must use role character_identity.`);
@@ -71,10 +68,10 @@ export function validatePromptBundle(bundle, assets) {
71
68
  .flatMap(output => output?.qa.issues ?? []);
72
69
  const checks = {
73
70
  hasCharacterReference: assets.characters.length >= 1,
74
- hasStoryboardReference: assets.storyboards.length >= 1,
71
+ hasStoryboardReference: assets.storyboards.length >= 1 || Boolean(bundle.storyboardImagePrompt),
75
72
  hasAvoidLineEverywhere: Object.values(bundle.modelPrompts).every(output => Boolean(output?.qa.checks.hasAvoidLine ?? output?.qa.checks.hasAvoidOrNegative)),
76
73
  modelGrammarPasses: Object.values(bundle.modelPrompts).every(output => output?.qa.verdict === "pass"),
77
- storyboardDoesNotOverrideIdentity: Object.values(bundle.modelPrompts).every(output => /storyboard.*staging|storyboard.*planning|storyboard.*composition|Storyboard @image2 controls staging/i.test(output?.promptText ?? "")),
74
+ storyboardDoesNotOverrideIdentity: Object.values(bundle.modelPrompts).every(output => /storyboard.*staging|storyboard.*planning|storyboard.*composition|storyboard.*only/i.test(output?.promptText ?? "")),
78
75
  audioPlanPresent: Object.values(bundle.modelPrompts).every(output => Boolean(output?.audioPlan))
79
76
  };
80
77
  const failedChecks = Object.entries(checks)
@@ -14,14 +14,15 @@ function buildSeedanceProfile(active) {
14
14
  ### Capability Mindset
15
15
  Seedance 2.0 is strongest when prompting treats the model as a **multimodal shot compositor**:
16
16
  - image + video + audio + text can be combined in one request
17
- - reference assets are assigned explicit roles with \`@image1\`, \`@video1\`, \`@audio1\`
17
+ - reference assets are assigned explicit roles with provider tokens such as \`@Image1\`, \`@Image2\`, \`@video1\`, \`@audio1\`
18
+ - legacy lowercase aliases \`@image1\` and \`@image2\` may appear in older Film-Kit notes; bind them to \`@Image1\` and \`@Image2\`
18
19
  - prompt language should describe **what each reference controls**, not dump adjectives
19
20
 
20
21
  ### Core Prompt Grammar
21
- - Use reference roles explicitly: \`Use @image1 as the first frame\`, \`reference camera movement from @video1\`, \`background music references @audio1\`
22
+ - Use reference roles explicitly: \`Use @Image1 as the first frame\`, \`reference camera movement from @video1\`, \`background music references @audio1\`
22
23
  - For long clips (10s+), segment time directly in prompt: \`0-3s: ... / 3-6s: ... / 6-10s: ...\`
23
24
  - Write visible action and emotion concretely: gestures, gaze shifts, breathing, mouth tension, hand behavior
24
- - If the clip must remain unbroken, end the instruction with: \`No scene cuts throughout, one continuous shot.\`
25
+ - If the clip must remain unbroken, end the instruction with: \`No scene cuts throughout, one continuous shot.\`; do not apply that line to planned multi-phase storyboard cuts
25
26
  - For extensions, state the new generated length, not cumulative duration
26
27
 
27
28
  ### Reference Binding Strategy
@@ -36,6 +37,9 @@ Seedance 2.0 is strongest when prompting treats the model as a **multimodal shot
36
37
  - Use one continuous shot language when moving through multiple spaces without cuts
37
38
  - Speed changes should be explicit: build from calm to fast rather than saying "dynamic"
38
39
  - If a shot spans several phases, prefer timeline segments over vague "then many things happen" language
40
+ - Storyboard phase budget: 4-6s uses 1-2 phases, 7-10s uses 2-3 phases, 11-15s uses at most 4 phases; split 5+ meaningful phases into separate SHOTNN.md files
41
+ - Storyboard role separation: \`@Image1\` / \`@image1\` locks identity, face, body proportions, wardrobe, accessories, and visible props; \`@Image2\` / \`@image2\` controls composition, blocking, camera direction, timing, and action rhythm only
42
+ - Storyboard text, panel borders, watermark, logo, and alternate character designs are never identity sources
39
43
 
40
44
  ### Video Extension Rules
41
45
  - Extension syntax should start from the existing clip: \`Extend @video1 by 5s\`
@@ -51,7 +55,7 @@ Seedance 2.0 is strongest when prompting treats the model as a **multimodal shot
51
55
 
52
56
  ### Failure Recovery
53
57
  - Camera motion not matching reference: say \`completely reference all camera movement effects from @video1\`
54
- - Character drift: add \`maintain character appearance exactly consistent with @image1\` and provide multi-angle stills
58
+ - Character drift: add \`maintain character appearance exactly consistent with @Image1\` and provide multi-angle stills
55
59
  - Extension seam feels wrong: start the extension prompt from the original last-frame state before new action
56
60
  - Emotional acting feels flat: replace abstract mood labels with visible facial and body behavior
57
61
 
@@ -68,7 +72,7 @@ Seedance 2.0 is strongest when prompting treats the model as a **multimodal shot
68
72
 
69
73
  **Template A — Multimodal Continuous Shot**
70
74
  \`\`\`
71
- Use @image1 as the first frame. Reference camera movement from @video1 and background atmosphere from @audio1.
75
+ Use @Image1 as the first frame. Reference camera movement from @video1 and background atmosphere from @audio1.
72
76
  Subjective forward-moving tracking shot through location A, then into location B, then arriving at location C.
73
77
  0-3s: establish the subject and moving camera path.
74
78
  3-6s: escalate the action with one clear environmental change.
@@ -78,7 +82,7 @@ No scene cuts throughout, one continuous shot.
78
82
 
79
83
  **Template B — Precise Performance Beat**
80
84
  \`\`\`
81
- Maintain character appearance exactly consistent with @image1.
85
+ Maintain character appearance exactly consistent with @Image1.
82
86
  0-2s: eyes shift left, breath shortens, fingers tighten on the prop.
83
87
  2-4s: camera pushes closer while the character turns and delivers the line in a restrained voice.
84
88
  4-6s: expression softens, shoulders drop, the background returns to calm.
@@ -27,7 +27,7 @@ Modular system consisting of:
27
27
  ├── skills/
28
28
  │ ├── safety-compliance/ # Platform safety & celebrity ban
29
29
  │ ├── reference-locking/ # Reference image system
30
- │ ├── storyboard-reference/ # Character ref + storyboard ref prompt bundles
30
+ │ ├── storyboard-reference/ # Character sheet + generated storyboard prompt bundles
31
31
  │ ├── frame-chaining/ # Shot continuity protocol
32
32
  │ ├── coverage-system/ # Mandatory coverage shots (NEW)
33
33
  │ ├── spatial-blocking/ # Eyeline, depth, scale, compositing realism
@@ -60,7 +60,7 @@ Modular system consisting of:
60
60
  |-------|-------------|
61
61
  | `safety-compliance` | **Platform safety**, celebrity name prohibition, AUTO-ANONYMOUS (otomatik anonimleştirme), AUTO-SAFETY, safe framing, content restrictions |
62
62
  | `reference-locking` | **Reference image enforcement**, EXACTLY language, repeat protocol |
63
- | `storyboard-reference` | **Character reference + storyboard reference mode**, role separation, phase cap, model-aware prompt bundles |
63
+ | `storyboard-reference` | **Character reference sheet + generated storyboard mode**, role separation, phase cap, model-aware prompt bundles |
64
64
  | `frame-chaining` | **Shot continuity**, last frame → first frame chaining, scene transition protocol (fade, dissolve, match cut) |
65
65
  | `coverage-system` | **Mandatory coverage shots** (Reaction, OTS, Insert, Cutaway, ECU, Wide) + L-cut/J-cut + 30° kuralı + **180° kuralı** + eyeline match + matching action + multi-character blocking |
66
66
  | `spatial-blocking` | **Relational realism**: eyeline targeting, plane mapping, body orientation, shared lighting, depth/scale integration, anti-cutout / anti-miniature cues |
@@ -76,7 +76,7 @@ Modular system consisting of:
76
76
  | Command | Description |
77
77
  |---------|-------------|
78
78
  | `/generate` | Generate shots and SAVE TO FILES |
79
- | `/generate-storyboard` | Generate storyboard-reference model prompt bundles without start/end frame generation |
79
+ | `/generate-storyboard` | Generate character sheet prompts, per-shot storyboard prompts, and storyboard-reference model prompt bundles without start/end frame generation |
80
80
  | `/chain` | Continue from last shot file |
81
81
  | `/safety-check` | Validate prompts before delivery |
82
82
  | `/recover` | Recover failed safety/delivery gates |
@@ -95,7 +95,7 @@ User Scenario → Agent Activated → Read model-profile → Load Required Skill
95
95
 
96
96
  safety-compliance (ALWAYS)
97
97
  reference-locking (if refs provided)
98
- storyboard-reference (if character ref + storyboard ref mode)
98
+ storyboard-reference (if character ref + brief mode)
99
99
  frame-chaining (ALWAYS)
100
100
  spatial-blocking (when gaze/depth/scale realism matters)
101
101
  semantic-consistency (ALWAYS - visual_world + physics gate)
package/content/MASTER.md CHANGED
@@ -24,7 +24,7 @@ Scenario Received → Check for elements:
24
24
 
25
25
  ├── Celebrity/Public Figure mentioned? → READ safety-compliance/SKILL.md
26
26
  ├── Reference images provided? → READ reference-locking/SKILL.md
27
- ├── Character ref + storyboard ref + brief? → READ storyboard-reference/SKILL.md
27
+ ├── Character ref + brief, optional storyboard guide? → READ storyboard-reference/SKILL.md
28
28
  ├── Multiple shots? → READ frame-chaining/SKILL.md (ALWAYS)
29
29
  ├── Multi-subject / gaze / depth realism? → READ spatial-blocking/SKILL.md
30
30
  ├── ALWAYS READ → semantic-consistency/SKILL.md (visual_world + semantic QA)
@@ -44,7 +44,7 @@ Scenario Received → Check for elements:
44
44
  | **BATCH** | "3 sahne", "5 shots" | Generate N shots sequentially |
45
45
  | **CHAIN CONTINUE** | "devam et", "continue" | Use previous END frame as START |
46
46
  | **CHAIN BREAK** | New location/time/character | Declare CHAIN BREAK, new START |
47
- | **STORYBOARD REFERENCE** | character reference + storyboard reference + brief | Use `/generate-storyboard`; produce model-aware prompt bundles without start/end frames |
47
+ | **STORYBOARD REFERENCE** | character reference + brief, optional storyboard guide | Use `/generate-storyboard`; produce character sheet prompts, per-shot storyboard prompts, and model-aware prompt bundles without start/end frames |
48
48
  | **SAFETY CHECK** | /safety-check | Validate all prompts before delivery |
49
49
 
50
50
  ---
package/content/RULES.md CHANGED
@@ -23,7 +23,7 @@ Film/Video request detected → Activate prompt-engineer agent
23
23
  ├── model-profile (ALWAYS FIRST)
24
24
  ├── safety-compliance (ALWAYS)
25
25
  ├── reference-locking (if refs provided)
26
- ├── storyboard-reference (if character ref + storyboard ref + brief)
26
+ ├── storyboard-reference (if character ref + brief, optional storyboard guide)
27
27
  ├── frame-chaining (ALWAYS for multi-shot)
28
28
  ├── semantic-consistency (ALWAYS for visual_world + physics)
29
29
  ├── coverage-system (ALWAYS - mandatory)
@@ -38,7 +38,7 @@ Film/Video request detected → Activate prompt-engineer agent
38
38
  |-------|------|--------------|
39
39
  | Safety & Celebrity Ban | `.agent/skills/safety-compliance/SKILL.md` | ALWAYS |
40
40
  | Reference Locking | `.agent/skills/reference-locking/SKILL.md` | When refs provided |
41
- | Storyboard Reference | `.agent/skills/storyboard-reference/SKILL.md` | Character ref + storyboard ref + brief |
41
+ | Storyboard Reference | `.agent/skills/storyboard-reference/SKILL.md` | Character ref + brief, optional storyboard guide |
42
42
  | Frame Chaining | `.agent/skills/frame-chaining/SKILL.md` | Multi-shot projects |
43
43
  | Semantic Consistency | `.agent/skills/semantic-consistency/SKILL.md` | ALWAYS |
44
44
  | Coverage System | `.agent/skills/coverage-system/SKILL.md` | ALWAYS (mandatory) |
@@ -55,7 +55,7 @@ Film/Video request detected → Activate prompt-engineer agent
55
55
  | **Film/Video prompt** | "sahne", "shot", "scene", "film" | Activate prompt-engineer |
56
56
  | **Single shot** | "bir sahne", "one shot" | Generate 1 shot |
57
57
  | **Batch generation** | "3 shot", "5 sahne" | Generate N shots |
58
- | **Storyboard-reference** | character ref + storyboard ref + brief, `/generate-storyboard` | Generate model-aware prompt bundles without start/end frames |
58
+ | **Storyboard-reference** | character ref + brief, optional storyboard guide, `/generate-storyboard` | Generate character sheet prompts, shot storyboard prompts, and model-aware prompt bundles without start/end frames |
59
59
  | **Continue** | "devam et", "continue" | Chain from previous |
60
60
  | **Safety check** | /safety-check | Validate prompts |
61
61
  | **Recover** | /recover | Recover failed safety/delivery gates |
@@ -105,7 +105,7 @@ When references provided:
105
105
 
106
106
  ### Storyboard Reference Mode
107
107
 
108
- When the user provides a character reference image, storyboard reference image, and brief, treat `@character1` as identity lock and `@storyboard1` as staging/camera/timing plan only. Do not generate or require start/end frames in this mode. Do not let storyboard character design override the character reference. If the storyboard has 5+ distinct phases, split into multiple `SHOTNN.md` files.
108
+ When the user provides a character reference image and brief, generate one 16:9 GPT Image 2 character sheet prompt per character first, then one GPT Image 2 storyboard prompt per shot. Character sheets lock identity; generated shot storyboards control staging/camera/timing only. Optional `@storyboard1` guide images are staging references only. Do not require start/end frames in this mode. If a shot needs 5+ distinct phases, split into multiple `SHOTNN.md` files.
109
109
 
110
110
  ### 🎬 Pacing Rules (SLOW BURN)
111
111
 
@@ -30,7 +30,7 @@ You are a senior Technical Prompt Engineer specialized in model-aware cinematic
30
30
  1. **Generate technically precise, copyable shot files**
31
31
  2. **ENFORCE mandatory frame chaining for seamless visual continuity (CRITICAL)**
32
32
  3. **LOCK all characters/objects to user-provided reference images (CRITICAL)**
33
- 4. **Support storyboard-reference mode:** character ref locks identity, storyboard ref controls staging/camera/timing only
33
+ 4. **Support storyboard-reference mode:** generated character sheets lock identity, generated shot storyboards control staging/camera/timing only
34
34
  5. **Maintain visual/audio continuity across all shots**
35
35
  6. **AUTO-ANONYMOUS:** Visual prompts and non-dialogue fields must stay anonymous
36
36
  7. **AUTO-SAFETY: Güvenlik filtrelerine takılacak içeriği proaktif reframe et**
@@ -70,7 +70,7 @@ Tercihiniz:"
70
70
  - "tek tek" / "1-1" → Generate ONLY 1 shot per response
71
71
  - "devam et" / "continue" → Use previously established batch size
72
72
  - User can change mid-project: "şimdi tek tek gidelim"
73
- - If the user explicitly asks `/generate-storyboard` or provides character ref + storyboard ref + brief, use storyboard-reference mode and infer/split panel phases instead of asking for start/end frames.
73
+ - If the user explicitly asks `/generate-storyboard` or provides character ref + brief, use storyboard-reference mode, generate character sheet prompts and per-shot storyboard prompts, and infer/split panel phases instead of asking for start/end frames.
74
74
 
75
75
  ---
76
76
 
@@ -109,7 +109,7 @@ Before any generation, read `.agent/model-profile.md` and follow the active mode
109
109
  Prompt describes **which source controls what**, then the action path:
110
110
 
111
111
  ```text
112
- 1. [Material roles] — "Use @image1 as first frame", "camera from @video1"
112
+ 1. [Material roles] — "Use @Image1 as first frame", "camera from @video1"
113
113
  2. [Identity lock] — what must remain exactly consistent
114
114
  3. [Continuous-shot rule] — no scene cuts unless intentionally segmented
115
115
  4. [Timeline] — short prose or explicit time ranges for meaningful phases
@@ -123,8 +123,8 @@ Prompt describes **which source controls what**, then the action path:
123
123
  | Rule | Detail |
124
124
  |------|--------|
125
125
  | **Reference separation** | Split identity, action, and camera sources when needed |
126
- | **First-frame anchor** | Use `Use @image1 as the first frame of the scene.` when relevant |
127
- | **Continuous shot** | Use `No scene cuts throughout, one continuous shot.` for uninterrupted beats |
126
+ | **First-frame anchor** | Use `Use @Image1 as the first frame of the scene.` when relevant; legacy `@image1` remains accepted |
127
+ | **Continuous shot** | Use `No scene cuts throughout, one continuous shot.` only for uninterrupted beats |
128
128
  | **Segmentation** | Use time ranges only for real editorial phases, not decorative micro-beats |
129
129
  | **Extension** | Continue source clips with `Extend @video1 by [N]s` |
130
130
 
@@ -182,7 +182,7 @@ First sentence carries the most weight. Every prompt MUST follow this order:
182
182
  7. [Avoid line] (EVERY prompt — MANDATORY)
183
183
  ```
184
184
 
185
- > **Seedance adaptation:** When model is seedance-2.0, start with material-role declarations (`@image1`, `@video1`, `@audio1`) and replace generic action prose with concrete continuity-aware performance/timeline direction.
185
+ > **Seedance adaptation:** When model is seedance-2.0, start with material-role declarations (`@Image1`/`@image1`, `@video1`, `@audio1`) and replace generic action prose with concrete continuity-aware performance/timeline direction.
186
186
  > **Kling adaptation:** When model is kling-3.0, replace step 3 (Action) with motion timeline (`first → then → finally`). Step 6 uses Kling tone markers instead of Audio Direction Block. See `.agent/model-profile.md` for golden prompt skeleton.
187
187
 
188
188
  ## VOICE DESIGN CONTRACT
@@ -289,7 +289,7 @@ Before outputting ANY shot:
289
289
  - [ ] Did each storyboard stage earn a distinct editorial job instead of representing micro-gestures?
290
290
 
291
291
  ### 4. Seedance-Specific Gates (when model is seedance-2.0)
292
- - [ ] Material roles are explicit when references exist? (`@image1`, `@video1`, `@audio1`)
292
+ - [ ] Material roles are explicit when references exist? (`@Image1`/`@image1`, `@video1`, `@audio1`)
293
293
  - [ ] Identity reference, action reference, and camera reference are separated when needed?
294
294
  - [ ] First-frame anchor is explicit when required?
295
295
  - [ ] Continuous-shot wording is explicit unless phased timing is intentional?
@@ -105,17 +105,19 @@ Avoid: distorted face, outfit drift, prop drift, lens drift, light-direction dri
105
105
  Before using any video template in this file:
106
106
  - Read `.agent/model-profile.md` and follow the active model contract.
107
107
  - If active model is **Kling 3.0**, do **not** default to the Veo-style `Audio direction:` bullet schema below.
108
- - If active model is **Seedance 2.0**, do **not** default to the Veo-style `Audio direction:` bullet schema below; use multimodal role assignment (`@image1`, `@video1`, `@audio1`) and timeline segmentation when needed.
109
- - If mode is **storyboard-reference**, do **not** assume first-frame or end-frame assets exist. Use character reference as identity lock and storyboard reference as composition/blocking/timing plan only.
108
+ - If active model is **Seedance 2.0**, do **not** default to the Veo-style `Audio direction:` bullet schema below; use multimodal role assignment (`@Image1`/`@image1`, `@video1`, `@audio1`) and timeline segmentation when needed.
109
+ - If mode is **storyboard-reference**, do **not** assume first-frame or end-frame assets exist. Generate character sheet prompts first, then generate one GPT Image 2 storyboard prompt per shot; character sheets are identity locks and generated shot storyboards are composition/blocking/timing plans only.
110
110
  - If project is a hybrid/smart-hybrid package, the local `.agent/skills/prompt-structure/SKILL.md` override takes precedence over this base file.
111
111
 
112
112
  ## Storyboard-Reference Video Prompt Structure
113
113
 
114
- Use this when the user provides a character reference image, storyboard reference image, and brief:
114
+ Use this when the user provides a character reference image and brief. An external storyboard guide is optional:
115
115
 
116
116
  ```text
117
- Use the character reference as the exact identity anchor.
118
- Use the storyboard reference as the visual planning reference for composition, blocking, camera angle, pacing, and action progression only.
117
+ Generate one 16:9 GPT Image 2 character sheet prompt per character: front, back, left profile, right profile, three-quarter full body, close-up face.
118
+ Generate one 16:9 GPT Image 2 storyboard prompt per shot, 160-240 words, with the duration-aware panel budget.
119
+ Use the generated character sheet as the exact identity anchor.
120
+ Use the generated shot storyboard as the visual planning reference for composition, blocking, camera angle, pacing, and action progression only.
119
121
  Do not copy storyboard text, labels, panel borders, watermarks, logos, or alternate character design.
120
122
 
121
123
  [Core intent from brief]
@@ -576,8 +578,8 @@ Seedance 2.0 responds best when prompt writing behaves like a **multimodal direc
576
578
  ### Material Role Patterns
577
579
 
578
580
  ```text
579
- Use @image1 as the first frame of the scene.
580
- Reference character appearance from @image1, but reference camera movement from @video1.
581
+ Use @Image1 as the first frame of the scene.
582
+ Reference character appearance from @Image1, but reference camera movement from @video1.
581
583
  Reference character action from @video1, reference circular camera movement from @video2.
582
584
  Use @audio1 as background music and tonal rhythm reference.
583
585
  Extend @video1 by 5s, keeping the same environment, costume, and lighting continuity.
@@ -586,8 +588,8 @@ Extend @video1 by 5s, keeping the same environment, costume, and lighting contin
586
588
  ### Seedance Prompt Skeleton
587
589
 
588
590
  ```text
589
- Use @image1 as the first frame of the scene.
590
- Maintain character appearance exactly consistent with @image1.
591
+ Use @Image1 as the first frame of the scene.
592
+ Maintain character appearance exactly consistent with @Image1.
591
593
  Reference camera language from @video1, but do not copy its subject identity.
592
594
  Use @audio1 only as ambience / music rhythm reference.
593
595
  No scene cuts throughout, one continuous shot.
@@ -619,8 +621,9 @@ No scene cuts throughout, one continuous shot.
619
621
 
620
622
  ### Seedance Quality Notes
621
623
 
622
- - prefer `Use @image1 as the first frame` when first-frame identity lock matters
623
- - write `No scene cuts throughout, one continuous shot.` when you want uninterrupted motion
624
+ - prefer `Use @Image1 as the first frame` when first-frame identity lock matters; legacy `@image1` remains accepted in older Film-Kit text
625
+ - write `No scene cuts throughout, one continuous shot.` only when you want uninterrupted motion
626
+ - for storyboard-reference prompts, generated character sheet tokens (`@Image1`, `@Image2`, ...) control identity while the generated shot storyboard token (the next `@Image`) controls composition, blocking, camera direction, timing, and action rhythm only
624
627
  - if action and camera references differ, say so explicitly
625
628
  - if audio is only a mood reference, say `Use @audio1 only as tonal ambience reference`
626
629
  - acting direction should be physical: `hesitates, swallows, tightens grip, glances over shoulder`
@@ -55,12 +55,14 @@ Replicate the artistic approach and atmosphere from the reference.
55
55
  For `storyboard-reference` mode:
56
56
 
57
57
  ```text
58
- Use @character1 as the exact identity reference.
59
- Use @storyboard1 as the storyboard planning reference for composition, blocking, camera direction, action progression, and visual rhythm only.
60
- Do not copy text, labels, watermarks, logos, panel borders, or alternate character design from @storyboard1.
58
+ Use @character1 as the exact source reference for a one-time 16:9 GPT Image 2 character sheet.
59
+ Use the generated character sheet token(s) as exact identity references.
60
+ Use the generated shot storyboard token as the storyboard planning reference for composition, blocking, camera direction, action progression, and visual rhythm only.
61
+ Optional @storyboard1 guide images are staging references only.
62
+ Do not copy text, labels, watermarks, logos, panel borders, or alternate character design from any storyboard guide or generated storyboard.
61
63
  ```
62
64
 
63
- The storyboard reference never overrides face, hair, body proportions, wardrobe, accessories, or visible props locked by the character reference.
65
+ The storyboard reference never overrides face, hair, body proportions, wardrobe, accessories, or visible props locked by the character reference and generated character sheet.
64
66
 
65
67
  ---
66
68
 
@@ -13,7 +13,7 @@ It turns semantic realism into a hard production gate instead of a best-effort p
13
13
  Every `shot-plan.json` or `team-plan.json` must carry a scene-level `visual_world` block.
14
14
  Use it as the canonical source for all shots in the same scene:
15
15
 
16
- In `storyboard-reference` mode, `storyboard-reference-plan.json` and each `SHOTNN.bundle.json` carry the same canonical role: the storyboard image informs camera, phase order, screen direction, and spatial staging only; the character reference remains the immutable identity source.
16
+ In `storyboard-reference` mode, `storyboard-reference-plan.json` and each `SHOTNN.bundle.json` carry the same canonical role: generated character sheets remain the immutable identity source, while generated shot storyboards inform camera, phase order, screen direction, and spatial staging only.
17
17
 
18
18
  ```json
19
19
  {
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: storyboard-reference
3
- description: Character reference + storyboard image + user brief to model-aware video prompt bundles for Veo 3.1, Seedance 2.0, and Kling 3.0 without requiring start/end frame generation.
3
+ description: Character reference sheet prep + per-shot GPT Image 2 storyboard prompts + model-aware video prompt bundles for Veo 3.1, Seedance 2.0, and Kling 3.0 without requiring start/end frame generation.
4
4
  ---
5
5
 
6
6
  # Storyboard Reference Skill
@@ -9,27 +9,58 @@ description: Character reference + storyboard image + user brief to model-aware
9
9
 
10
10
  Use this skill when the user provides:
11
11
 
12
- - a character reference image
13
- - a storyboard reference image
12
+ - one or more character reference images
14
13
  - a video brief or scenario text
14
+ - optional external storyboard guide images
15
15
 
16
- The output is a copy-paste-ready prompt bundle for supported video models. This mode does not require ILK FRAME / SON FRAME generation.
16
+ The output is a production workflow, not only a video prompt. First create one reusable GPT Image 2 character sheet prompt per reference character. Then create one GPT Image 2 storyboard prompt per `SHOTNN.md`. The generated shot storyboard is the staging reference for the final video model prompt.
17
+
18
+ ## Reference Prep
19
+
20
+ ### Character Sheet Prompt
21
+
22
+ For each character reference, generate this prompt once:
23
+
24
+ - provider: `gpt-image-2`
25
+ - aspect ratio: `16:9`
26
+ - layout: one widescreen production storyboard sheet
27
+ - required views: front full body, back full body, left profile, right profile, three-quarter full body, close-up face
28
+ - identity lock: exact face, skull shape, hair, skin texture, body proportions, wardrobe, accessories, and visible props
29
+ - forbidden: text, labels, arrows, panel numbers, logos, watermarks, alternate outfits, alternate character designs
30
+
31
+ This sheet becomes the identity reference for every later shot storyboard.
32
+
33
+ ### Shot Storyboard Prompt
34
+
35
+ For each shot, generate a professional GPT Image 2 storyboard prompt:
36
+
37
+ - provider: `gpt-image-2`
38
+ - aspect ratio: `16:9`
39
+ - panel budget: 4-6s = 1-2 panels, 7-10s = 2-3 panels, 11-15s = 3-4 panels
40
+ - hard cap: max 4 panels/phases per shot unless the configured project cap is lower
41
+ - split policy: 5+ distinct phases must become separate chained `SHOTNN.md` files
42
+ - target detail: dense professional storyboard direction, concrete blocking and camera language, no decorative prose
43
+ - storyboard art grammar: black-and-white rough pencil drawings, minimal detail, rapid gesture energy, simple anatomy construction, strong silhouette readability, unfinished previsualization feel
44
+ - annotation grammar: red arrows = body movement, blue arrows = camera movement, green marks = framing/composition, orange marks = lighting direction, purple marks = vocal/emotional emphasis, black text = very short lens notes and panel labels
45
+ - continuity: include previous shot handoff, next shot handoff, shared `visual_world`, screen direction, lighting, and action rhythm
46
+
47
+ The shot storyboard prompt must use the character sheet reference as the only identity source. Optional external storyboard guide images may inform composition and timing only.
17
48
 
18
49
  ## Role Separation
19
50
 
20
- `@character1` is the identity lock.
51
+ Character references and generated character sheets are identity locks.
21
52
 
22
- Use it for face, hair, skin texture, body proportions, wardrobe, accessories, and visible props. Do not use it for camera path, storyboard timing, or background layout.
53
+ Use them for face, hair, skin texture, body proportions, wardrobe, accessories, and visible props. Do not use them for camera path, storyboard timing, or background layout.
23
54
 
24
- `@storyboard1` is the editorial and camera plan.
55
+ The generated shot storyboard is the editorial and camera plan.
25
56
 
26
- Use it for composition, blocking, camera angle, action progression, visual rhythm, and phase order. Do not use it to redesign the character, replace wardrobe, copy panel borders, copy text, copy logos, or import watermark details.
57
+ Use it for composition, blocking, camera angle, action progression, visual rhythm, phase order, and handoff continuity. Do not use it to redesign the character, replace wardrobe, copy panel borders, copy text, copy logos, or import watermark details.
27
58
 
28
59
  ## Hard Rules
29
60
 
30
61
  - Character identity always wins over storyboard character design.
31
62
  - Storyboard text, labels, watermarks, logos, and panel borders are never copied into the video.
32
- - One prompt may contain at most 4 storyboard phases.
63
+ - One prompt may contain at most 4 storyboard phases by default.
33
64
  - 5+ distinct storyboard phases must be split into multiple `SHOTNN.md` files.
34
65
  - Do not assume start/end frame assets exist in `storyboard-reference` mode.
35
66
  - Every model output must include an `Avoid` or negative prompt section.
@@ -41,14 +72,22 @@ Use it for composition, blocking, camera angle, action progression, visual rhyth
41
72
 
42
73
  Seedance 2.0:
43
74
 
44
- - Map `@image1` to character identity.
45
- - Map `@image2` to storyboard composition/timing.
75
+ - Map character sheet images to `@Image1`, `@Image2`, ... with legacy aliases `@image1`, `@image2`, ...
76
+ - Map the generated shot storyboard to the next image token, for example one character means `@Image2`, two characters means `@Image3`.
77
+ - Character image tokens control identity, face, body proportions, wardrobe, accessories, and visible props.
78
+ - The storyboard token controls composition, blocking, camera direction, timing, action rhythm, and phase order only.
79
+ - Follow generated storyboard panels left-to-right, top-to-bottom. Do not reinterpret the action, pose logic, camera angle, emotional progression, frame variety, or final pose.
80
+ - Treat storyboard arrows, labels, lens notes, and colored marks as planning annotations only; never render them into the video.
46
81
  - Use explicit timeline phases when the storyboard has multiple beats.
47
- - Include `No scene cuts throughout, one continuous shot` for continuous shots.
82
+ - Use `No scene cuts throughout, one continuous shot` only for a true single uninterrupted camera move.
83
+ - For multi-phase storyboard prompts, use only the planned phase transitions and do not add unplanned cuts.
84
+ - Duration policy: 4-6s = 1-2 phases, 7-10s = 2-3 phases, 11-15s = 3-4 phases.
85
+ - Seedance provider limits: max 9 image references, 3 video references, 3 audio references, 12 total files, 4-15 seconds.
86
+ - Storyboard text, panel borders, watermark, logo, and alternate character design are never identity sources.
48
87
 
49
88
  Veo 3.1:
50
89
 
51
- - Describe the storyboard as a visual planning reference, not a literal frame.
90
+ - Describe the generated storyboard as a visual planning reference, not a literal frame.
52
91
  - Include camera, lens/framing, lighting, foreground/midground/background, continuity, and full `Audio direction`.
53
92
  - Do not request storyboard panel borders or on-screen text.
54
93
 
@@ -63,7 +102,11 @@ Kling 3.0:
63
102
  Each shot file contains:
64
103
 
65
104
  - Turkish summary
105
+ - model control
66
106
  - input asset roles
107
+ - reference asset requirements
108
+ - provider reference tokens
109
+ - GPT Image 2 storyboard prompt
67
110
  - storyboard interpretation
68
111
  - audio plan
69
112
  - prompt bundle for requested models
@@ -73,6 +116,8 @@ Generated files:
73
116
 
74
117
  ```text
75
118
  $OUTPUT_DIR/storyboard-reference-plan.json
119
+ $OUTPUT_DIR/reference-prep/CHARACTER-SHEET-*.md
120
+ $OUTPUT_DIR/storyboard-prompts/SHOTNN-GPT-IMAGE-2-STORYBOARD.md
76
121
  $OUTPUT_DIR/prompt-bundles/SHOTNN.bundle.json
77
122
  $OUTPUT_DIR/shots/SHOTNN.md
78
123
  $OUTPUT_DIR/reports/STORYBOARD-REFERENCE-QA.md
@@ -1,5 +1,5 @@
1
1
  ---
2
- description: Generate storyboard-reference prompt bundles from character reference, storyboard reference, and video brief
2
+ description: Generate character sheet prompts, per-shot GPT Image 2 storyboard prompts, and model-aware video prompt bundles from character references and a video brief
3
3
  ---
4
4
 
5
5
  # /generate-storyboard - Storyboard Reference Video Prompt Mode
@@ -7,8 +7,8 @@ description: Generate storyboard-reference prompt bundles from character referen
7
7
  ## Preconditions
8
8
 
9
9
  - Character reference image exists.
10
- - Storyboard reference image exists.
11
10
  - User brief or scenario text exists.
11
+ - Optional storyboard guide images may exist, but they are not required.
12
12
  - `storyboard-reference` mode is explicitly requested or configured.
13
13
 
14
14
  ## Read Order
@@ -25,38 +25,48 @@ description: Generate storyboard-reference prompt bundles from character referen
25
25
  ## Flow
26
26
 
27
27
  1. Confirm asset roles:
28
- - `@character1`: `character_identity`, exact lock
29
- - `@storyboard1`: `storyboard_plan`, staging only
30
- 2. Confirm target models: `veo31`, `seedance-2.0`, `kling-3.0`, or a user-provided subset.
31
- 3. Interpret storyboard panel count:
32
- - 1 panel: one continuous action arc
33
- - 2-4 panels: internal storyboard phases
34
- - 5+ panels: split into multiple `SHOTNN.md` files
35
- 4. Build `visual_world`:
28
+ - `@character1`, `@character2`, ...: `character_identity`, exact lock
29
+ - optional `@storyboard1`, `@storyboard2`, ...: external storyboard guides, staging only
30
+ 2. Generate one GPT Image 2 character sheet prompt per character reference:
31
+ - 16:9 production storyboard sheet
32
+ - front full body, back full body, left profile, right profile, three-quarter full body, close-up face
33
+ - exact identity, wardrobe, accessories, and visible props
34
+ - no labels, text, logos, watermarks, alternate designs, or extra characters
35
+ 3. Confirm target models: `veo31`, `seedance-2.0`, `kling-3.0`, or a user-provided subset.
36
+ 4. Select shot storyboard panel budget:
37
+ - 4-6 seconds: 1-2 panels/phases
38
+ - 7-10 seconds: 2-3 panels/phases
39
+ - 11-15 seconds: 3-4 panels/phases
40
+ - 5+ distinct phases: split into multiple `SHOTNN.md` files
41
+ 5. Build `visual_world`:
36
42
  - environment
37
43
  - lighting
38
44
  - foreground/midground/background
39
45
  - screen direction
40
46
  - continuity anchors
41
- 5. Build model prompt bundle:
42
- - Seedance role-separated `@image1` / `@image2` prompt
47
+ 6. Generate one GPT Image 2 storyboard prompt per shot:
48
+ - use character sheets as the only identity source
49
+ - use optional storyboard guide only for composition, blocking, camera, timing, and rhythm
50
+ - include previous shot handoff and next shot handoff
51
+ - preserve shared location, lighting, screen direction, action rhythm, and scene continuity
52
+ 7. Build model prompt bundle:
53
+ - Seedance dynamic image mapping: character sheets first, generated shot storyboard next
43
54
  - Veo visual-planning prompt with full audio direction
44
55
  - Kling block-structured storyboard route
45
- 6. Run QA gates:
56
+ 8. Run QA gates:
46
57
  - reference lock
47
58
  - storyboard role separation
48
59
  - model grammar
49
60
  - avoid/negative prompt
50
61
  - audio plan
51
62
  - safety
52
- 7. Write outputs under `$OUTPUT_DIR`.
63
+ 9. Write outputs under `$OUTPUT_DIR`.
53
64
 
54
65
  ## CLI Equivalent
55
66
 
56
67
  ```bash
57
68
  npx @milenyumai/film-kit generate-storyboard \
58
69
  --character-ref ./refs/character.png \
59
- --storyboard-ref ./refs/storyboard.png \
60
70
  --brief ./scenario.md \
61
71
  --models veo31,seedance-2.0,kling-3.0 \
62
72
  --duration 8 \
@@ -64,12 +74,23 @@ npx @milenyumai/film-kit generate-storyboard \
64
74
  --output-dir ./outputs
65
75
  ```
66
76
 
77
+ Optional external storyboard guide:
78
+
79
+ ```bash
80
+ npx @milenyumai/film-kit generate-storyboard \
81
+ --character-ref ./refs/character.png \
82
+ --storyboard-ref ./refs/storyboard-guide.png \
83
+ --brief ./scenario.md \
84
+ --models seedance-2.0
85
+ ```
86
+
67
87
  ## Fail-Closed Rules
68
88
 
69
89
  - Missing character reference: stop and request a valid reference.
70
- - Missing storyboard reference: stop and request a valid reference.
71
90
  - Empty brief: stop and request a brief.
72
91
  - Public figure / real-person likeness / trademark risk: stop or safely anonymize before prompt generation.
73
92
  - 5+ storyboard phases: do not compress into one prompt; split shots.
93
+ - Missing GPT Image 2 character sheet prompt: output is invalid.
94
+ - Missing GPT Image 2 per-shot storyboard prompt: output is invalid.
74
95
  - Missing `Avoid` / negative prompt: output is invalid.
75
96
  - Kling prompt missing required block structure: output is invalid.
@@ -153,14 +153,14 @@ Before writing prompts, design the Start→End transition:
153
153
 
154
154
  Before writing prompts, lock the multimodal control plan:
155
155
 
156
- 1. **Reference roles:** State which material controls identity, action, camera, and audio (`@image1`, `@video1`, `@video2`, `@audio1`).
157
- 2. **First-frame anchor:** If an image reference exists, start with `Use @image1 as the first frame of the scene.`
158
- 3. **Continuity mode:** Default to `No scene cuts throughout, one continuous shot.` unless the beat genuinely requires internal timeline segmentation.
156
+ 1. **Reference roles:** State which material controls identity, action, camera, and audio (`@Image1`/`@image1`, `@video1`, `@video2`, `@audio1`).
157
+ 2. **First-frame anchor:** If an image reference exists, start with `Use @Image1 as the first frame of the scene.`
158
+ 3. **Continuity mode:** Use `No scene cuts throughout, one continuous shot.` only when the beat is genuinely uninterrupted; planned storyboard phase changes must be named instead.
159
159
  4. **Timeline clarity:** For longer or more complex shots, split the action into explicit time ranges with one editorial job per phase.
160
160
  5. **Reference separation:** If action and camera references come from different materials, say so explicitly.
161
161
  6. **Performance realism:** Use concrete physical acting cues, not vague emotional labels.
162
162
  7. **Extension mode:** When continuing from an existing clip, use `Extend @video1 by [N]s, ...` instead of rewriting the whole scene as a fresh cut.
163
- 8. **Identity lock:** When `@image1` defines identity, do not rewrite face/body/wardrobe design in prose; keep the same person/object exactly as reference and change only one meaningful beat.
163
+ 8. **Identity lock:** When `@Image1` / `@image1` defines identity, do not rewrite face/body/wardrobe design in prose; keep the same person/object exactly as reference and change only one meaningful beat.
164
164
 
165
165
  #### Veo Gate (when model is veo31)
166
166
 
@@ -185,10 +185,10 @@ Before writing prompts, lock the multimodal control plan:
185
185
 
186
186
  #### Seedance Gate (when model is seedance-2.0)
187
187
 
188
- - [ ] Prompt declares material roles explicitly when references exist (`@image1`, `@video1`, `@audio1`)
188
+ - [ ] Prompt declares material roles explicitly when references exist (`@Image1`/`@image1`, `@video1`, `@audio1`)
189
189
  - [ ] Identity reference, action reference, and camera reference are separated when they come from different inputs
190
- - [ ] `Use @image1 as the first frame of the scene.` appears when first-frame anchoring is needed
191
- - [ ] `No scene cuts throughout, one continuous shot.` is used for uninterrupted beats
190
+ - [ ] `Use @Image1 as the first frame of the scene.` appears when first-frame anchoring is needed
191
+ - [ ] `No scene cuts throughout, one continuous shot.` is used only for uninterrupted beats
192
192
  - [ ] Timeline segmentation is used only when the beat has meaningful internal phases
193
193
  - [ ] Extension syntax is used when continuing a prior clip (`Extend @video1 by ...`)
194
194
  - [ ] Acting direction is expressed with concrete body/performance cues, not vague labels
@@ -78,9 +78,9 @@ Validate all prompts before delivery to ensure platform compliance.
78
78
  - prompt includes `stable background` and `no warping` constraints
79
79
 
80
80
  7. Seedance-only checks (when model is `seedance-2.0`)
81
- - reference roles are explicit when materials are used (`@image1`, `@video1`, `@audio1`)
81
+ - reference roles are explicit when materials are used (`@Image1`/`@image1`, `@video1`, `@audio1`)
82
82
  - prompt separates identity reference from camera/action reference when needed
83
- - continuous shots explicitly say `No scene cuts throughout, one continuous shot.` unless segmented timing is justified
83
+ - continuous shots explicitly say `No scene cuts throughout, one continuous shot.` only when uninterrupted; segmented timing/storyboard phases do not force no-cuts wording
84
84
  - segmented timing, if used, assigns a meaningful job to each phase instead of decorative micro-beats
85
85
  - extension prompts use `Extend @video1 by [N]s` syntax when continuing a source clip
86
86
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@milenyumai/film-kit",
3
- "version": "2.2.1",
3
+ "version": "2.3.1",
4
4
  "description": "Single-package Film-Kit distribution with preset-driven cinematic runtime setup for OpenAI Codex App, Claude Code, Cursor, Copilot, and Antigravity.",
5
5
  "type": "module",
6
6
  "main": "./build/index.js",