@kolbo/mcp 1.79.0 → 1.79.2
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/package.json +66 -65
- package/skill/GENERATED.md +1 -1
- package/skill/SKILL.md +14 -4
- package/skill/VERSION +1 -1
- package/skill/references/filmmaking/routing.md +7 -3
- package/skill/references/models/gpt-image.md +1 -0
- package/skill/references/models/nano-banana.md +1 -0
- package/skill/references/models/seedance.md +4 -2
- package/skill/references/models/seedance25.md +10 -4
- package/skill/references/workflows/filmmaking.md +1 -0
- package/skill/references/workflows/production-planning.md +104 -0
package/package.json
CHANGED
|
@@ -1,65 +1,66 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@kolbo/mcp",
|
|
3
|
-
"version": "1.79.
|
|
4
|
-
"description": "Kolbo AI MCP Server - Generate images, videos, music, speech, and sound effects from Claude Code",
|
|
5
|
-
"main": "src/index.js",
|
|
6
|
-
"bin": {
|
|
7
|
-
"kolbo-mcp": "./bin/kolbo-mcp.js"
|
|
8
|
-
},
|
|
9
|
-
"scripts": {
|
|
10
|
-
"start": "node src/index.js",
|
|
11
|
-
"smoke": "node scripts/smoke.js",
|
|
12
|
-
"check-skill-bundle": "node scripts/check-skill-bundle.js",
|
|
13
|
-
"check-parity": "node scripts/check-parity.js",
|
|
14
|
-
"prepublishOnly": "node scripts/smoke.js && node scripts/check-skill-bundle.js && node scripts/check-parity.js && node scripts/check-widget-fields.js && node scripts/check-widget-render.js && node scripts/check-model-catalog.js && node scripts/check-skill-tools.js && node scripts/check-submission-contract.js && node scripts/check-install.js",
|
|
15
|
-
"check-model-catalog": "node scripts/check-model-catalog.js",
|
|
16
|
-
"check-widget-fields": "node scripts/check-widget-fields.js",
|
|
17
|
-
"check-widget-render": "node scripts/check-widget-render.js",
|
|
18
|
-
"check-skill-tools": "node scripts/check-skill-tools.js",
|
|
19
|
-
"check-submission-contract": "node scripts/check-submission-contract.js",
|
|
20
|
-
"generate-chatgpt-submission": "node scripts/generate-chatgpt-submission.js",
|
|
21
|
-
"check-install": "node scripts/check-install.js"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"claude-
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
"
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
"@modelcontextprotocol/
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@kolbo/mcp",
|
|
3
|
+
"version": "1.79.2",
|
|
4
|
+
"description": "Kolbo AI MCP Server - Generate images, videos, music, speech, and sound effects from Claude Code",
|
|
5
|
+
"main": "src/index.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"kolbo-mcp": "./bin/kolbo-mcp.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"start": "node src/index.js",
|
|
11
|
+
"smoke": "node scripts/smoke.js",
|
|
12
|
+
"check-skill-bundle": "node scripts/check-skill-bundle.js",
|
|
13
|
+
"check-parity": "node scripts/check-parity.js",
|
|
14
|
+
"prepublishOnly": "node scripts/smoke.js && node scripts/check-skill-bundle.js && node scripts/check-parity.js && node scripts/check-widget-fields.js && node scripts/check-widget-render.js && node scripts/check-model-catalog.js && node scripts/check-skill-tools.js && node scripts/check-doctrine-parity.js && node scripts/check-submission-contract.js && node scripts/check-install.js",
|
|
15
|
+
"check-model-catalog": "node scripts/check-model-catalog.js",
|
|
16
|
+
"check-widget-fields": "node scripts/check-widget-fields.js",
|
|
17
|
+
"check-widget-render": "node scripts/check-widget-render.js",
|
|
18
|
+
"check-skill-tools": "node scripts/check-skill-tools.js",
|
|
19
|
+
"check-submission-contract": "node scripts/check-submission-contract.js",
|
|
20
|
+
"generate-chatgpt-submission": "node scripts/generate-chatgpt-submission.js",
|
|
21
|
+
"check-install": "node scripts/check-install.js",
|
|
22
|
+
"check-doctrine-parity": "node scripts/check-doctrine-parity.js"
|
|
23
|
+
},
|
|
24
|
+
"keywords": [
|
|
25
|
+
"kolbo",
|
|
26
|
+
"mcp",
|
|
27
|
+
"ai",
|
|
28
|
+
"image-generation",
|
|
29
|
+
"video-generation",
|
|
30
|
+
"music-generation",
|
|
31
|
+
"text-to-speech",
|
|
32
|
+
"claude-code",
|
|
33
|
+
"claude-desktop",
|
|
34
|
+
"model-context-protocol"
|
|
35
|
+
],
|
|
36
|
+
"license": "MIT",
|
|
37
|
+
"repository": {
|
|
38
|
+
"type": "git",
|
|
39
|
+
"url": "https://github.com/Zoharvan12/kolbo-mcp"
|
|
40
|
+
},
|
|
41
|
+
"homepage": "https://docs.kolbo.ai/developer-api/claude-code-skill",
|
|
42
|
+
"author": "Kolbo AI <support@kolbo.ai>",
|
|
43
|
+
"publishConfig": {
|
|
44
|
+
"access": "public"
|
|
45
|
+
},
|
|
46
|
+
"files": [
|
|
47
|
+
"src/",
|
|
48
|
+
"bin/",
|
|
49
|
+
"skill/",
|
|
50
|
+
"README.md"
|
|
51
|
+
],
|
|
52
|
+
"dependencies": {
|
|
53
|
+
"@modelcontextprotocol/ext-apps": "^1.7.4",
|
|
54
|
+
"@modelcontextprotocol/sdk": "1.29.0",
|
|
55
|
+
"form-data": "^4.0.6",
|
|
56
|
+
"zod": "^3.25.0"
|
|
57
|
+
},
|
|
58
|
+
"overrides": {
|
|
59
|
+
"hono": "^4.12.12",
|
|
60
|
+
"@hono/node-server": "^1.19.13",
|
|
61
|
+
"path-to-regexp": "^8.4.2"
|
|
62
|
+
},
|
|
63
|
+
"engines": {
|
|
64
|
+
"node": ">=18.0.0"
|
|
65
|
+
}
|
|
66
|
+
}
|
package/skill/GENERATED.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# AUTO-GENERATED — do not edit
|
|
2
2
|
|
|
3
|
-
This tree is mirrored from kolbo-code@
|
|
3
|
+
This tree is mirrored from kolbo-code@a0342e4, the single source of truth.
|
|
4
4
|
Canonical source: packages/opencode/skills/kolbo/
|
|
5
5
|
Distribution: .github/workflows/sync-skill-to-plugin.yml
|
|
6
6
|
|
package/skill/SKILL.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
version: 0.
|
|
2
|
+
version: 0.9.0
|
|
3
3
|
name: kolbo
|
|
4
4
|
description: |
|
|
5
5
|
Generate, edit, analyze, and direct creative media through Kolbo AI: images,
|
|
@@ -57,6 +57,7 @@ For multi-scene / batch work this pairs with `generate_creative_director` (see b
|
|
|
57
57
|
|
|
58
58
|
| If the user wants to… | Read first |
|
|
59
59
|
|---|---|
|
|
60
|
+
| Make a **film / ad / scene / episode / campaign / any video with multiple or recurring characters** — read BEFORE planning a single shot | `references/workflows/production-planning.md` |
|
|
60
61
|
| Direct, develop, audit, or continue a **film / episode / connected scene / complex performance** with continuity, acting, dialogue, music, blocking, or physics | `references/workflows/filmmaking.md` |
|
|
61
62
|
| Generate a **Seedance 2.5** video | `references/models/seedance25.md` + Locked Intro in `references/models/seedance.md`. For narrative/continuity also load `references/workflows/filmmaking.md` — but compile the prompt as Locked Intro, NOT the SCENE CONTEXT / OPTICS / ACTION pack |
|
|
62
63
|
| Generate a **Seedance 2 / 2.0** video **or Elements** (`generate_elements`) | `references/models/seedance.md` — same Locked Intro. Elements is NOT a different prompt language |
|
|
@@ -70,6 +71,7 @@ For multi-scene / batch work this pairs with `generate_creative_director` (see b
|
|
|
70
71
|
| Build a **dashboard / data viz / interactive widget / mini-game / UI mockup** | `references/models/visual-code.md` |
|
|
71
72
|
| Generate with **any other model** (Flux, Kling, Sora, Hailuo, ElevenLabs, DeepDub, …) — also covers universal prompt-engineering basics | `references/models/prompt-copilot.md` |
|
|
72
73
|
| Build a **UGC ad / TV spot / branded video / unboxing / product review / virtual try-on** | `references/workflows/marketing-studio.md` |
|
|
74
|
+
| Write a **complex multi-element still**, an **edit that must not drift** (identity / product / scene lock), or a **reusable prompt template** | `references/workflows/prompt-structure.md` |
|
|
73
75
|
| Make anything look **shot on a phone** — UGC, selfie, candid, "authentic", a product photo that must not look like an ad (image OR video) | `references/workflows/ugc-smartphone.md` |
|
|
74
76
|
| Make a **YouTube / Shorts / Reels thumbnail** or video cover | `references/workflows/thumbnails.md` |
|
|
75
77
|
| Compose a **DTC ad image** (brand kit + ad format + avatar + product + reference media) | `references/workflows/dtc-ads.md` |
|
|
@@ -94,14 +96,14 @@ Each `references/models/*.md` mirrors the matching skill prompt in `kolbo-api/sr
|
|
|
94
96
|
| `generate_image` | Single image from a text prompt. Supports Visual DNA, moodboards, image presets, reference images, web-search grounding. When a preset is requested, resolve it with `list_presets({ type: "image" })` and pass its exact id as `preset_id`. |
|
|
95
97
|
| `generate_image_edit` | Edit/transform an existing image. Pass `source_images` + edit prompt. Image-editing presets are supported through `preset_id` from `list_presets({ type: "image_edit" })`. |
|
|
96
98
|
| `generate_creative_director` | **2–8 related images or videos as one coherent set.** Use INSTEAD of multiple `generate_image` calls for any related multi-output. |
|
|
97
|
-
| `generate_video` | Text-to-video.
|
|
99
|
+
| `generate_video` | Text-to-video. Accepts `visual_dna_ids` and `sound_enabled`; `generate_elements` is still the primary reference-driven route for a DNA-anchored film. |
|
|
98
100
|
| `generate_video_from_image` | Animate a still. Prompt describes motion, not subject. |
|
|
99
101
|
| `generate_video_from_video` | Restyle/transform an existing video. Keeps original motion. |
|
|
100
102
|
| `generate_elements` | Reference-driven video. **Primary route for DNA → video.** Prompt = Seedance Locked Intro (`Total` + `[GLOBAL LOOK]` / `[CAST]` / `[LOCATION]` + `SHOT N`). Every DNA in `visual_dna_ids` must also be `@Name` in that prompt. |
|
|
101
103
|
| `generate_first_last_frame` | Keyframe interpolation between two frames. |
|
|
102
|
-
| `generate_lipsync` | Lipsync
|
|
104
|
+
| `generate_lipsync` | Lipsync an existing waveform onto a face. **Not the route for dialogue in a film you are generating** — write the line in the Seedance prompt instead. |
|
|
103
105
|
| `generate_music` | Music generation (Suno + variants). |
|
|
104
|
-
| `generate_speech` | TTS.
|
|
106
|
+
| `generate_speech` | TTS for narration, voiceover and standalone audio. **NOT for scene dialogue** — Seedance 2/2.5 performs quoted lines itself. |
|
|
105
107
|
| `generate_sound` | Sound effects. |
|
|
106
108
|
| `generate_3d` | 3D models from text / single image / multi-view. Returns GLB/FBX/OBJ/USDZ. |
|
|
107
109
|
| `separate_audio_stems` | Split a soundtrack into Dialogue / Music / Effects / without-dialogue (M&E). The route for removing or isolating speech, instrumental beds, and stems for dubbing. 5cr, inline. See `workflows/audio-stems.md`. |
|
|
@@ -154,12 +156,20 @@ first, so the model renders *different words than the ones the user wrote*.
|
|
|
154
156
|
user never asked for, and their own wording never reached the model.
|
|
155
157
|
- The default is `false` in every generation tool. Leave the argument out.
|
|
156
158
|
|
|
159
|
+
## ⚠️ Assets Before Shots (HARD RULE)
|
|
160
|
+
|
|
161
|
+
For any film / ad / scene / episode / campaign the order is **Map → Create → Confirm → Shoot**: inventory every character, location and prop the script needs, build each as a Visual DNA (sheet presets), get the user's explicit approval on the asset set, and only then generate video. A shot fired against an unapproved cast is waste, not a draft.
|
|
162
|
+
|
|
163
|
+
Scene dialogue is **never** `generate_speech` or `generate_lipsync`. Seedance 2 / 2.5 performs quoted lines written into the shot beat itself — English only. Full flow: `references/workflows/production-planning.md`.
|
|
164
|
+
|
|
157
165
|
## ⚠️ Seedance / Elements prompt contract (HARD RULE)
|
|
158
166
|
|
|
159
167
|
`generate_elements`, Seedance 2, and Seedance 2.5 share **one** compile shape — the Locked Intro in `references/models/seedance.md`:
|
|
160
168
|
|
|
161
169
|
`Total: Xs / N shots / AR` → `[GLOBAL LOOK – LOCKED, APPLIES TO EVERY SHOT]` → `[CAST – IDENTICAL IN EVERY SHOT]` (each person is `@DNAName`) → `[LOCATION]` → `SHOT N — 0:00–0:02 — …`
|
|
162
170
|
|
|
171
|
+
Write the beats at FULL DEPTH. The cap is 15,000 characters on Seedance 2.5 (10,000 on 2.0) — a 30s / 8+ shot compile should land around 4k–9k, and every beat carries its own camera move, a performance task for the speaker AND the listeners, prop/hand state, and the sound in that beat. A one-line shot beat is under-written; the structure alone is not the craft. Read `references/models/seedance25.md` before compiling.
|
|
172
|
+
|
|
163
173
|
Do **not** default Elements to `SCENE CONTEXT` / `OPTICS` / `ACTION` / `ACTIVE REFERENCES` department packs (those live in filmmaking audit/contracts for other models). Do not load `seedance-2-prompting` SCENE CONTEXT as the Elements format.
|
|
164
174
|
|
|
165
175
|
## ⚠️ If the User Names a Tool, USE THAT TOOL (HARD RULE)
|
package/skill/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.9.0
|
|
@@ -69,9 +69,11 @@ Keep identity, world, period, audio ownership, safety, and editorial objective f
|
|
|
69
69
|
|
|
70
70
|
## 4. Select the audio lane
|
|
71
71
|
|
|
72
|
+
The generation family from section 2 must already be known — see section 6. A model that bakes audio in decides how the lane executes, and sometimes that it is not a separate lane at all.
|
|
73
|
+
|
|
72
74
|
| Lane | Use when | Required truth |
|
|
73
75
|
|---|---|---|
|
|
74
|
-
| Dialogue | Actors speak exact lines | speaker, verbatim text, timing, voice identity, listener behavior, silence ownership |
|
|
76
|
+
| Dialogue | Actors speak exact lines | speaker, verbatim text, timing, voice identity, listener behavior, silence ownership. **On Seedance 2 / 2.5 this lane executes IN-PROMPT** — quoted lines written into the shot beat, performed natively; never a TTS or lip-sync tool |
|
|
75
77
|
| Exact-song lip-sync | A supplied waveform must own the mouth | source asset, performer ownership, exact lyrics/phonetics, breath seams, non-performer mouth behavior |
|
|
76
78
|
| Native music performance | The model should create or perform a musical moment | musical structure, performers, vocal ownership, tempo/beat behavior, desired score/SFX relationship |
|
|
77
79
|
| Ambience/SFX only | Music belongs in post or silence is dramatic | environment bed, timed effects, no-score instruction if model supports it |
|
|
@@ -93,9 +95,11 @@ Load a pack only when a relevant signal is present:
|
|
|
93
95
|
|
|
94
96
|
## 6. Select the adapter
|
|
95
97
|
|
|
96
|
-
|
|
98
|
+
Identify the target model as soon as the generation family in section 2 is fixed — **before** choosing the audio lane in section 4. A model that bakes audio in (Seedance 2 / 2.5) owns dialogue, ambience and score itself, so a lane chosen model-neutrally produces a plan the model cannot execute.
|
|
99
|
+
|
|
100
|
+
Read the adapter's limits and syntax last, at compile time, so it translates the creative plan rather than replacing it. Never let the adapter replace the story, performance, or production truth.
|
|
97
101
|
|
|
98
|
-
If the model is unspecified, ask only when the answer materially changes the deliverable. Otherwise produce a model-neutral shot card and state which adapter remains unresolved.
|
|
102
|
+
If the model is unspecified, ask only when the answer materially changes the deliverable — whether the family bakes audio in is exactly that case. Otherwise produce a model-neutral shot card and state which adapter remains unresolved.
|
|
99
103
|
|
|
100
104
|
## 7. Select output depth
|
|
101
105
|
|
|
@@ -23,6 +23,7 @@ Load this file when the user wants a **GPT Image 2 / gpt-image-2** image (OpenAI
|
|
|
23
23
|
- **Photorealism trigger**: include the literal word **"photorealistic"** to engage the model's photorealistic mode. Supporting phrases: "real photograph", "taken on a real camera", "professional photography", "iPhone photo", "35mm film". Camera specs (lens mm, aperture) work for high-level look but are loosely interpreted — use for vibe, not physics.
|
|
24
24
|
- **Composition**: specify framing/viewpoint (close-up, wide, top-down), perspective (eye-level, low-angle), lighting/mood (soft diffuse, golden hour, high-contrast). If layout matters, call out placement ("logo top-right", "subject centered, negative space on left").
|
|
25
25
|
- **People, pose, action**: describe scale, body framing, gaze, object interactions ("full body visible, feet included", "looking down at the open book, not at the camera", "hands naturally gripping the handlebar").
|
|
26
|
+
- **Complex scene, an edit that must not drift, or a reusable template**: use the block schema, the reference contract (`identity_lock` + an explicit `preserve` list) and named slots from `workflows/prompt-structure.md`.
|
|
26
27
|
- **Constraints — what changes vs what stays**: state exclusions and invariants explicitly. For edits use **"change only X" + "keep everything else the same"**, and re-state the preserve list on every iteration to prevent drift. Common invariants: identity, geometry, layout, brand elements, camera angle, saturation, contrast, labels, surrounding objects. Always include "no watermark, no extra text, no logos/trademarks" unless the brief specifies otherwise.
|
|
27
28
|
- **Text in images**: put literal text in **quotes** or **ALL CAPS**, specify typography (font style, size, color, placement). For tricky words / brand names, spell letter-by-letter. Recommend quality **high** when text is small, dense, or multi-font.
|
|
28
29
|
- **Multi-image inputs**: reference each input by number with a short description ("Image 1: product photo… Image 2: style reference…") and describe the interaction ("apply Image 2's style to Image 1", "place the dog from Image 2 next to the woman in Image 1"). Use `@image1` / `@image2` tags — see `workflows/visual-dna.md`.
|
|
@@ -72,6 +72,7 @@ Layer these onto any framework to lift good → breathtaking.
|
|
|
72
72
|
- **Natural**: "golden hour backlighting with long shadows", "overcast diffused light", "blue-hour twilight ambient".
|
|
73
73
|
|
|
74
74
|
### Camera, lens, focus (hardware = visual DNA)
|
|
75
|
+
- **Editing an upload?** Open with a reference contract — `identity_lock` plus a named `preserve` list — not "keep everything else the same". See `workflows/prompt-structure.md`.
|
|
75
76
|
- **`iPhone` is a vibe word, not a look** — for a real phone-capture image (and for a product photo that must not read as an ad) read `workflows/ugc-smartphone.md` and write the optics/processing/light/imperfection stack.
|
|
76
77
|
- **Hardware vibe**: `GoPro` for distorted action immersion · `Fujifilm` for authentic color science · `disposable camera` for raw nostalgic flash · `Hasselblad medium format` for editorial fashion · `iPhone` for everyday realism · `ARRI ALEXA` for cinematic.
|
|
77
78
|
- **Lens / focus**: "low-angle shot, shallow depth of field f/1.8", "wide-angle for vast scale", "macro for intricate detail", "85mm portrait compression", "anamorphic 2.39:1 bokeh".
|
|
@@ -109,8 +109,10 @@ These elevate rich cinematic / reference-anchored sequences. For a short, tight,
|
|
|
109
109
|
|
|
110
110
|
## Dialogue & expression
|
|
111
111
|
|
|
112
|
-
- Dialogue
|
|
113
|
-
- **
|
|
112
|
+
- **Dialogue is PERFORMED by the model, never by a TTS tool.** Quoted lines in the prompt come back as synced speech with lip movement and room tone, together with the SFX you name in AUDIO. Scene dialogue therefore never routes through `generate_speech` or `generate_lipsync` — write the line in quotes inside its shot beat and let Seedance act it.
|
|
113
|
+
- **Write dialogue in ENGLISH.** Seedance does not reliably perform other languages, and Hebrew in particular does not work — it comes back as accented gibberish or English-shaped mouth movement. Never offer a user "Hebrew dialogue directly". If the delivered film has to be Hebrew, the honest routes are: (a) keep the spoken lines English, or (b) stage the beat as expression + on-screen text, or (c) generate the scene clean and dub it afterwards as an explicit, separately-priced pass. Say which one you are doing.
|
|
114
|
+
- `list_models` reports `sound_generation_type: "none"` for Seedance 2 / 2.5 because there is no in-app sound toggle (`sound_baked_in: true`). That field does NOT mean the model is silent. Do not read it as a reason to add TTS.
|
|
115
|
+
- For silent tension, deliver it as expression, not speech: `He does not speak. His expression clearly says: "…"`.
|
|
114
116
|
|
|
115
117
|
## Content tone
|
|
116
118
|
|
|
@@ -9,13 +9,17 @@ Load this file when the user wants a **Seedance 2.5** video (they said "2.5" / "
|
|
|
9
9
|
|
|
10
10
|
**Kolbo MCP routing:** `generate_video` or `generate_elements` (refs / Visual DNA / first-last). Run `list_models({ type: "text_to_video" })` and pick the Seedance 2.5 variant by name.
|
|
11
11
|
|
|
12
|
-
**Audio:** Seedance 2.5
|
|
12
|
+
**Audio:** Seedance 2.5 emits real synced audio. `list_models` shows `sound_generation_type: none` only because there is no in-app toggle (`sound_baked_in: true`) — it does NOT mean the model is silent, and it is never a reason to reach for TTS. Quoted dialogue is PERFORMED (synced voices, lip movement, room tone) alongside the SFX named in AUDIO, so scene dialogue never goes through `generate_speech` or `generate_lipsync`; write the lines in quotes inside their shot beats.
|
|
13
|
+
|
|
14
|
+
**Dialogue language: English.** Other languages are not reliably performed, and Hebrew does not work — it returns accented gibberish or English-shaped mouth movement. Never offer a user "Hebrew dialogue directly". See `models/seedance.md` for the three honest alternatives.
|
|
15
|
+
|
|
16
|
+
**Draft at 480p.** Resolution is a credit MULTIPLIER, not a flat rate. Relative to 720p: 480p ×0.44, 1080p ×2.25. A 30s pass costs ~540cr at 480p against ~1230cr at 720p and ~2770cr at 1080p. Block the film at 480p, get the user's sign-off on staging, performance and timing, then re-run only the approved cut at delivery resolution.
|
|
13
17
|
|
|
14
18
|
## What's NEW in 2.5 (verified — never hedge)
|
|
15
19
|
|
|
16
20
|
- **Duration 4–30 seconds**, whole seconds. 30s IS supported.
|
|
17
21
|
- **Up to 30 shots/cuts in ONE generation.** Deliver exactly N if N ≤ 30.
|
|
18
|
-
- **Prompt cap
|
|
22
|
+
- **Prompt cap 15,000 characters** for the entire prompt as one string (`max_prompt_length` in the catalog; Seedance 2.0 is 10,000). Verify with `list_models` rather than trusting this number — it was documented as 30,000 for months, which is double the real limit.
|
|
19
23
|
- **Up to 50 reference medias / Visual DNA mentions** (`@Name`, `@ImageN`, `#Moodboard`). Every referenced asset must be tagged in the prompt text.
|
|
20
24
|
- **Multimodal refs:** images + video clips + audio can all anchor one generation.
|
|
21
25
|
|
|
@@ -37,11 +41,13 @@ UGC / phone vertical (full craft: `workflows/ugc-smartphone.md`): NEVER write "c
|
|
|
37
41
|
|
|
38
42
|
## Prompt length
|
|
39
43
|
|
|
40
|
-
Simple ≤15s ~120–280 words. Locked-intro cinematic 15s typically 400–900 words. Full 30s / 15+ shots typically 700–1200 words / ~4k–9k chars. Hard cap
|
|
44
|
+
Simple ≤15s ~120–280 words. Locked-intro cinematic 15s typically 400–900 words. Full 30s / 15+ shots typically 700–1200 words / ~4k–9k chars. Hard cap 15,000 characters. Never split into part 1 / part 2.
|
|
45
|
+
|
|
46
|
+
A one-line shot beat is UNDER-WRITTEN. At 30s / 8+ shots you have ~15k characters to work with and a thin prompt wastes them: every beat carries its own camera move, performance task for BOTH the speaker and the listeners, prop/hand state, and the sound in that beat. If a 30s compile lands under ~4k characters, it is too thin — go back and direct it.
|
|
41
47
|
|
|
42
48
|
## Feature-Block (optional, UNDER the Locked Intro)
|
|
43
49
|
|
|
44
|
-
Reach for extra department passes only when the user wants "their best possible 30 seconds" AND the
|
|
50
|
+
Reach for extra department passes only when the user wants "their best possible 30 seconds" AND the 15k budget still has room after GLOBAL LOOK / CAST / LOCATION. Never replace the Locked Intro.
|
|
45
51
|
|
|
46
52
|
May add above GLOBAL LOOK: **EMOTIONAL INTENT** + **SIGNATURE MOMENT**.
|
|
47
53
|
May add under the shot list: CAMERA timecode pass, SOUND timestamps, PHYSICS contract, EDITING/CONTINUITY, DIRECTORIAL NOTES.
|
|
@@ -19,6 +19,7 @@ Read [routing.md](references/filmmaking/routing.md) for the full decision rules.
|
|
|
19
19
|
|
|
20
20
|
| Request | Mode | Read |
|
|
21
21
|
|---|---|---|
|
|
22
|
+
| Any multi-asset or multi-scene production — film, ad, episode, campaign, recurring or multiple characters | Production planning | `references/workflows/production-planning.md` **first** — map assets, build the DNAs, confirm the set, only then shoot |
|
|
22
23
|
| Premise, outline, screenplay, weak scene | Development | `scene-engine.md`, then `workflows.md` |
|
|
23
24
|
| Character, location, prop, state, voice, or production preparation | Pre-production | `asset-preproduction.md`, `production-bible.md`; add `acting-direction.md` for recurring characters |
|
|
24
25
|
| One generation-ready video prompt | Direction | `prompt-contracts.md`, selected craft references, then the model adapter |
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
<!-- PARITY: the asset-first rule and the model defaults here are mirrored in
|
|
2
|
+
kolbo-api/src/config/systemPrompt.js and the help widget's skillRouter.
|
|
3
|
+
Change all three together. -->
|
|
4
|
+
|
|
5
|
+
# Production Planning — map the assets before you shoot
|
|
6
|
+
|
|
7
|
+
Any request for a film, ad, scene, episode, campaign or "video with characters"
|
|
8
|
+
starts here, **before** a single video credit is spent. Most users do not know
|
|
9
|
+
this flow exists; they ask for a film and expect a film. Walk them through it
|
|
10
|
+
rather than jumping to a prompt.
|
|
11
|
+
|
|
12
|
+
Skip it only for a genuine one-off: a single clip, no recurring subject, nothing
|
|
13
|
+
that has to match anything else.
|
|
14
|
+
|
|
15
|
+
## The order is not negotiable
|
|
16
|
+
|
|
17
|
+
1. **Map** every element the script needs.
|
|
18
|
+
2. **Create** each one as an approved asset (Visual DNA).
|
|
19
|
+
3. **Confirm** the asset set with the user.
|
|
20
|
+
4. **Only then** compile shots and generate video.
|
|
21
|
+
|
|
22
|
+
Generating video before step 3 is how a production ends up with a different face
|
|
23
|
+
in every shot and a re-shoot bill. A shot generated against an unapproved cast is
|
|
24
|
+
not a draft, it is waste.
|
|
25
|
+
|
|
26
|
+
## 1. Map
|
|
27
|
+
|
|
28
|
+
Read the script and produce an explicit inventory. Name every element, even the
|
|
29
|
+
ones that feel obvious — the ones that get skipped are the ones that drift:
|
|
30
|
+
|
|
31
|
+
| Kind | DNA type | What it owns |
|
|
32
|
+
|---|---|---|
|
|
33
|
+
| Every speaking or recurring person | `character` | identity, wardrobe, physical state, performance |
|
|
34
|
+
| Every location, including reverse angles | `environment` | geography, landmarks, materials, light logic |
|
|
35
|
+
| Every hero prop, product, vehicle | `product` | identity, scale, material, damage/version state |
|
|
36
|
+
| The film's overall look, when it must hold across shots | `style` | visual register only |
|
|
37
|
+
|
|
38
|
+
State the inventory back to the user as a list with counts and cost before
|
|
39
|
+
creating anything. A 4-character, 2-location, 1-prop film is 7 assets, not "some
|
|
40
|
+
characters".
|
|
41
|
+
|
|
42
|
+
Separate **states** from **identities**: clean vs bloodied, day vs night, intact
|
|
43
|
+
vs broken are their own assets. Do not expect one DNA to carry both.
|
|
44
|
+
|
|
45
|
+
## 2. Create
|
|
46
|
+
|
|
47
|
+
Generate the reference imagery, then register it as a Visual DNA.
|
|
48
|
+
|
|
49
|
+
**Model defaults for the asset pass** (this is an image job — never a video model):
|
|
50
|
+
|
|
51
|
+
| Asset | Model | Why |
|
|
52
|
+
|---|---|---|
|
|
53
|
+
| Cinematic environments; invented / original characters | **`mirage-film-2`** (MIRAGE FILM 2, 3cr) | cinematic look at a third the cost — the default for anything being invented from scratch |
|
|
54
|
+
| Assets needing reference fidelity, legible text, or editing | **`nano-banana-2`** (10cr) or **`gpt-image-2`** (12cr) | stronger reference adherence and text; GPT Image 2 when the asset carries readable words |
|
|
55
|
+
|
|
56
|
+
Read the matching prompt reference before writing an asset prompt:
|
|
57
|
+
`references/models/nano-banana.md` for Nano Banana, `references/models/gpt-image.md`
|
|
58
|
+
for GPT Image 2. There is no Mirage reference file — prompt it as a plain cinematic
|
|
59
|
+
still.
|
|
60
|
+
|
|
61
|
+
Use the sheet presets rather than free-form portraits — `generate_character_sheet`
|
|
62
|
+
with `sheet_type`:
|
|
63
|
+
|
|
64
|
+
- `character` — front/back/face turnaround, the default for a speaking role
|
|
65
|
+
- `character_bible` — denser model sheet (turnaround + faces + wardrobe + swatches) for a lead who appears across many shots
|
|
66
|
+
- `character_headless` — wardrobe/body when clothing changes but the face must not
|
|
67
|
+
- `environment` — location angles plus one signature detail
|
|
68
|
+
- `product` — angles plus material and construction close-ups
|
|
69
|
+
- `style` — one look applied across six varied subjects
|
|
70
|
+
|
|
71
|
+
The sheet is the single strongest consistency booster. It costs credits, so offer
|
|
72
|
+
it and generate on a yes.
|
|
73
|
+
|
|
74
|
+
Then `create_visual_dna` with the sheet as the reference and the matching
|
|
75
|
+
`dna_type`. Name each DNA in the exact form it will be tagged with later.
|
|
76
|
+
|
|
77
|
+
## 3. Confirm
|
|
78
|
+
|
|
79
|
+
Show the user the asset set and get an explicit approval before shooting. This is
|
|
80
|
+
the cheapest possible place to change their mind.
|
|
81
|
+
|
|
82
|
+
## 4. Shoot
|
|
83
|
+
|
|
84
|
+
Only now compile shots. Defaults:
|
|
85
|
+
|
|
86
|
+
- **`generate_elements` with Seedance 2.5** (`seedance-2-5`) for the film itself —
|
|
87
|
+
up to 30s and 30 shots in ONE generation, up to 20 Visual DNAs, dialogue and SFX
|
|
88
|
+
baked in. `generate_video` also accepts `visual_dna_ids` now; Elements remains
|
|
89
|
+
the primary reference-driven route.
|
|
90
|
+
- **Seedance 2.0** (`seedance-2`, cheaper, 4–15s, 9 DNAs) when the piece is short
|
|
91
|
+
and the cast is small. `seedance-2-fast` / `seedance-2-mini` for cheap blocking.
|
|
92
|
+
- Every DNA in `visual_dna_ids` must also appear as `@ExactName` in the prompt.
|
|
93
|
+
- Dialogue in quotes inside its shot beat — English only, never TTS or lipsync.
|
|
94
|
+
See `models/seedance25.md`.
|
|
95
|
+
- **First pass at 480p.** Resolution is a credit multiplier (480p ×0.44 vs 720p,
|
|
96
|
+
1080p ×2.25). Block, approve, then re-run the approved cut at delivery
|
|
97
|
+
resolution.
|
|
98
|
+
|
|
99
|
+
## What this replaces
|
|
100
|
+
|
|
101
|
+
Do not plan a film as "N separate image-to-video clips plus TTS plus lipsync".
|
|
102
|
+
That shape is a legacy of models that could not hold a cast or speak. It costs
|
|
103
|
+
more, drifts between shots, and produces dead-eyed dubbed performance. One
|
|
104
|
+
multi-shot Seedance generation against approved DNAs is the current answer.
|