@milenyumai/film-kit 2.3.3 → 2.3.5

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 (44) hide show
  1. package/MODEL_REGISTRY.md +136 -0
  2. package/README.md +26 -2
  3. package/build/index.d.ts +3 -1
  4. package/build/index.js +1 -0
  5. package/build/lib/cli.js +26 -10
  6. package/build/lib/configure.js +16 -17
  7. package/build/lib/defaults.js +10 -0
  8. package/build/lib/film-kit.js +16 -1
  9. package/build/lib/model-registry/index.d.ts +4 -0
  10. package/build/lib/model-registry/index.js +3 -0
  11. package/build/lib/model-registry/registry.d.ts +220 -0
  12. package/build/lib/model-registry/registry.js +191 -0
  13. package/build/lib/model-registry/selectors.d.ts +23 -0
  14. package/build/lib/model-registry/selectors.js +80 -0
  15. package/build/lib/model-registry/types.d.ts +59 -0
  16. package/build/lib/model-registry/types.js +1 -0
  17. package/build/lib/model-registry/validation.d.ts +3 -0
  18. package/build/lib/model-registry/validation.js +42 -0
  19. package/build/lib/storyboard-reference/adapters/base.js +2 -5
  20. package/build/lib/storyboard-reference/adapters/seedance20.js +5 -5
  21. package/build/lib/storyboard-reference/defaults.js +2 -1
  22. package/build/lib/storyboard-reference/index.d.ts +1 -1
  23. package/build/lib/storyboard-reference/output-writer.js +6 -0
  24. package/build/lib/storyboard-reference/prompt-bundle-builder.js +103 -22
  25. package/build/lib/storyboard-reference/request-normalizer.js +6 -4
  26. package/build/lib/storyboard-reference/types.d.ts +25 -0
  27. package/build/lib/storyboard-reference/validators.js +4 -0
  28. package/build/lib/templates.js +1 -1
  29. package/build/lib/types.d.ts +2 -1
  30. package/content/skills/storyboard-reference/SKILL.md +7 -4
  31. package/content/workflows/generate-storyboard.md +7 -6
  32. package/package.json +2 -1
  33. package/packages/gpt-image-smart/content/skills/storyboard-reference/SKILL.md +7 -4
  34. package/packages/gpt-image-smart/content/workflows/generate-storyboard.md +7 -6
  35. package/packages/hybrid/content/skills/storyboard-reference/SKILL.md +7 -4
  36. package/packages/hybrid/content/workflows/generate-storyboard.md +7 -6
  37. package/packages/hybrid-smart/content/skills/storyboard-reference/SKILL.md +7 -4
  38. package/packages/hybrid-smart/content/workflows/generate-storyboard.md +7 -6
  39. package/packages/multi/build/lib/configure.js +4 -4
  40. package/packages/multi/build/lib/templates.js +9 -9
  41. package/packages/multi/content/skills/storyboard-reference/SKILL.md +7 -4
  42. package/packages/multi/content/workflows/generate-storyboard.md +7 -6
  43. package/packages/studio/content/skills/storyboard-reference/SKILL.md +7 -4
  44. package/packages/studio/content/workflows/generate-storyboard.md +7 -6
@@ -33,11 +33,12 @@ description: Generate character sheet prompts, per-shot GPT Image 2 storyboard p
33
33
  - exact identity, wardrobe, accessories, and visible props
34
34
  - no labels, text, logos, watermarks, alternate designs, or extra characters
35
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
36
+ 4. Select video phase budget and storyboard sheet panel count:
37
+ - 4-6 seconds: 1-2 video phases
38
+ - 7-10 seconds: 2-3 video phases
39
+ - 11-15 seconds: 3-4 video phases
40
+ - GPT Image 2 storyboard sheet may contain 1-12 panels
41
+ - 5+ distinct real video phases, scene changes, or location/action blocks: split into multiple `SHOTNN.md` files
41
42
  5. Build `visual_world`:
42
43
  - environment
43
44
  - lighting
