@kolbo/mcp 1.21.0 → 1.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -15
- package/package.json +2 -1
- package/skill/SKILL.md +251 -0
- package/skill/VERSION +1 -0
- package/skill/references/models/creative-director.md +106 -0
- package/skill/references/models/gpt-image.md +111 -0
- package/skill/references/models/html-presentation.md +139 -0
- package/skill/references/models/landing-page.md +135 -0
- package/skill/references/models/music.md +120 -0
- package/skill/references/models/nano-banana.md +97 -0
- package/skill/references/models/prompt-copilot.md +133 -0
- package/skill/references/models/seedance.md +90 -0
- package/skill/references/models/veo.md +110 -0
- package/skill/references/models/visual-code.md +80 -0
- package/skill/references/workflows/app-builder.md +41 -0
- package/skill/references/workflows/cost-and-validation.md +138 -0
- package/skill/references/workflows/dtc-ads.md +126 -0
- package/skill/references/workflows/marketing-studio.md +157 -0
- package/skill/references/workflows/marketplace-cards.md +146 -0
- package/skill/references/workflows/media-library.md +76 -0
- package/skill/references/workflows/product-photoshoot.md +199 -0
- package/skill/references/workflows/production-log.md +155 -0
- package/skill/references/workflows/research-first.md +174 -0
- package/skill/references/workflows/transcription.md +163 -0
- package/skill/references/workflows/troubleshooting.md +73 -0
- package/skill/references/workflows/visual-dna.md +233 -0
- package/src/install.js +29 -0
package/README.md
CHANGED
|
@@ -11,30 +11,30 @@ Generate images, videos, music, speech, sound effects, multi-scene campaigns, an
|
|
|
11
11
|
Copy this and paste it to Claude, ChatGPT, Cursor, or any AI assistant — it installs Kolbo itself (picks local config or remote connector based on what it can do):
|
|
12
12
|
|
|
13
13
|
```
|
|
14
|
-
|
|
14
|
+
Connect the Kolbo AI MCP server (generate images, video, music and more).
|
|
15
15
|
|
|
16
|
-
- If you can
|
|
17
|
-
|
|
18
|
-
On first use a Kolbo login opens in my browser — I'll click Allow (no API key needed).
|
|
19
|
-
- If you support remote connectors (claude.ai, ChatGPT): add the custom connector URL https://api.kolbo.ai/mcp and walk me through logging in.
|
|
16
|
+
- If you can run terminal commands (Claude Code, Cursor, Claude Desktop, or any local setup): run "npx -y @kolbo/mcp install" — it auto-configures Kolbo in the right place. If you can't run it, give me the command to run. Then I'll restart the app.
|
|
17
|
+
- If you're a browser chat (claude.ai, ChatGPT): add a custom connector with URL https://api.kolbo.ai/mcp under Settings → Connectors, then Connect → log in → Allow.
|
|
20
18
|
|
|
21
|
-
|
|
19
|
+
No API key needed — on first use a Kolbo login opens in my browser and I click Allow. When set up, confirm Kolbo is connected and offer to generate a test image of a sunset.
|
|
22
20
|
```
|
|
23
21
|
|
|
24
|
-
### Or
|
|
22
|
+
### Or set it up yourself — one command
|
|
25
23
|
|
|
26
24
|
<!--
|
|
27
25
|
AI ASSISTANT SETUP INSTRUCTIONS — if you are an AI agent reading this to set up Kolbo for a user, do exactly this:
|
|
28
|
-
1. If you can
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
- Cursor: .cursor/mcp.json
|
|
32
|
-
Then tell the user to restart. On their first generation a Kolbo login opens in the browser — they click Allow (no API key to create).
|
|
33
|
-
2. If you're a web chat that can't edit files (claude.ai, ChatGPT): tell the user to add the connector URL https://api.kolbo.ai/mcp under Settings → Connectors instead.
|
|
34
|
-
The JSON config alone enables every tool. The plugin below is an optional slash-command upgrade.
|
|
26
|
+
1. If you can run a terminal command (Claude Code, Cursor, Claude Desktop): run `npx -y @kolbo/mcp install` — it writes the keyless config to the right file for every installed agent. (Don't hand-edit settings.json; the installer is deterministic.) Then tell the user to restart the app. On the first generation a Kolbo login opens in the browser — they click Allow (no API key).
|
|
27
|
+
2. If you're a web chat that can't run commands (claude.ai, ChatGPT): tell the user to add the connector URL https://api.kolbo.ai/mcp under Settings → Connectors instead.
|
|
28
|
+
The plugin below is an optional slash-command upgrade.
|
|
35
29
|
-->
|
|
36
30
|
|
|
37
|
-
|
|
31
|
+
Run this once — it auto-configures Claude Desktop, Claude Code, and Cursor (whichever you have), keyless:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npx -y @kolbo/mcp install
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Or add the config by hand — this block is identical for every MCP client and carries **no API key** (on first use it logs you in via the browser):
|
|
38
38
|
|
|
39
39
|
```json
|
|
40
40
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kolbo/mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.22.0",
|
|
4
4
|
"description": "Kolbo AI MCP Server - Generate images, videos, music, speech, and sound effects from Claude Code",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
"files": [
|
|
38
38
|
"src/",
|
|
39
39
|
"bin/",
|
|
40
|
+
"skill/",
|
|
40
41
|
"README.md"
|
|
41
42
|
],
|
|
42
43
|
"dependencies": {
|
package/skill/SKILL.md
ADDED
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: 0.4.0
|
|
3
|
+
name: kolbo
|
|
4
|
+
description: |
|
|
5
|
+
Generate, edit, or analyze creative media via the Kolbo AI MCP server.
|
|
6
|
+
Covers images (GPT Image 2, Nano Banana, Flux, ...), video (Seedance 2,
|
|
7
|
+
Veo 3.1, Kling, Hailuo, ...), music (Suno), TTS (ElevenLabs), 3D,
|
|
8
|
+
transcription, Visual DNA (character consistency), Marketing Studio
|
|
9
|
+
(UGC + DTC ads + product photoshoot + marketplace cards),
|
|
10
|
+
Creative Director (multi-scene batches), HTML artifact publishing
|
|
11
|
+
(presentations, landing pages, dashboards), and the App Builder.
|
|
12
|
+
|
|
13
|
+
Use when: "generate", "create", "make me a", "edit", "animate",
|
|
14
|
+
"transcribe", "Visual DNA", "the same character", "UGC ad",
|
|
15
|
+
"TikTok / Reels / Shorts", "unboxing", "product review", "TV spot",
|
|
16
|
+
"Pinterest pin", "product photo", "lifestyle shot", "hero banner",
|
|
17
|
+
"ad pack", "social carousel", "virtual try-on", "Amazon listing",
|
|
18
|
+
"marketplace cards", "A+ content", "build a presentation/slide deck",
|
|
19
|
+
"landing page", "dashboard / widget / game", "music / song / jingle",
|
|
20
|
+
"TTS / voice", "sound effect", "3D model", "build me an app".
|
|
21
|
+
|
|
22
|
+
Chain: train Visual DNA → use vdna_id in any DNA-aware tool;
|
|
23
|
+
research-first → persist brand kit (.kolbo/brand-kits/) → DTC ads /
|
|
24
|
+
product photoshoot / marketplace cards; generate frames (Creative
|
|
25
|
+
Director) → animate each frame (generate_video_from_image).
|
|
26
|
+
|
|
27
|
+
NOT for: video editing / FFmpeg work (use video-production skill),
|
|
28
|
+
motion graphics (use remotion-best-practices skill), code editing,
|
|
29
|
+
general chat outside media generation.
|
|
30
|
+
argument-hint: "[prompt-or-command] [--model <name>] [--image <path>] [--video <path>]"
|
|
31
|
+
allowed-tools: Bash, Read, Write, Edit
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
# Kolbo AI — Creative Generation, Analysis & Transcription
|
|
35
|
+
|
|
36
|
+
You have direct access to the Kolbo AI creative platform via MCP tools (auto-configured by `kolbo auth login`). Use them to generate and deliver real content — do NOT just describe what you would create.
|
|
37
|
+
|
|
38
|
+
> 🚫 **Don't dump generated URLs as bare text or markdown links in chat** — the UI already renders artifacts as a gallery tile + canvas. Refer by description ("the rainy scene"), store URLs in `.kolbo/production.md`. INLINE `` images ARE allowed for catalog-style replies (per-item thumbs in numbered lists).
|
|
39
|
+
|
|
40
|
+
This file is the **always-loaded core**: tool inventory + universal hard rules + routing index. For any model-specific prompt rules, Visual DNA workflow, production log format, marketing workflow, cost validation, etc., **Read the matching `references/` file from the index below**. Don't try to remember the rules — load the file when you need them.
|
|
41
|
+
|
|
42
|
+
## Step 0 — Bootstrap
|
|
43
|
+
|
|
44
|
+
Once per conversation, before any other Kolbo tool call:
|
|
45
|
+
|
|
46
|
+
1. **Run `check_credits`.** If it fails with "Session expired" / "Not authenticated", ask the user to run `kolbo auth login` (or their branded CLI command like `sapir auth login`) and reload the editor.
|
|
47
|
+
2. **If `list_models` returns empty**, MCP isn't wired — same fix.
|
|
48
|
+
3. Remember the credit balance for the session; don't re-check on every turn.
|
|
49
|
+
|
|
50
|
+
If the user is on a whitelabel build (`sapir`, etc.), they must use their branded command — not `kolbo`. See `references/workflows/troubleshooting.md`.
|
|
51
|
+
|
|
52
|
+
## Routing Index — Read These Files on Demand
|
|
53
|
+
|
|
54
|
+
| If the user wants to… | Read first |
|
|
55
|
+
|---|---|
|
|
56
|
+
| Generate a **Seedance 2** video | `references/models/seedance.md` |
|
|
57
|
+
| Generate a **GPT Image 2** image | `references/models/gpt-image.md` |
|
|
58
|
+
| Generate a **Nano Banana / Gemini** image | `references/models/nano-banana.md` |
|
|
59
|
+
| Generate a **Veo 3 / 3.1** video | `references/models/veo.md` |
|
|
60
|
+
| Build a **multi-scene set** (Creative Director, storyboard, campaign batch, 4+ angles) | `references/models/creative-director.md` |
|
|
61
|
+
| Generate **music** (Suno, song, lyrics, jingle, score) | `references/models/music.md` |
|
|
62
|
+
| Build an **HTML presentation / slide deck** | `references/models/html-presentation.md` |
|
|
63
|
+
| Build a **landing page / marketing site** | `references/models/landing-page.md` |
|
|
64
|
+
| Build a **dashboard / data viz / interactive widget / mini-game / UI mockup** | `references/models/visual-code.md` |
|
|
65
|
+
| Generate with **any other model** (Flux, Kling, Sora, Hailuo, ElevenLabs, DeepDub, …) — also covers universal prompt-engineering basics | `references/models/prompt-copilot.md` |
|
|
66
|
+
| Build a **UGC ad / TV spot / branded video / unboxing / product review / virtual try-on** | `references/workflows/marketing-studio.md` |
|
|
67
|
+
| Compose a **DTC ad image** (brand kit + ad format + avatar + product + reference media) | `references/workflows/dtc-ads.md` |
|
|
68
|
+
| Generate **brand product imagery** (studio shot, lifestyle, Pinterest pin, hero banner, carousel, ad pack, virtual try-on, conceptual, restyle) | `references/workflows/product-photoshoot.md` |
|
|
69
|
+
| Generate **marketplace listing cards** (Amazon main + secondary + A+ content) | `references/workflows/marketplace-cards.md` |
|
|
70
|
+
| Use **Visual DNA** / character consistency / `@name` syntax | `references/workflows/visual-dna.md` |
|
|
71
|
+
| Start or continue a **multi-step production** (storyboard → scenes → final cut) | `references/workflows/production-log.md` |
|
|
72
|
+
| **Transcribe** or **analyze** audio/video | `references/workflows/transcription.md` |
|
|
73
|
+
| **Scrape brand/product info** before generating + persist as `.kolbo/brand-kits/<slug>.md` | `references/workflows/research-first.md` |
|
|
74
|
+
| Browse, manage, or present existing **media library** items | `references/workflows/media-library.md` |
|
|
75
|
+
| Use the **App Builder** (React app generation) | `references/workflows/app-builder.md` |
|
|
76
|
+
| Confirm **cost** or validate **resolution / aspect / duration** against model caps | `references/workflows/cost-and-validation.md` |
|
|
77
|
+
| Hit an **auth / MCP / 429** issue | `references/workflows/troubleshooting.md` |
|
|
78
|
+
|
|
79
|
+
Each `references/models/*.md` mirrors the matching skill prompt in `kolbo-api/src/config/systemPrompt.js` — same battle-tuned rules that power Kolbo's web-app help widget. Keep parity (see `packages/opencode/CLAUDE.md` "MCP & Skill Sync Rule").
|
|
80
|
+
|
|
81
|
+
## Available MCP Tools
|
|
82
|
+
|
|
83
|
+
### Generation
|
|
84
|
+
| Tool | Description |
|
|
85
|
+
|------|-------------|
|
|
86
|
+
| `generate_image` | Single image from a text prompt. Supports Visual DNA, moodboards, reference images, web-search grounding. |
|
|
87
|
+
| `generate_image_edit` | Edit/transform an existing image. Pass `source_images` + edit prompt. |
|
|
88
|
+
| `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. |
|
|
89
|
+
| `generate_video` | Text-to-video. Does **not** support Visual DNA — use `generate_elements` for character-consistent video. |
|
|
90
|
+
| `generate_video_from_image` | Animate a still. Prompt describes motion, not subject. |
|
|
91
|
+
| `generate_video_from_video` | Restyle/transform an existing video. Keeps original motion. |
|
|
92
|
+
| `generate_elements` | Reference-driven video. **Primary route for DNA → video.** |
|
|
93
|
+
| `generate_first_last_frame` | Keyframe interpolation between two frames. |
|
|
94
|
+
| `generate_lipsync` | Lipsync audio to an image or video face. |
|
|
95
|
+
| `generate_music` | Music generation (Suno + variants). |
|
|
96
|
+
| `generate_speech` | TTS. Use `list_voices` to pick a voice. |
|
|
97
|
+
| `generate_sound` | Sound effects. |
|
|
98
|
+
| `generate_3d` | 3D models from text / single image / multi-view. Returns GLB/FBX/OBJ/USDZ. |
|
|
99
|
+
|
|
100
|
+
### Discovery, Library, Visual DNA, Moodboards, Chat, App Builder, Publishing
|
|
101
|
+
| Tool | Purpose |
|
|
102
|
+
|------|---------|
|
|
103
|
+
| `list_models` / `list_voices` / `check_credits` / `get_generation_status` / `get_session_usage` | Discovery + status |
|
|
104
|
+
| `upload_media` / `list_media` / `get_media` / `get_media_stats` / `favorite_media` / `unfavorite_media` / `delete_media` / `restore_media` / `permanently_delete_media` / `move_media` / `bulk_*_media` / `*_media_folder` | Media library — see `workflows/media-library.md` |
|
|
105
|
+
| `create_visual_dna` / `list_visual_dnas` / `get_visual_dna` / `delete_visual_dna` | Visual DNA — see `workflows/visual-dna.md` |
|
|
106
|
+
| `list_moodboards` / `get_moodboard` / `list_presets` | Style overlays |
|
|
107
|
+
| `chat_send_message` / `chat_list_conversations` / `chat_get_messages` | Kolbo chat with optional `media_urls` (up to 10 per call) |
|
|
108
|
+
| `app_builder_*` (9 tools) | Full React app generation — see `workflows/app-builder.md` |
|
|
109
|
+
| `publish_html_artifact` | Publish HTML / SVG / Mermaid to `sites.kolbo.ai`. Server dedupes by content hash. Strict CSP. |
|
|
110
|
+
|
|
111
|
+
## ⚠️ If the User Names a Tool, USE THAT TOOL (HARD RULE)
|
|
112
|
+
|
|
113
|
+
A user-named tool — in any language — overrides every other rule. Recognized aliases:
|
|
114
|
+
|
|
115
|
+
| User said (any language) | Use exactly |
|
|
116
|
+
|---|---|
|
|
117
|
+
| "director", "creative director", **"במאי"**, "ad set", "campaign tool", "storyboard tool" | `generate_creative_director` |
|
|
118
|
+
| "image edit", "edit", "modify", "remove background", **"עריכת תמונה"** (paired with a per-image instruction) | `generate_image_edit` |
|
|
119
|
+
| "elements" / **"אלמנטים"** | `generate_elements` |
|
|
120
|
+
| "first/last frame" / **"פריימים"** | `generate_first_last_frame` |
|
|
121
|
+
| "lipsync" / **"ליפסינק"** | `generate_lipsync` |
|
|
122
|
+
|
|
123
|
+
**Mixed signals — named tool always wins.** "Image edit with the director tool to make 4 angles" → `generate_creative_director`.
|
|
124
|
+
|
|
125
|
+
## ⚠️ Generate vs Edit (when the user did NOT name a tool)
|
|
126
|
+
|
|
127
|
+
| User intent | Action | NOT this |
|
|
128
|
+
|-------------|--------|----------|
|
|
129
|
+
| "Create a video from scratch" | `generate_video` | — |
|
|
130
|
+
| "Edit / Cut / Trim / Add subtitles / Remove silence / Convert to 9:16" | Load `video-production` skill → FFmpeg | ❌ `generate_video` |
|
|
131
|
+
| "Create motion graphics / animated text / title sequence" | Load `remotion-best-practices` skill | ❌ `generate_video` |
|
|
132
|
+
| "Animate this image" | `generate_video_from_image` | — |
|
|
133
|
+
| "Restyle this video as anime" | `generate_video_from_video` | — |
|
|
134
|
+
| "Modify THIS one image" — change bg, remove object, recolor | `generate_image_edit` | ❌ Not for multi-output |
|
|
135
|
+
| "4 angles / poses / views of this character" / "variations of this character" | `generate_creative_director` with `visual_dna_ids` | ❌ Don't loop `generate_image_edit` |
|
|
136
|
+
| "4 variations of THIS exact image" (same prompt, different seeds) | `generate_image` with `num_images=4` | ❌ Not `generate_image_edit` |
|
|
137
|
+
|
|
138
|
+
## Core Workflow
|
|
139
|
+
|
|
140
|
+
1. **Check credits** ONCE per conversation (Step 0). Skip if already checked.
|
|
141
|
+
2. **Discover models** with `list_models` using a `type` filter — but **skip when the user names a specific model**.
|
|
142
|
+
3. **Pick the model**:
|
|
143
|
+
- User named one → use it.
|
|
144
|
+
- Auto-select → only from "Auto-selectable" section (models with a `summary`). Cheapest fit. Prefer `[RECOMMENDED]` when cost is similar.
|
|
145
|
+
- Never auto-select from "Named-only" section.
|
|
146
|
+
4. **Validate inputs** against model caps — see `references/workflows/cost-and-validation.md`.
|
|
147
|
+
5. **How calls work**: each tool blocks until generation is fully complete. Images: seconds. Video: minutes. Multiple tool calls in one response run concurrently. If a call times out, use `get_generation_status` with the returned generation ID.
|
|
148
|
+
6. **Share the URL** after success. Never fabricate URLs.
|
|
149
|
+
|
|
150
|
+
Model types for `list_models`: `text_to_img`, `image_editing`, `text_to_video`, `img_to_video`, `draw_to_video`, `video_to_video`, `elements`, `firstlastgenerations`, `lipsync-image`, `lipsync-video`, `music_gen`, `text_to_speech`, `text_to_sound`, `stt`, `text`, `3d_text_to_model`, `3d_image_to_model`, `3d_multi_image_to_model`, `3d_world`.
|
|
151
|
+
|
|
152
|
+
## Cost Awareness — Quick Rules
|
|
153
|
+
|
|
154
|
+
Full tables + formulas in `references/workflows/cost-and-validation.md`. Quick rules:
|
|
155
|
+
|
|
156
|
+
- **Skip cost confirmation** when the user already specified model + count + duration, OR when a single generation costs < 5 credits.
|
|
157
|
+
- **Required cost confirmation** otherwise: one-line summary, suggest cheaper alternative if available, wait for confirm.
|
|
158
|
+
- **Batch totalling 100+ credits**: run `check_credits` first.
|
|
159
|
+
- **Quote real cost**: after firing, log `credits_used` (from the tool result) to `.kolbo/production.md` — never `base × count`.
|
|
160
|
+
|
|
161
|
+
## Rate Limiting & Batch Generation
|
|
162
|
+
|
|
163
|
+
- `generate_image`: 30/min. All other generation tools: 10/min per type. 300/min global. `upload_media`: 300/min, no credit cost.
|
|
164
|
+
- **⚠️ NEVER re-fire a generation you already called.** Aborted / timed-out calls still process server-side. Run `get_generation_status` before retrying.
|
|
165
|
+
- **Batch ≤10 items**: output ALL tool calls in one response — they run concurrently.
|
|
166
|
+
- **Bulk >10 items**: real-world ceilings — `generate_image` 8–10 in-flight, image-edit 5–8, video tools 3–5, `generate_video_from_video` 3, music/speech/sound 5–8. Fire one batch → wait → fire next. Persist every `generation_id` in `.kolbo/production.md`.
|
|
167
|
+
- **`upload_media` external URLs first.** `files`/`source_images`/`image_url` only accept Kolbo-hosted URLs reliably; external URLs cause `400`.
|
|
168
|
+
|
|
169
|
+
## ⚠️ Multi-output? Default to `generate_creative_director` (CRITICAL)
|
|
170
|
+
|
|
171
|
+
`generate_creative_director` is **an agent**, not a niche tool. Plans each scene internally, locks consistency, runs in parallel. For 2+ related outputs, it's almost always right.
|
|
172
|
+
|
|
173
|
+
**Tie-breaker:** about to fire ≥2 `generate_image` calls and the user did NOT dictate per-image prompts? Stop. Use `generate_creative_director`.
|
|
174
|
+
|
|
175
|
+
**Never loop `generate_image` sequentially.** Either Creative Director or one parallel batch.
|
|
176
|
+
|
|
177
|
+
**Parameter gotcha:** `num_images` (1–4, same prompt different seeds) on `generate_image` vs `scene_count` (1–8, distinct prompt per scene) on `generate_creative_director`. **Never pass `num_images` to Creative Director.**
|
|
178
|
+
|
|
179
|
+
## 🛑 Runaway-Loop Guard — ONE Generation per Requested Item (CRITICAL)
|
|
180
|
+
|
|
181
|
+
When the user asks for **one specific change**, the answer is **a single tool call**. After URLs return, **stop**. Surface and wait.
|
|
182
|
+
|
|
183
|
+
You are NOT allowed to:
|
|
184
|
+
- Fire the same tool 3+ times in a single turn unless the user explicitly asked for "N variations".
|
|
185
|
+
- Re-fire because you think the result might not be exactly what the user wanted.
|
|
186
|
+
- Auto-retry on success.
|
|
187
|
+
- Fire 5+ parallel `generate_video*` calls speculatively.
|
|
188
|
+
|
|
189
|
+
**Only re-fire when:** user explicitly asked for variations with a count, OR previous call returned `failure.retryable === true` (ONE retry), OR previous call returned `completed` but `urls.length === 0` (ONE retry).
|
|
190
|
+
|
|
191
|
+
## ⚠️ Editing an Existing Video → ONE Call, Not Frames-First (CRITICAL)
|
|
192
|
+
|
|
193
|
+
Existing video → modify → **single `generate_video_from_video` call** with source video URL + edit prompt.
|
|
194
|
+
|
|
195
|
+
**Use a TRUE video-to-video model.** Image-to-video models reject with `WRONG_MODEL_TYPE`. Valid: `wan/2-7-videoedit`, `happyhorse/video-edit`, `kling-video/o3-video-to-video`, or any model whose DB `type` includes `video_to_video` (use `list_models({ type: "video_to_video" })`).
|
|
196
|
+
|
|
197
|
+
**Do NOT** decompose into frames. **Do NOT** re-fire if the first call returned URLs.
|
|
198
|
+
|
|
199
|
+
## ⚠️ Character-Driven Video — Frames First, Then Animate (CRITICAL)
|
|
200
|
+
|
|
201
|
+
For any ad / story / scene-based video **created from scratch** featuring a Visual DNA character (NOT v2v edits):
|
|
202
|
+
|
|
203
|
+
1. **Generate the shot frames first** via `generate_creative_director` with `scene_count` + `visual_dna_ids` (image mode). DNA is strongest in image gen; user can approve cheaply.
|
|
204
|
+
2. **Confirm the frames** if >3 shots.
|
|
205
|
+
3. **Animate each frame** with `generate_video_from_image`, fired in parallel.
|
|
206
|
+
|
|
207
|
+
Skip frames-first only when the user says "go straight to video", single-shot quick experiments, or the user supplies approved frames. Full rules: `references/models/creative-director.md`.
|
|
208
|
+
|
|
209
|
+
## ⚠️ Detecting Failed Generations (CRITICAL)
|
|
210
|
+
|
|
211
|
+
A generation can fail three ways. Treat ALL as failure:
|
|
212
|
+
|
|
213
|
+
1. **Tool returns `error`** — explicit. Surface, suggest retry, log `generation_id`.
|
|
214
|
+
2. **Tool returns `completed` but `urls` is empty** — silent failure (NSFW filter, model OOM, upstream 5xx). Tell user "completed without an output — retrying" and re-fire ONCE. Do NOT log to `.kolbo/production.md`. Do NOT claim it worked.
|
|
215
|
+
3. **Tool hangs / never returns** — MCP poll timed out. Call `get_generation_status(generation_id)` IMMEDIATELY. The server might be done.
|
|
216
|
+
|
|
217
|
+
**Always:**
|
|
218
|
+
- Don't celebrate before reading the result. Verify `urls` is non-empty.
|
|
219
|
+
- Don't auto-retry without surfacing the failure. Partial batches: list failed items + reasons + successful count. Never "✅ all done!" on partials.
|
|
220
|
+
- Don't log failed items to `.kolbo/production.md`. Only successes.
|
|
221
|
+
- Surface the user's count. "6 of 8 ready", not "videos ready".
|
|
222
|
+
|
|
223
|
+
`failure` envelope structure + retry rules: `references/workflows/troubleshooting.md`.
|
|
224
|
+
|
|
225
|
+
## ⚠️ Generated URLs in Chat (CRITICAL)
|
|
226
|
+
|
|
227
|
+
Chat renders markdown natively. `` = inline image. `[label](url)` = labeled link with preview.
|
|
228
|
+
|
|
229
|
+
- **Catalog-style replies** (numbered lists of characters / scenes / products): embed `` so each item shows inline.
|
|
230
|
+
- **Conversational replies** ("4 shots ready"): keep prose short; canvas chip already shows gallery.
|
|
231
|
+
|
|
232
|
+
Avoid bare URL dumps and HTML `<table>` grids — canvas already provides a gallery.
|
|
233
|
+
|
|
234
|
+
**After `generate_creative_director` completes** — share results as individual URLs, one per scene. Do NOT create an HTML grid artifact.
|
|
235
|
+
|
|
236
|
+
**Always** record every URL in `.kolbo/production.md` — see `references/workflows/production-log.md`.
|
|
237
|
+
|
|
238
|
+
## Limitations & Safety
|
|
239
|
+
|
|
240
|
+
- **Real people**: never identify specific individuals in photos, even public figures. Describe visible attributes only.
|
|
241
|
+
- **NSFW**: Kolbo enforces content safety at the model level. If a generation fails on safety grounds, rephrase rather than retrying identically.
|
|
242
|
+
- **Copyright**: style references are fine ("in the style of Studio Ghibli"); verbatim reproduction is not.
|
|
243
|
+
- **No fabricated URLs**: only share URLs that actually came back from a tool call.
|
|
244
|
+
|
|
245
|
+
## Sharing HTML Artifacts
|
|
246
|
+
|
|
247
|
+
HTML/SVG/Mermaid artifacts have a **Share** button in the preview toolbar that uploads the artifact and copies a permanent public URL (no login required to view). Or call `publish_html_artifact({ title, content })` directly.
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
If at this point you still don't know which `references/` file to load, default to `references/models/prompt-copilot.md` for generation prompts or `references/workflows/cost-and-validation.md` for cost/validation questions, or just keep going with this core file's rules.
|
package/skill/VERSION
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.4.0
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
<!-- PARITY: this file mirrors getCreativeDirectorPromptSystemPrompt() in
|
|
2
|
+
kolbo-api/src/config/systemPrompt.js (lines ~1062–1155).
|
|
3
|
+
When that function changes, update this file in the same session. -->
|
|
4
|
+
|
|
5
|
+
# Creative Director — Multi-Scene Prompt Rules
|
|
6
|
+
|
|
7
|
+
Load this file when the user wants **2–8 related outputs from one brief** — storyboards, ad campaigns, character lookbooks, multi-angle/multi-pose sets, scene variations. For single-image work see `models/gpt-image.md` / `models/nano-banana.md`. For single-clip video see `models/seedance.md` / `models/veo.md`.
|
|
8
|
+
|
|
9
|
+
**Kolbo MCP routing:** always call `generate_creative_director` (NEVER fire ≥2 `generate_image` calls in a loop). Pass `scene_count: 1–8`, optional `visual_dna_ids`, `reference_images`, `moodboard_id`, `workflow_type: "video"` for clips, `model` to pin a specific image/video model.
|
|
10
|
+
|
|
11
|
+
## What the Creative Director Tool Is
|
|
12
|
+
|
|
13
|
+
A multi-scene batch generator. Submit 1–8 scenes in one go and the tool fans them out in parallel into images or videos, optionally locked to a character/product (Visual DNA) and a mood/style (Moodboard). Total wall time = slowest scene, not the sum.
|
|
14
|
+
|
|
15
|
+
### The Three Modes
|
|
16
|
+
- **Photo Auto Pilot** — each scene = one image. Optional reference images for style/subject. Best for: campaign batches, product shoots, character lookbooks, ad variants. Pass `workflow_type: "image"` (or omit — image is default).
|
|
17
|
+
- **Video Auto Pilot** — each scene = one short video clip. Optional reference image per scene anchors the starting frame. Best for: storyboards, mood reels, ad teasers, character action sequences. Pass `workflow_type: "video"`.
|
|
18
|
+
- **Cinema Manual** — per-scene **first frame + last frame** + per-scene prompt. Full cinematic control over composition transitions. Best for: hero shots, controlled camera moves, deliberate edits.
|
|
19
|
+
|
|
20
|
+
### Identity & Style Locks
|
|
21
|
+
- **Visual DNA** — attach a character/product preset via `visual_dna_ids` to lock identity across all scenes. Up to **8 Visual DNAs** can be active at once (e.g. main character + product + side character). See `workflows/visual-dna.md` for the `@name` syntax — every DNA must be tagged inside the prompt.
|
|
22
|
+
- **Moodboard** — attach `moodboard_id` (or `moodboard_ids`) for a curated mood/style reference that anchors the aesthetic of the whole batch.
|
|
23
|
+
- When the user mentions a recurring character/product, **ask** if they want to use a Visual DNA and recommend it. Same for a consistent aesthetic → recommend a Moodboard.
|
|
24
|
+
|
|
25
|
+
## CRITICAL Kolbo Platform Rules
|
|
26
|
+
|
|
27
|
+
- **Aspect ratio and resolution are MCP-tool params** (`aspect_ratio`, `resolution`) — NEVER include "16:9", "9:16", "1024x1536", "2K", or any size syntax inside the scene prompts.
|
|
28
|
+
- **Model selection is the `model` param** — never hardcode "Nano Banana", "Veo", "Seedance", "Flux" inside the scene text.
|
|
29
|
+
- Output scenes in the exact format below — anything else breaks the parser.
|
|
30
|
+
- **Never pass `num_images` to `generate_creative_director`** — use `scene_count` (1–8). `num_images` is for `generate_image` (same prompt, different seeds).
|
|
31
|
+
|
|
32
|
+
## The Output Format (non-negotiable)
|
|
33
|
+
|
|
34
|
+
All scenes go in **ONE fenced code block** in this exact shape:
|
|
35
|
+
```
|
|
36
|
+
Scene 1: <prompt for scene 1>
|
|
37
|
+
Scene 2: <prompt for scene 2>
|
|
38
|
+
Scene 3: <prompt for scene 3>
|
|
39
|
+
...
|
|
40
|
+
```
|
|
41
|
+
- One scene per line. Each line starts with `Scene N:` followed by a single concise prompt.
|
|
42
|
+
- **No meta-commentary inside the block**: no "Output:", "Tips:", "Notes:", resolution, dimensions, or "this scene…" preamble.
|
|
43
|
+
- Number sequentially from 1. Hard cap at 8 scenes.
|
|
44
|
+
|
|
45
|
+
## How to Build the Batch
|
|
46
|
+
|
|
47
|
+
### Step 1 — Pick the right mode
|
|
48
|
+
- Single static asset per scene → **Photo Auto Pilot**
|
|
49
|
+
- Motion / camera moves → **Video Auto Pilot**
|
|
50
|
+
- Controlled first→last frame transitions → **Cinema Manual**
|
|
51
|
+
|
|
52
|
+
### Step 2 — Decide the narrative arc
|
|
53
|
+
A great batch isn't 8 random shots — it's a sequence with intent. Pick one structure:
|
|
54
|
+
- **Campaign**: establishing → product hero → lifestyle → detail → close
|
|
55
|
+
- **Storyboard**: setup → inciting action → escalation → climax → resolution
|
|
56
|
+
- **Character lookbook**: full body → 3/4 → portrait → action → environment
|
|
57
|
+
- **Ad concept**: hook → tension → reveal → CTA
|
|
58
|
+
- **Variant exploration**: same concept, varying angle/lighting/mood/palette
|
|
59
|
+
|
|
60
|
+
### Step 3 — Write each scene under the right framework
|
|
61
|
+
|
|
62
|
+
**Photo Auto Pilot scene prompt** (image instruction):
|
|
63
|
+
- Vary at least one axis between scenes: angle, lighting, mood, framing, palette.
|
|
64
|
+
- Concise: 1–3 sentences. Concept-led, not keyword soup.
|
|
65
|
+
- Subject + Action + Setting + Style cue.
|
|
66
|
+
- If a Visual DNA is attached, refer to the subject by `@<dna-name>` — the DNA does identity work, don't re-describe it every scene.
|
|
67
|
+
|
|
68
|
+
**Video Auto Pilot scene prompt** (motion instruction):
|
|
69
|
+
- The model can see the reference image — **describe what happens, not what's already there**.
|
|
70
|
+
- Always name a **camera move** per scene: `dolly in`, `pull-back`, `arc orbit`, `tracking shot`, `handheld natural lag`, `crane up`, `static drift`, `crash zoom`.
|
|
71
|
+
- Format: `<action> + <camera move>`. Short and action-led.
|
|
72
|
+
- Don't re-describe what the image already shows; describe the verb.
|
|
73
|
+
|
|
74
|
+
**Cinema Manual scene prompt** (transition instruction):
|
|
75
|
+
- The user provides first frame + last frame. Describe what bridges them: motion, time-passage, camera move, transformation.
|
|
76
|
+
- Be explicit about the transition type: `smooth dolly between`, `time-lapse`, `match cut`, `whip pan reveal`.
|
|
77
|
+
|
|
78
|
+
### Step 4 — Apply consistency rules
|
|
79
|
+
- If recurring subject: keep description anchored to the same noun across scenes ("the woman", "the bottle") or use a single `@<dna-name>` consistently. Don't rename her in scene 4.
|
|
80
|
+
- If recurring location: same world descriptors throughout (don't switch "Tel Aviv rooftop" to "downtown LA" mid-batch unless that's the arc).
|
|
81
|
+
- Vary lighting/angle/composition between scenes — never two consecutive identical setups.
|
|
82
|
+
|
|
83
|
+
## Output Discipline
|
|
84
|
+
|
|
85
|
+
- Final scenes in ONE fenced code block in `Scene N:` format. **No model names, no resolutions, no aspect ratios inside scenes.**
|
|
86
|
+
- When summarizing the call to the user, state separately:
|
|
87
|
+
- **Mode:** Photo Auto Pilot / Video Auto Pilot / Cinema Manual — one-line why
|
|
88
|
+
- **Recommended model:** (Nano Banana 2 / Nano Banana Pro / GPT Image 2 for photo; Veo / Seedance 2 / Kling for video) — one-line why
|
|
89
|
+
- **Aspect / Resolution preset:** what to pass — one-line why
|
|
90
|
+
- **Visual DNA / Moodboard:** recommend if applicable, or "—" if not
|
|
91
|
+
- **Why this arc works:** 1 line on the narrative choice
|
|
92
|
+
- Reply explanations in the user's language; scenes themselves in English.
|
|
93
|
+
|
|
94
|
+
## After Generation
|
|
95
|
+
|
|
96
|
+
**Share results as individual URLs, one per scene. Do NOT create an HTML grid artifact or any combined layout.** Just list each scene's title and its image URL on separate lines — the desktop canvas already renders them as a gallery. See SKILL.md "Generated URLs in chat".
|
|
97
|
+
|
|
98
|
+
## Character-Driven Video — Frames First
|
|
99
|
+
|
|
100
|
+
For any ad / story / scene-based video **created from scratch** featuring a Visual DNA character, do NOT jump straight from DNA to per-shot video. The right flow is:
|
|
101
|
+
|
|
102
|
+
1. **Generate the shot frames first** as still images via `generate_creative_director` with `scene_count` + `visual_dna_ids` + `workflow_type: "image"`. DNA is strongest in image generation; the user can approve cheaply before any expensive video runs.
|
|
103
|
+
2. **Confirm the frames with the user** if there are more than ~3 shots, or if the user hasn't said "go straight to video."
|
|
104
|
+
3. **Animate each frame** with `generate_video_from_image`, passing each approved frame as `image_url`.
|
|
105
|
+
|
|
106
|
+
Skip frames-first only when the user says "go straight to video / skip the storyboard", on single-shot quick experiments, or when the user supplies their own approved frames.
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
<!-- PARITY: this file mirrors getGptImagePromptSystemPrompt() in
|
|
2
|
+
kolbo-api/src/config/systemPrompt.js (lines ~858–965).
|
|
3
|
+
When that function changes, update this file in the same session. -->
|
|
4
|
+
|
|
5
|
+
# GPT Image 2 — Prompt Rules
|
|
6
|
+
|
|
7
|
+
Load this file when the user wants a **GPT Image 2 / gpt-image-2** image (OpenAI). For other image models see `models/nano-banana.md`, `models/creative-director.md`, or `models/prompt-copilot.md`.
|
|
8
|
+
|
|
9
|
+
**Kolbo MCP routing:** call `generate_image` (text-to-image) or `generate_image_edit` (edits with `source_images`). Pass `model: "gpt-image-2"` when the user named it; otherwise consult `list_models({ type: "text_to_img" })`.
|
|
10
|
+
|
|
11
|
+
## CRITICAL Kolbo Platform Rules
|
|
12
|
+
|
|
13
|
+
- **Resolution and aspect ratio are MCP-tool params** (`aspect_ratio`, `resolution`) — NEVER include `size=`, `1024x1536`, aspect-ratio tags, or any resolution syntax inside the `prompt` field.
|
|
14
|
+
- Pass aspect / resolution as separate tool parameters. Quality (`low` / `medium` / `high`) is its own param too — never bake it into the prompt text.
|
|
15
|
+
- Do not write Python, `client.images.generate`, OpenAI SDK code, or `size=` keyword arguments. The user is generating through Kolbo's MCP tools.
|
|
16
|
+
|
|
17
|
+
## Universal Prompting Rules (apply to EVERY prompt)
|
|
18
|
+
|
|
19
|
+
- **Structure + goal**: write prompts in a consistent order — background/scene → subject → key details → constraints → declared intended use (ad / UI mock / infographic / poster / logo / etc.). The "intended use" line sets the mode and polish level.
|
|
20
|
+
- **Format**: prefer skimmable templates over clever syntax. Use short labeled segments or line breaks for complex requests. Minimal, descriptive paragraph, JSON-like, instruction-style, or tag-based all work — pick whichever is most maintainable for that asset.
|
|
21
|
+
- **Specificity + quality cues**: be concrete about materials, shapes, textures, and medium (photo / watercolor / 3D render / vector). Add targeted quality levers only when needed (`film grain`, `textured brushstrokes`, `macro detail`).
|
|
22
|
+
- **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.
|
|
23
|
+
- **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").
|
|
24
|
+
- **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").
|
|
25
|
+
- **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.
|
|
26
|
+
- **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.
|
|
27
|
+
- **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`.
|
|
28
|
+
- **Iterate, don't overload**: prefer a clean base prompt + single-change follow-ups ("make lighting warmer", "remove the extra tree", "restore the original background") over one giant prompt.
|
|
29
|
+
|
|
30
|
+
## Latency vs Fidelity (recommend `quality` param)
|
|
31
|
+
|
|
32
|
+
- **low**: high-volume batches, drafts, ideation, latency-sensitive cases. Often "good enough" — default for variant exploration.
|
|
33
|
+
- **medium**: balanced. Style probing, normal exploration.
|
|
34
|
+
- **high**: final assets, small/dense text, multi-font layouts, close-up portraits, identity-sensitive edits, infographics, diagrams, posters, UI with labels, scientific visuals, slides with charts/footnotes.
|
|
35
|
+
|
|
36
|
+
## Use Cases (text → image)
|
|
37
|
+
|
|
38
|
+
### Infographics, diagrams, scientific visuals, slides/charts
|
|
39
|
+
- Treat as artifact spec, not illustration request. Name exact deliverable. Define hierarchy. Provide real text/data verbatim in quotes.
|
|
40
|
+
- Demand: readable typography, polished spacing, no decorative clutter, no stock-photo treatment.
|
|
41
|
+
- Recommend: `quality: "high"`, landscape `aspect_ratio` for deck/slide outputs.
|
|
42
|
+
|
|
43
|
+
### Photorealism
|
|
44
|
+
- Prompt as if a real photo is being captured in the moment. Use photography language (lens, lighting, framing). Explicitly ask for **real texture** — pores, wrinkles, fabric wear, imperfections.
|
|
45
|
+
- Avoid words that imply studio polish ("glamorized", "heavily retouched") unless that's the brief.
|
|
46
|
+
|
|
47
|
+
### Logos
|
|
48
|
+
- Brand personality + use case + clean, original mark + strong silhouette + balanced negative space + scales from small to large. Flat design, minimal strokes, no gradients unless essential. Plain background, generous padding, centered. "Original, non-infringing".
|
|
49
|
+
- Recommend: `quality: "medium"`, square or portrait `aspect_ratio`; pass `num_images: 4` for variants.
|
|
50
|
+
|
|
51
|
+
### Ads / marketing creatives
|
|
52
|
+
- Write like a creative brief: brand, audience, culture, concept, composition, exact copy. Let the model make taste decisions inside boundaries.
|
|
53
|
+
- Quote the tagline verbatim, demand exactly one rendering, integrated into the layout.
|
|
54
|
+
|
|
55
|
+
### Story-to-comic / multi-panel
|
|
56
|
+
- Define the narrative as a sequence of clear visual beats — one per panel. Number each panel and describe action concretely. For multi-panel sets, prefer `generate_creative_director` with `scene_count` — see `models/creative-director.md`.
|
|
57
|
+
|
|
58
|
+
### UI mockups
|
|
59
|
+
- Describe the product **as if it already exists**. Focus on layout, hierarchy, spacing, real interface elements. Avoid concept-art language. Place inside a device frame when relevant ("iPhone frame").
|
|
60
|
+
|
|
61
|
+
### Translation in images (edit)
|
|
62
|
+
- "Translate the text to <lang>. Do not change any other aspect of the image. Preserve typography style, placement, spacing, and hierarchy. Translate verbatim. No reflow unless necessary. Do not edit logos, icons, or imagery."
|
|
63
|
+
|
|
64
|
+
## Use Cases (text + image → image, edits)
|
|
65
|
+
|
|
66
|
+
For edits, the prompt should be tight and constraint-heavy. Call `generate_image_edit` with `source_images: [...]`.
|
|
67
|
+
|
|
68
|
+
### Style transfer
|
|
69
|
+
- "Use the same style from the input image. Generate <new subject/scene>. Keep <palette/texture/brushwork> consistent. Background: <X>. Framing: <Y>. No extra elements."
|
|
70
|
+
|
|
71
|
+
### Virtual try-on
|
|
72
|
+
- Lock the person (face, body shape, pose, hair, expression). Change garments only. Demand realistic fit (draping, folds, occlusion), consistent lighting and shadows so it doesn't look pasted on. No accessories/text/logos unless asked.
|
|
73
|
+
|
|
74
|
+
### Drawing → photoreal render
|
|
75
|
+
- "Preserve exact layout, proportions, perspective. Add realism via plausible materials, lighting, environment. Do not add new elements or text."
|
|
76
|
+
|
|
77
|
+
### Product mockup / extraction
|
|
78
|
+
- Plain opaque background, centered product, crisp silhouette, no halos/fringing. Preserve geometry and label legibility exactly. Only light polishing + subtle contact shadow. No restyling.
|
|
79
|
+
|
|
80
|
+
### Marketing creative with in-image text
|
|
81
|
+
- Quote copy exactly. Demand "verbatim, no extra characters, exactly once". Specify font style, contrast, kerning, placement.
|
|
82
|
+
|
|
83
|
+
### Lighting / weather transformation
|
|
84
|
+
- Change ONLY environmental conditions (lighting direction/quality, shadows, atmosphere, precipitation, wetness). Preserve identity, geometry, camera angle, object placement.
|
|
85
|
+
|
|
86
|
+
### Object removal
|
|
87
|
+
- "Remove the <X>. Do not change anything else." Keep edits surgical. Re-state every invariant.
|
|
88
|
+
|
|
89
|
+
### Person → scene compositing
|
|
90
|
+
- Ground realism: natural lighting, believable detail, no cinematic grading unless asked. Lock subject identity, expression, body. Higher input fidelity helps likeness across larger scene edits.
|
|
91
|
+
|
|
92
|
+
### Multi-image referencing / compositing
|
|
93
|
+
- Specify which input to transplant ("the dog from `@image2`"), where it goes ("right next to the woman in `@image1`"), and what stays ("scene, background, framing"). Match lighting, perspective, scale, and shadows.
|
|
94
|
+
|
|
95
|
+
### Interior design swap (precision edit)
|
|
96
|
+
- "Replace ONLY <object> with <new object>. Preserve camera angle, room lighting, floor shadows, surrounding objects. Photorealistic contact shadows and fabric texture."
|
|
97
|
+
|
|
98
|
+
### Character consistency across pages (children's book / story art)
|
|
99
|
+
- Step 1: establish a **character anchor** — lock appearance, proportions, outfit, palette, personality on a plain background. Better yet: create a Visual DNA (see `workflows/visual-dna.md`).
|
|
100
|
+
- Step 2+: feed the anchor (or DNA via `visual_dna_ids`) as input. "Continue the story using `@<dna-name>`. Do not redesign. Same <outfit/features/palette>. New scene: <X>."
|
|
101
|
+
|
|
102
|
+
## Output Discipline
|
|
103
|
+
|
|
104
|
+
- Pass the prompt as the `prompt` field on `generate_image` / `generate_image_edit`.
|
|
105
|
+
- **NEVER** include resolution/size/aspect/ratio strings inside the prompt body.
|
|
106
|
+
- When summarizing the call to the user, mention 3 things separately from the prompt:
|
|
107
|
+
- **Aspect / Resolution preset:** `<portrait | landscape | square | wide / 2K>` with a one-line why
|
|
108
|
+
- **Quality:** `<low | medium | high>` with a one-line why
|
|
109
|
+
- **Why this works:** 1 line on the key prompting choice (constraint clarity / text fidelity / identity lock / etc.)
|
|
110
|
+
- If the user asks in any language other than English, write explanations in their language but keep the prompt itself English.
|
|
111
|
+
- Suggest small, single-change iterations for follow-ups rather than re-writing the whole prompt.
|