@@ -89,7 +90,7 @@ npx @milenyumai/film-kit generate-storyboard \
89
90
  - Missing character reference: stop and request a valid reference.
90
91
  - Empty brief: stop and request a brief.
91
92
  - Public figure / real-person likeness / trademark risk: stop or safely anonymize before prompt generation.
92
- - 5+ storyboard phases: do not compress into one prompt; split shots.
93
+ - 5+ real video phases: do not compress into one prompt; split shots. 5-12 storyboard sheet panels alone do not force a split.
93
94
  - Missing GPT Image 2 character sheet prompt: output is invalid.
94
95
  - Missing GPT Image 2 per-shot storyboard prompt: output is invalid.
95
96
  - Missing `Avoid` / negative prompt: output is invalid.
@@ -13,7 +13,7 @@ Use this skill when the user provides:
13
13
  - a video brief or scenario text
14
14
  - optional external storyboard guide images
15
15
 
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.
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`. If no external storyboard image is supplied, this generated prompt is the mandatory storyboard bootstrap step. The generated shot storyboard is the staging reference for the final video model prompt.
17
17
 
18
18
  ## Reference Prep
19
19
 
@@ -36,9 +36,10 @@ For each shot, generate a professional GPT Image 2 storyboard prompt:
36
36
 
37
37
  - provider: `gpt-image-2`
38
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
39
+ - storyboard sheet panel budget: default follows the duration-aware phase budget, but an explicit storyboard panel hint may request 1-12 panels in one GPT Image 2 storyboard sheet
40
+ - video phase budget: 4-6s = 1-2 phases, 7-10s = 2-3 phases, 11-15s = 3-4 phases
41
+ - hard cap: max 4 video phases per shot unless the configured project cap is lower
42
+ - split policy: 5+ distinct real video phases, scene changes, or location/action blocks must become separate chained `SHOTNN.md` files; 5-12 storyboard sheet panels alone do not force a split
42
43
  - target detail: dense professional storyboard direction, concrete blocking and camera language, no decorative prose
43
44
  - storyboard art grammar: black-and-white rough pencil drawings, minimal detail, rapid gesture energy, simple anatomy construction, strong silhouette readability, unfinished previsualization feel
44
45
  - 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
@@ -108,6 +109,7 @@ Each shot file contains:
108
109
  - provider reference tokens
109
110
  - GPT Image 2 storyboard prompt
110
111
  - storyboard interpretation
112
+ - storyboard_creation metadata in `SHOTNN.bundle.json`
111
113
  - audio plan
112
114
  - prompt bundle for requested models
113
115
  - QA verdict
@@ -116,6 +118,7 @@ Generated files:
116
118
 
117
119
  ```text
118
120
  $OUTPUT_DIR/storyboard-reference-plan.json
121
+ $OUTPUT_DIR/storyboard-prompt.md
119
122
  $OUTPUT_DIR/reference-prep/CHARACTER-SHEET-*.md
120
123
  $OUTPUT_DIR/storyboard-prompts/SHOTNN-GPT-IMAGE-2-STORYBOARD.md
121
124
  $OUTPUT_DIR/prompt-bundles/SHOTNN.bundle.json
@@ -33,11 +33,12 @@ description: Generate character sheet prompts, per-shot GPT Image 2 storyboard p
33
33
  - exact identity, wardrobe, accessories, and visible props
34
34
  - no labels, text, logos, watermarks, alternate designs, or extra characters
35
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
36
+ 4. Select video phase budget and storyboard sheet panel count:
37
+ - 4-6 seconds: 1-2 video phases
38
+ - 7-10 seconds: 2-3 video phases
39
+ - 11-15 seconds: 3-4 video phases
40
+ - GPT Image 2 storyboard sheet may contain 1-12 panels
41
+ - 5+ distinct real video phases, scene changes, or location/action blocks: split into multiple `SHOTNN.md` files
41
42
  5. Build `visual_world`:
42
43
  - environment
43
44
  - lighting
@@ -89,7 +90,7 @@ npx @milenyumai/film-kit generate-storyboard \
89
90
  - Missing character reference: stop and request a valid reference.
90
91
  - Empty brief: stop and request a brief.
91
92
  - Public figure / real-person likeness / trademark risk: stop or safely anonymize before prompt generation.
92
- - 5+ storyboard phases: do not compress into one prompt; split shots.
93
+ - 5+ real video phases: do not compress into one prompt; split shots. 5-12 storyboard sheet panels alone do not force a split.
93
94
  - Missing GPT Image 2 character sheet prompt: output is invalid.
94
95
  - Missing GPT Image 2 per-shot storyboard prompt: output is invalid.
95
96
  - Missing `Avoid` / negative prompt: output is invalid.
@@ -205,7 +205,7 @@ function buildStoryboardReferencePolicyJson(config) {
205
205
  aspect_ratio: "16:9",
206
206
  panel_budget: "4-6s: 1-2, 7-10s: 2-3, 11-15s: 3-4",
207
207
  max_panels_per_shot: config.storyboardReferenceMode.maxStoryboardPhases,
208
- target_words: "160-240 words per shot storyboard prompt"
208
+ target_words: "240-420 words per shot storyboard prompt"
209
209
  },
210
210
  material_roles: {
211
211
  "character_sheet_tokens": "identity, face, body proportions, wardrobe, accessories, and visible props",
@@ -253,7 +253,7 @@ function buildShotFileOutputContract(config) {
253
253
  return `1. main shot blocks: \`MODEL CONTROL\`, \`INPUT ASSET ROLES\`, \`REFERENCE ASSET REQUIREMENTS\`, \`GPT IMAGE 2 STORYBOARD PROMPT\`, \`STORYBOARD PLAN\`, \`AUDIO PLAN\`, \`SEEDANCE VIDEO PROMPT\`, and coverage
254
254
  2. \`INPUT ASSET ROLES\` must declare generated character sheet tokens (\`@Image1...\`, legacy \`@image1...\`) as identity/wardrobe/props only
255
255
  3. \`INPUT ASSET ROLES\` must declare the generated shot storyboard token (next \`@Image\` after character sheets, legacy lowercase alias such as \`@image2\` for one character) as composition/blocking/camera/timing only
256
- 4. \`GPT IMAGE 2 STORYBOARD PROMPT\` must be 16:9, professional production storyboard style, 160-240 words, and use character sheets as the only identity source
256
+ 4. \`GPT IMAGE 2 STORYBOARD PROMPT\` must be 16:9, professional production storyboard style, 240-420 words, use character sheets as the only identity source, and may use 1-12 storyboard sheet panels without forcing SHOT split
257
257
  5. \`STORYBOARD PLAN\` must include timeline phases for this shot, capped at ${config.storyboardReferenceMode.maxStoryboardPhases} phases
258
258
  6. every phase must derive from the shared \`team-plan.json -> visual_world\` and include its handoff from the previous shot and handoff to the next shot
259
259
  7. 2-3 coverage sub-shots stay in the same file
@@ -285,9 +285,9 @@ function buildSeedanceStoryboardContract(config) {
285
285
  - declare character sheet tokens (\`@Image1...\`, legacy \`@image1...\`) as identity, face, body proportions, wardrobe, accessories, and visible props
286
286
  - declare the generated shot storyboard token (next \`@Image\` after character sheets, legacy lowercase alias such as \`@image2\` for one character) as composition, blocking, camera direction, timing, and action progression only
287
287
  - never let storyboard text, panel borders, watermark, logo, alternate character design, or storyboard character design override the identity reference
288
- - write one \`GPT IMAGE 2 STORYBOARD PROMPT\` per shot before the Seedance prompt; it must be 16:9, professional, 160-240 words, and continuity-aware
288
+ - write one \`GPT IMAGE 2 STORYBOARD PROMPT\` per shot before the Seedance prompt; it must be 16:9, professional, 240-420 words, continuity-aware, and written as the storyboard bootstrap prompt when no external storyboard image exists
289
289
  - write per-shot timeline phases under \`STORYBOARD PLAN\`, capped at ${config.storyboardReferenceMode.maxStoryboardPhases} phases
290
- - follow duration budget: 4-6s = 1-2 phases, 7-10s = 2-3 phases, 11-15s = 3-4 phases; split 5+ phases into separate \`SHOTNN.md\` files
290
+ - follow video phase budget: 4-6s = 1-2 phases, 7-10s = 2-3 phases, 11-15s = 3-4 phases; split 5+ real video phases, scene changes, or location/action blocks into separate \`SHOTNN.md\` files; 5-12 storyboard sheet panels alone do not force a split
291
291
  - use \`No scene cuts throughout, one continuous shot.\` only when that shot's storyboard plan is a single uninterrupted camera move
292
292
  - for multi-phase storyboard shots, describe the planned phase changes directly instead of forcing continuous-shot wording
293
293
  - when continuing a source clip, use \`Extend @video1 by [N]s\` and still preserve storyboard handoff continuity`;
@@ -21,7 +21,7 @@ function buildReferenceModeSummary(config) {
21
21
  return `- Reference mode: \`storyboard-reference\`
22
22
  - Storyboard reference mode: enabled
23
23
  - Max storyboard phases per shot: ${config.storyboardReferenceMode.maxStoryboardPhases}
24
- - Recommended phase budget: 4-6s = 1-2, 7-10s = 2-3, 11-15s = 3-4; split 5+ phases
24
+ - Recommended video phase budget: 4-6s = 1-2, 7-10s = 2-3, 11-15s = 3-4; split 5+ real video phases, not 5-12 storyboard sheet panels
25
25
  - Provider reference tokens: generated character sheet tokens first, generated shot storyboard token next
26
26
  - Start/end frame chaining contract: disabled for Seedance storyboard-reference`;
27
27
  }
@@ -58,7 +58,7 @@ Seedance 2.0 responds best when you assign **explicit multimodal control roles**
58
58
  ${storyboardReferenceActive
59
59
  ? `- Storyboard-reference mode is active: generate one 16:9 GPT Image 2 character sheet prompt per character first; those sheet images lock identity/wardrobe/props
60
60
  - Each SHOTNN.md includes a GPT IMAGE 2 STORYBOARD PROMPT plus a per-shot STORYBOARD PLAN; the generated storyboard token controls only composition, blocking, camera direction, timing, and action progression
61
- - Duration budget: 4-6s = 1-2 phases, 7-10s = 2-3 phases, 11-15s = 3-4 phases; split 5+ phases into separate SHOTNN.md files
61
+ - Duration budget: 4-6s = 1-2 phases, 7-10s = 2-3 phases, 11-15s = 3-4 phases; split 5+ real video phases into separate SHOTNN.md files, while 5-12 storyboard sheet panels may remain one shot
62
62
  - Storyboard text, panel borders, watermark, logo, and alternate character design are never identity sources
63
63
  - Do not require ILK FRAME / SON FRAME sections or exact first-frame reuse text in Seedance storyboard-reference mode
64
64
  - Use "No scene cuts throughout, one continuous shot." only when the shot's storyboard plan is actually one uninterrupted camera move`
@@ -313,8 +313,8 @@ export function buildMultiProjectFiles(config) {
313
313
  - \`storyboard_reference.enabled\`: ${storyboardReferenceActive ? "true" : "false"}
314
314
  - \`storyboard_reference.max_storyboard_phases\`: ${config.storyboardReferenceMode.maxStoryboardPhases}
315
315
  - \`storyboard_reference.character_reference_sheets\`: ${storyboardReferenceActive ? "GPT Image 2, 16:9, generated once per character" : "n/a"}
316
- - \`storyboard_reference.storyboard_prompt_policy\`: ${storyboardReferenceActive ? "GPT Image 2, 16:9, generated per shot, 160-240 words" : "n/a"}
317
- - \`storyboard_reference.recommended_phase_budget\`: ${storyboardReferenceActive ? "`4-6s: 1-2`, `7-10s: 2-3`, `11-15s: 3-4`, split 5+ phases" : "n/a"}
316
+ - \`storyboard_reference.storyboard_prompt_policy\`: ${storyboardReferenceActive ? "GPT Image 2, 16:9, generated per shot, 240-420 words, 1-12 sheet panels" : "n/a"}
317
+ - \`storyboard_reference.recommended_phase_budget\`: ${storyboardReferenceActive ? "`4-6s: 1-2`, `7-10s: 2-3`, `11-15s: 3-4`, split 5+ real video phases" : "n/a"}
318
318
  - \`storyboard_reference.provider_reference_tokens\`: ${storyboardReferenceActive ? "generated character sheet tokens first; generated shot storyboard token next" : "n/a"}
319
319
  - \`storyboard_reference.continuity_mode\`: ${storyboardReferenceActive ? "`continuous-shot` or `multi-shot-storyboard`" : "n/a"}
320
320
  - \`storyboard_reference.provider_file_limits\`: ${storyboardReferenceActive ? "9 images, 3 videos, 3 audio, 12 total files, 4-15s duration" : "n/a"}
@@ -353,7 +353,7 @@ SPATIAL PRIORITY: [who looks at what, which plane dominates, shared light source
353
353
  SEMANTIC WORLD: [camera height, lens family, horizon/vanishing logic, camera movement strategy, light source, shadow direction, scale map, reflection risk, physics constraints]
354
354
  RESPECT LOCKED SHOT COUNT: Do not create any shot outside SHOT[X]-SHOT[Y]
355
355
  KLING DEFAULT: single-transition first; custom storyboard only for 2-4 meaningful phases, max 4
356
- ${storyboardReferenceActive ? `SEEDANCE STORYBOARD-REFERENCE: Each SHOTNN.md includes INPUT ASSET ROLES, REFERENCE ASSET REQUIREMENTS, GPT IMAGE 2 STORYBOARD PROMPT, STORYBOARD PLAN, AUDIO PLAN, SEEDANCE VIDEO PROMPT, and coverage. Do not require ILK FRAME / SON FRAME. Max storyboard phases per shot: ${config.storyboardReferenceMode.maxStoryboardPhases}. Character sheet tokens lock identity; generated shot storyboard token controls staging only.` : ""}
356
+ ${storyboardReferenceActive ? `SEEDANCE STORYBOARD-REFERENCE: Each SHOTNN.md includes INPUT ASSET ROLES, REFERENCE ASSET REQUIREMENTS, GPT IMAGE 2 STORYBOARD PROMPT, STORYBOARD PLAN, AUDIO PLAN, SEEDANCE VIDEO PROMPT, and coverage. Do not require ILK FRAME / SON FRAME. Max video phases per shot: ${config.storyboardReferenceMode.maxStoryboardPhases}. Character sheet tokens lock identity; generated shot storyboard token controls staging only and may contain up to 12 sheet panels.` : ""}
357
357
  ONE FILE PER SHOT: Each SHOTNN.md contains main shot + all coverage.
358
358
  FILE OWNERSHIP: Write only your assigned SHOT files and your own batch report.
359
359
  VOICE CONTRACT: Reuse ${config.outputDir}/team-plan.json -> \`voiceCast\` and keep one active speaker per shot.
@@ -421,7 +421,7 @@ ${storyboardReferenceActive
421
421
  ? `- Main shot contains: \`MODEL CONTROL\`, \`INPUT ASSET ROLES\`, \`REFERENCE ASSET REQUIREMENTS\`, \`GPT IMAGE 2 STORYBOARD PROMPT\`, \`STORYBOARD PLAN\`, \`AUDIO PLAN\`, \`SEEDANCE VIDEO PROMPT\`, and coverage
422
422
  - \`INPUT ASSET ROLES\` declares generated character sheet tokens (\`@Image1...\`, legacy \`@image1...\`) as identity/wardrobe/props
423
423
  - \`INPUT ASSET ROLES\` declares generated shot storyboard token (next \`@Image\`, legacy lowercase alias such as \`@image2\` for one character) as composition/blocking/camera/timing only
424
- - \`GPT IMAGE 2 STORYBOARD PROMPT\` is 16:9, 160-240 words, professional storyboard style, and uses character sheets as the only identity source
424
+ - \`GPT IMAGE 2 STORYBOARD PROMPT\` is 16:9, 240-420 words, professional storyboard style, supports 1-12 sheet panels, and uses character sheets as the only identity source
425
425
  - \`STORYBOARD PLAN\` includes per-shot timeline phases capped at ${config.storyboardReferenceMode.maxStoryboardPhases}
426
426
  - Shot storyboard plans must derive from one shared \`${config.outputDir}/team-plan.json -> visual_world\`
427
427
  - Do not require \`ILK FRAME\` / \`SON FRAME\` assets or exact first-frame reuse text in this mode`
@@ -1004,8 +1004,8 @@ Run the Film-Kit Multi pipeline with maximum throughput while preserving ${isSee
1004
1004
  - set \`storyboard_reference.enabled\` to ${isSeedanceStoryboardReference(config) ? "true" : "false"}
1005
1005
  ${isSeedanceStoryboardReference(config) ? ` - set \`storyboard_reference.max_storyboard_phases\` to ${config.storyboardReferenceMode.maxStoryboardPhases}
1006
1006
  - set \`storyboard_reference.character_reference_sheets\` to GPT Image 2, 16:9, generated once per character
1007
- - set \`storyboard_reference.storyboard_prompt_policy\` to GPT Image 2, 16:9, generated per shot, 160-240 words
1008
- - set \`storyboard_reference.recommended_phase_budget\` to 4-6s=1-2, 7-10s=2-3, 11-15s=3-4, split 5+
1007
+ - set \`storyboard_reference.storyboard_prompt_policy\` to GPT Image 2, 16:9, generated per shot, 240-420 words, 1-12 sheet panels
1008
+ - set \`storyboard_reference.recommended_phase_budget\` to 4-6s=1-2, 7-10s=2-3, 11-15s=3-4, split 5+ real video phases
1009
1009
  - set \`storyboard_reference.provider_reference_tokens\` to generated character sheet tokens first and generated shot storyboard token next
1010
1010
  - set \`storyboard_reference.continuity_mode\` per shot as continuous-shot or multi-shot-storyboard
1011
1011
  - set \`storyboard_reference.provider_file_limits\` to 9 images, 3 videos, 3 audio, 12 total files, 4-15s duration
@@ -1062,7 +1062,7 @@ OUTPUT DIR: ${config.outputDir}/shots/
1062
1062
  REPORT FILE: ${config.outputDir}/reports/BATCH-REPORT-B[NN].md
1063
1063
  SPATIAL PRIORITY: [who looks at what, which plane dominates, shared light source]
1064
1064
  SEMANTIC WORLD: [camera height, lens family, horizon/vanishing logic, camera movement strategy, light source, shadow direction, scale map, reflection risk, physics constraints]
1065
- ${isSeedanceStoryboardReference(config) ? `SEEDANCE STORYBOARD-REFERENCE: Declare generated character sheet tokens (@Image1..., legacy @image1...) for identity and the generated shot storyboard token (next @Image, legacy lowercase alias such as @image2 for one character) for staging only. Include GPT IMAGE 2 STORYBOARD PROMPT and per-shot STORYBOARD PLAN phases, max ${config.storyboardReferenceMode.maxStoryboardPhases}. Do not require ILK FRAME / SON FRAME.` : ""}
1065
+ ${isSeedanceStoryboardReference(config) ? `SEEDANCE STORYBOARD-REFERENCE: Declare generated character sheet tokens (@Image1..., legacy @image1...) for identity and the generated shot storyboard token (next @Image, legacy lowercase alias such as @image2 for one character) for staging only. Include GPT IMAGE 2 STORYBOARD PROMPT with 1-12 sheet panels and per-shot STORYBOARD PLAN phases, max ${config.storyboardReferenceMode.maxStoryboardPhases}. Do not require ILK FRAME / SON FRAME.` : ""}
1066
1066
  RESPECT LOCKED SHOT COUNT: do not create extra shots outside the assigned range
1067
1067
 
1068
1068
  Generate only assigned SHOT files.
@@ -13,7 +13,7 @@ Use this skill when the user provides:
13
13
  - a video brief or scenario text
14
14
  - optional external storyboard guide images
15
15
 
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.
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`. If no external storyboard image is supplied, this generated prompt is the mandatory storyboard bootstrap step. The generated shot storyboard is the staging reference for the final video model prompt.
17
17
 
18
18
  ## Reference Prep
19
19
 
@@ -36,9 +36,10 @@ For each shot, generate a professional GPT Image 2 storyboard prompt:
36
36
 
37
37
  - provider: `gpt-image-2`
38
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
39
+ - storyboard sheet panel budget: default follows the duration-aware phase budget, but an explicit storyboard panel hint may request 1-12 panels in one GPT Image 2 storyboard sheet
40
+ - video phase budget: 4-6s = 1-2 phases, 7-10s = 2-3 phases, 11-15s = 3-4 phases
41
+ - hard cap: max 4 video phases per shot unless the configured project cap is lower
42
+ - split policy: 5+ distinct real video phases, scene changes, or location/action blocks must become separate chained `SHOTNN.md` files; 5-12 storyboard sheet panels alone do not force a split
42
43
  - target detail: dense professional storyboard direction, concrete blocking and camera language, no decorative prose
43
44
  - storyboard art grammar: black-and-white rough pencil drawings, minimal detail, rapid gesture energy, simple anatomy construction, strong silhouette readability, unfinished previsualization feel
44
45
  - 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
@@ -108,6 +109,7 @@ Each shot file contains:
108
109
  - provider reference tokens
109
110
  - GPT Image 2 storyboard prompt
110
111
  - storyboard interpretation
112
+ - storyboard_creation metadata in `SHOTNN.bundle.json`
111
113
  - audio plan
112
114
  - prompt bundle for requested models
113
115
  - QA verdict
@@ -116,6 +118,7 @@ Generated files:
116
118
 
117
119
  ```text
118
120
  $OUTPUT_DIR/storyboard-reference-plan.json
121
+ $OUTPUT_DIR/storyboard-prompt.md
119
122
  $OUTPUT_DIR/reference-prep/CHARACTER-SHEET-*.md
120
123
  $OUTPUT_DIR/storyboard-prompts/SHOTNN-GPT-IMAGE-2-STORYBOARD.md
121
124
  $OUTPUT_DIR/prompt-bundles/SHOTNN.bundle.json
@@ -33,11 +33,12 @@ description: Generate character sheet prompts, per-shot GPT Image 2 storyboard p
33
33
  - exact identity, wardrobe, accessories, and visible props
34
34
  - no labels, text, logos, watermarks, alternate designs, or extra characters
35
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
36
+ 4. Select video phase budget and storyboard sheet panel count:
37
+ - 4-6 seconds: 1-2 video phases
38
+ - 7-10 seconds: 2-3 video phases
39
+ - 11-15 seconds: 3-4 video phases
40
+ - GPT Image 2 storyboard sheet may contain 1-12 panels
41
+ - 5+ distinct real video phases, scene changes, or location/action blocks: split into multiple `SHOTNN.md` files
41
42
  5. Build `visual_world`:
42
43
  - environment
43
44
  - lighting
@@ -89,7 +90,7 @@ npx @milenyumai/film-kit generate-storyboard \
89
90
  - Missing character reference: stop and request a valid reference.
90
91
  - Empty brief: stop and request a brief.
91
92
  - Public figure / real-person likeness / trademark risk: stop or safely anonymize before prompt generation.
92
- - 5+ storyboard phases: do not compress into one prompt; split shots.
93
+ - 5+ real video phases: do not compress into one prompt; split shots. 5-12 storyboard sheet panels alone do not force a split.
93
94
  - Missing GPT Image 2 character sheet prompt: output is invalid.
94
95
  - Missing GPT Image 2 per-shot storyboard prompt: output is invalid.
95
96
  - Missing `Avoid` / negative prompt: output is invalid.
@@ -13,7 +13,7 @@ Use this skill when the user provides:
13
13
  - a video brief or scenario text
14
14
  - optional external storyboard guide images
15
15
 
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.
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`. If no external storyboard image is supplied, this generated prompt is the mandatory storyboard bootstrap step. The generated shot storyboard is the staging reference for the final video model prompt.
17
17
 
18
18
  ## Reference Prep
19
19
 
@@ -36,9 +36,10 @@ For each shot, generate a professional GPT Image 2 storyboard prompt:
36
36
 
37
37
  - provider: `gpt-image-2`
38
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
39
+ - storyboard sheet panel budget: default follows the duration-aware phase budget, but an explicit storyboard panel hint may request 1-12 panels in one GPT Image 2 storyboard sheet
40
+ - video phase budget: 4-6s = 1-2 phases, 7-10s = 2-3 phases, 11-15s = 3-4 phases
41
+ - hard cap: max 4 video phases per shot unless the configured project cap is lower
42
+ - split policy: 5+ distinct real video phases, scene changes, or location/action blocks must become separate chained `SHOTNN.md` files; 5-12 storyboard sheet panels alone do not force a split
42
43
  - target detail: dense professional storyboard direction, concrete blocking and camera language, no decorative prose
43
44
  - storyboard art grammar: black-and-white rough pencil drawings, minimal detail, rapid gesture energy, simple anatomy construction, strong silhouette readability, unfinished previsualization feel
44
45
  - 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
@@ -108,6 +109,7 @@ Each shot file contains:
108
109
  - provider reference tokens
109
110
  - GPT Image 2 storyboard prompt
110
111
  - storyboard interpretation
112
+ - storyboard_creation metadata in `SHOTNN.bundle.json`
111
113
  - audio plan
112
114
  - prompt bundle for requested models
113
115
  - QA verdict
@@ -116,6 +118,7 @@ Generated files:
116
118
 
117
119
  ```text
118
120
  $OUTPUT_DIR/storyboard-reference-plan.json
121
+ $OUTPUT_DIR/storyboard-prompt.md
119
122
  $OUTPUT_DIR/reference-prep/CHARACTER-SHEET-*.md
120
123
  $OUTPUT_DIR/storyboard-prompts/SHOTNN-GPT-IMAGE-2-STORYBOARD.md
121
124
  $OUTPUT_DIR/prompt-bundles/SHOTNN.bundle.json
@@ -33,11 +33,12 @@ description: Generate character sheet prompts, per-shot GPT Image 2 storyboard p
33
33
  - exact identity, wardrobe, accessories, and visible props
34
34
  - no labels, text, logos, watermarks, alternate designs, or extra characters
35
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
36
+ 4. Select video phase budget and storyboard sheet panel count:
37
+ - 4-6 seconds: 1-2 video phases
38
+ - 7-10 seconds: 2-3 video phases
39
+ - 11-15 seconds: 3-4 video phases
40
+ - GPT Image 2 storyboard sheet may contain 1-12 panels
41
+ - 5+ distinct real video phases, scene changes, or location/action blocks: split into multiple `SHOTNN.md` files
41
42
  5. Build `visual_world`:
42
43
  - environment
43
44
  - lighting
@@ -89,7 +90,7 @@ npx @milenyumai/film-kit generate-storyboard \
89
90
  - Missing character reference: stop and request a valid reference.
90
91
  - Empty brief: stop and request a brief.
91
92
  - Public figure / real-person likeness / trademark risk: stop or safely anonymize before prompt generation.
92
- - 5+ storyboard phases: do not compress into one prompt; split shots.
93
+ - 5+ real video phases: do not compress into one prompt; split shots. 5-12 storyboard sheet panels alone do not force a split.
93
94
  - Missing GPT Image 2 character sheet prompt: output is invalid.
94
95
  - Missing GPT Image 2 per-shot storyboard prompt: output is invalid.
95
96
  - Missing `Avoid` / negative prompt: output is invalid.