MyReels Storyboard Design Tool
Integration with myreels-api
CODEBLOCK0
Important: This skill handles storyboard design. After completion, guide the user to use myreels-api skill for actual image and video generation.
Complete Workflow
CODEBLOCK1
Step 1: Collect User Requirements
Collect the following information:
| Question | Options |
|---|
| Story content | Plot outline or full script |
| Video style |
cinematic / anime / 3d cartoon / realistic |
| Duration | e.g., 60 seconds, 2 minutes |
| Shot count | e.g., 10-15 shots |
| Aspect ratio | 16:9 / 9:16 / 1:1 (vertical = 9:16) |
| Has dialogue | Yes / No |
After collecting inputs:
- - Use the current OpenClaw session's default LLM to understand the story semantically
- Infer core roles, recurring relationships, and phase-by-phase visual beats from the user's actual plot, not only from surface keywords
- Do not ask the user to configure an extra LLM just to use this skill
- Do not rely on a bundled local storyboard script for core planning; OpenClaw should draft the CSVs directly
- The old helper
scripts/generate_storyboard.py is deprecated and should not be referenced in this workflow
Step 2: Character Design (Important!)
Before shot design, establish character consistency using a three-view character sheet (三视图).
Default rule:
- - Treat character design as a
single-image turnaround sheet, not as a poster - The first-pass deliverable should show the same character's
front view, side view, and back view on one canvas - Keep outfit, body shape, hairstyle, and accessories identical across all three views
- Use full-body neutral standing pose and a plain background unless the user asks otherwise
- Recommend
nano-banana2 first for generating the base three-view character sheet - Prefer a
character-first workflow: approve the character sheet and tags first, then generate storyboard shots with those tags injected
Character Design Fields
| Field | Description |
|---|
| INLINECODE8 | Character name |
| INLINECODE9 |
Role in story, e.g. protagonist / opponent / companion |
|
relation_to_main | Relationship to the main character, e.g. self / conflict / ally / romance |
|
appearance | Physical description (hair, eyes, face, build) |
|
outfit | Clothing and accessories |
|
personality | Key personality traits |
|
reference_model | Base model for the first turnaround sheet, default
nano-banana2 |
|
single_image_turnaround_prompt | Main English prompt for one-sheet front/side/back generation |
|
front_view | English description for front view |
|
side_view | English description for side view |
|
back_view | English description for back view |
|
character_tags | Consistency tags for AI prompts (e.g., "short hair, left face mole, red earrings") |
|
negative_prompt | Terms to suppress poster-like, inconsistent, or cropped outputs |
Three-View Diagram Output
Generate character descriptions for AI image generation. The output should be structured for a single image containing all three views:
CODEBLOCK2
Prompt rule:
- - The
single_image_turnaround_prompt must front-load the layout requirement: one image, same character, front view, side view, back view, INLINECODE28 - Do not output three unrelated portrait prompts as the default character design result
- Only add expression sheets, weapons, or alternate outfits after the base three-view sheet is approved
Character Consistency
For each character, build a character tag library that will be reused in all shot prompts:
CODEBLOCK3
Character-First Mode
Recommended operating mode:
- - Generate
characters.csv first - Generate
relationships.csv for recurring character pairs - Lock the main character's
single_image_turnaround_prompt, negative_prompt, and INLINECODE33 - Only define extra character rows when the story actually implies them; do not invent an
opponent, love_interest, or companion just because the genre suggests one - Reuse the approved
character_tags in every INLINECODE38 - Treat the first approved character row as the anchor for downstream storyboard drafts
- In multi-character stories, inject only the characters relevant to each shot phase instead of dumping everyone into every prompt
- Build
relationships.csv as a pairwise matrix for all recurring character pairs, not only protagonist-centered pairs - Reuse
relationship_type and prompt_hint when designing confrontation, ally, or romance shots - Also use
visual_relation, emotional_relation, and blocking_pattern to keep staging and mood consistent across repeated pair shots - Let
relationship_type bias the default shot language: conflict leans toward low-angle / confrontational framing, ally toward cooperative full shots, romance toward closer eye-level coverage - Let
theme bias the baseline shot rhythm too: action leans kinetic, romance leans intimate, thriller leans uneasy, sci-fi leans scale/discovery - In scenes with 3+ recurring characters, choose the active pair/group per shot based on the current beat; do not force every established relationship into every shot
Default OpenClaw behavior:
- - The skill should use the active OpenClaw default LLM to draft
characters.csv, relationships.csv, and INLINECODE49 - The CSVs should reflect narrative understanding, not just mechanical keyword expansion
- Keep CSV column names stable in English, but make user-facing cell values follow the user's language whenever possible
- Keep AI-facing prompt fields in English for cross-model portability:
single_image_turnaround_prompt, negative_prompt, front_view_prompt, side_view_prompt, back_view_prompt, character_tags, prompt_hint, and INLINECODE57 - Keep IDs and machine-oriented codes stable:
character_id, relationship_id, shot_id, INLINECODE61 - INLINECODE62 should preserve concrete story specifics from the user's outline in English, including names, props, locations, and beat-specific actions
- INLINECODE63 and
action should vary shot by shot; avoid repetitive generic phase labels when a more specific beat description is available - For mixed-language input, keep
description in the dominant user language; if no dominant language is clear, follow the user's most recent instruction language - If a downstream automation flow later needs normalized English enum values, create a secondary English export instead of replacing the user-facing review CSV
Step 3: Generate Storyboard
Shot Structure
Each shot includes these fields:
| Field | Description |
|---|
| INLINECODE66 | Scene + Shot number (e.g., S01-01) |
| INLINECODE67 |
Shot size |
|
camera_angle | Camera angle |
|
movement | Camera movement |
|
duration | Estimated seconds (2-5s typical) |
|
description |
User language description - brief summary in user's input language (Chinese/Japanese/English). NOT used for AI generation. |
|
visual_prompt | English prompt for AI image generation |
|
action | Character action description |
|
dialogue | Dialogue/voiceover (optional) |
|
emotion | Target audience emotion |
|
sound_fx | Sound effects / music cues (optional) |
|
notes | Additional notes |
|
difficulty | 🟢 simple / 🟡 medium / 🔴 complex |
|
image_url | Generated image URL from downstream tool (optional) |
|
video_url | Generated video URL from downstream tool (optional) |
|
status | Workflow status in the user's language for review CSVs; normalize in the English export if needed |
Shot Type Reference
| Type | Chinese | Use Case |
|---|
| Extreme Close-up / ECU | 大特写 | Key detail, extreme emotion |
| Close-up / CU |
特写 | Face, key object |
| Medium Close-up / MCU | 中近景 | Dialogue, slight conflict |
| Medium / MS | 中景 | Conversation, interaction |
| Full Shot / FS | 全景 | Full body, relationship |
| Wide / WS | 远景 | Environment, establishing |
Camera Angles & Psychology
| Angle | Emotion Implication |
|---|
| Eye-level | Neutral, objective |
| Low-angle (仰视) |
Power, authority, threat |
| High-angle (俯视) | Vulnerability, submission |
| Dutch | Unease, tension, chaos |
| POV | Subjective, immersion |
| Tilted | Unstable, danger |
Camera Movement
- - Fixed / Static
- Dolly In (推近) / Dolly Out (拉远)
- Pan (摇镜) / Tilt (倾斜)
- Follow / Tracking (跟拍)
- Orbit (环绕) / Crane (升降)
- Handheld (手持) / Breath-like (呼吸感)
Shot Difficulty Grading
| Grade | Icon | Description |
|---|
| Simple | 🟢 | Fixed camera, single subject, no complex interaction |
| Medium |
🟡 | Light camera movement, dual subject, simple effects |
| Complex | 🔴 | Fast motion, multiple subjects, complex choreography, special lighting/particles |
Emotion Mapping
Each shot must specify target emotion:
| Emotion | Key | Description |
|---|
| Hook | 钩子 | Attention grab |
| Tension |
紧张 | Building suspense |
| Conflict | 冲突 | Confrontation |
| Sweet | 甜宠 | Romance, warmth |
| Twist | 反转 | Surprise |
| Climax | 高潮 | Peak emotional moment |
| Release | 释然 | Resolution |
Step 4: AI Prompt Engineering
Prompt Structure
CODEBLOCK4
Prompt design rule for this skill:
- -
single_image_turnaround_prompt should use layout-first language for INLINECODE83 - INLINECODE84 should carry
theme + phase cues so action / romance / thriller / sci-fi drafts do not collapse into the same generic shot language
Required Quality Tags
Always include:
- - INLINECODE87
- INLINECODE88 or INLINECODE89
- INLINECODE90 or INLINECODE91
- INLINECODE92
Control Tags
If needed, add:
- -
no text / no watermark / INLINECODE95 - INLINECODE96 /
two-shot / INLINECODE98
Character Consistency in Prompts
Always inject character tags from Step 2:
CODEBLOCK5
Scene Consistency
Use scene code +固化环境描述:
CODEBLOCK6
Step 5: Output Confirmation
Multi-Platform Output
Feishu: Use feishu_bitable for online editing
Telegram: Formatted text table or CSV attachment
Other: Default to CSV
Storyboard Table Fields
CODEBLOCK7
Note:
- - The CSV headers stay in English for schema stability
- Human-facing values in all three CSVs should follow the user's language
- The
visual_prompt field is always in English for AI image generation - If automation needs English enums such as
shot_type, camera_angle, movement, emotion, difficulty, or status, write a separate English export copy instead of mutating the review CSV
Step 5A: Project Workspace Management
When this skill writes files, it should automatically create a project workspace in the user's current working directory or requested output directory.
Default root pattern:
CODEBLOCK8
Recommended structure:
CODEBLOCK9
Workspace rules:
- - Do not write user project artifacts back into the skill definition folder itself
- Create the project root before saving the first CSV, markdown note, image, or video
- Save editable drafts under INLINECODE106
- After user confirmation, freeze a copy under the matching
approved/ folder instead of overwriting history - Save character three-view turnaround images under INLINECODE108
- Move or copy user-confirmed character reference images into INLINECODE109
- Save storyboard shot images under INLINECODE110
- Save storyboard videos under INLINECODE111
- Move or copy user-confirmed storyboard media into the matching
approved/ media folder - For every myreels-api generation, save the exact request payload under INLINECODE113
- Save task lookup snapshots and task IDs under INLINECODE114
- Save response metadata under
metadata/, including model name, mode, aspect ratio, seed if available, source image references, created time, and returned URLs - Keep request / task / metadata filenames aligned with the output artifact name so reruns can reuse the same context
- Record major review decisions in INLINECODE116
- Summarize the final approved artifact set in INLINECODE117
Versioning rules:
- - Use file names like
characters.v1.draft.csv, storyboard.v2.draft.csv, INLINECODE120 - Use
*.approved.* for frozen user-confirmed files - When revising an approved artifact, create a new draft version instead of mutating the approved snapshot
- Put normalized program-facing CSV exports in
exports/ with names such as storyboard.program-en.csv and INLINECODE124 - Use aligned sidecar records such as
character-C001-turnaround.v1.request.json, character-C001-turnaround.v1.task.json, INLINECODE127 - Use the same pattern for storyboard shots and videos, for example
shot-S01-01.v2.request.json and INLINECODE129 - If the user already provided a target directory, follow it and only apply this structure inside that location
Re-run stability rules:
- - Before re-running a generation, read the latest matching request, task snapshot, and metadata files first
- Reuse the last approved prompt, model, aspect ratio, and source asset references unless the user explicitly asks to change them
- If the rerun changes any material parameter such as model, prompt, aspect ratio, seed, duration, or source image, write a new versioned request file instead of overwriting the old one
- In
review-log.md, note why the rerun happened and what changed relative to the previous attempt
Step 6: Guide to myreels-api
Guidance Message (Image Generation)
CODEBLOCK10
Guidance Message (Video Generation)
CODEBLOCK11
Step 7: Quality Control Checklist
For each shot, verify:
- - [ ] Character matches design (outfit, hair, facial features)
- [ ] Lighting direction consistent with scene light source
- [ ] Motion trajectory physically possible (no clipping, floating)
- [ ] Shot type serves narrative rhythm
- [ ] Safe zone reserved (vertical: top/bottom 20% no key elements for subtitles)
- [ ] Emotion matches intended audience feeling
Output Files
- -
characters.csv - Character design data - INLINECODE132 - Relationship matrix for recurring characters
- INLINECODE133 - Complete storyboard
- INLINECODE134 - Character CSV starter template
- INLINECODE135 - Relationship CSV starter template
- INLINECODE136 - Storyboard CSV starter template
- Character reference images (via myreels-api)
- Storyboard image URLs (via myreels-api)
- Project review notes and approved snapshots under the project workspace
- Request payloads, task snapshots, and response metadata for reproducible reruns
Notes
- -
visual_prompt must be in English with quality tags - User can input in Chinese / Japanese / English
- In the three CSVs, user-facing values should follow the user's language; only AI-facing prompt fields stay in English
- If the workflow needs machine-friendly English enums, generate a separate
*.program-en.csv export instead of changing the review CSV - Each shot: 2-5 seconds recommended
- Always establish character design before shot breakdown
- Use difficulty grading to manage AI generation expectations
- In OpenClaw, this skill should primarily rely on the active session model for story understanding and CSV drafting
- Do not require users to provide extra LLM credentials just to use this skill in OpenClaw
- No local storyboard-generation script is required; draft the CSVs natively in OpenClaw
- Automatically create a project workspace so drafts, approvals, images, videos, and markdown notes remain organized
- Persist generation requests and metadata so image/video reruns can stay stable
- See references/ for detailed guides
MyReels 故事板设计工具
与 myreels-api 集成
myreels-storyboard(故事板设计)
↓ 生成故事板 CSV
myreels-api(图像/视频生成)← 用户必须先安装此技能
重要提示:此技能负责故事板设计。完成后,引导用户使用 myreels-api 技能进行实际的图像和视频生成。
完整工作流程
- 1. 故事输入 → 用户提供情节大纲
- 故事理解 → 使用当前 OpenClaw 默认 LLM 理解情节、角色、关系和视觉节拍
- 角色设计 → 使用单图三视图转盘表(正面/侧面/背面)设计角色
- 镜头分解 → 生成结构化镜头
- 用户确认 → 输出 CSV + 平台表格
- 图像生成 → 引导用户使用 myreels-api
- 视频创建 → 引导用户使用 myreels-api(可选)
步骤 1:收集用户需求
收集以下信息:
电影感 / 动漫 / 3D 卡通 / 写实 |
| 时长 | 例如 60 秒、2 分钟 |
| 镜头数量 | 例如 10-15 个镜头 |
| 宽高比 | 16:9 / 9:16 / 1:1(竖屏 = 9:16) |
| 是否有对话 | 是 / 否 |
收集输入后:
- - 使用当前 OpenClaw 会话的默认 LLM 对故事进行语义理解
- 从用户的实际情节中推断核心角色、重复出现的关系和分阶段的视觉节拍,而不仅仅依赖表面关键词
- 不要要求用户配置额外的 LLM 来使用此技能
- 不要依赖捆绑的本地故事板脚本进行核心规划;OpenClaw 应直接起草 CSV
- 旧辅助脚本 scripts/generate_storyboard.py 已弃用,不应在此工作流中引用
步骤 2:角色设计(重要!)
在镜头设计之前,使用三视图角色表建立角色一致性。
默认规则:
- - 将角色设计视为 单图转盘表,而非海报
- 初版交付物应在同一画布上展示同一角色的 正面、侧面 和 背面
- 三个视图中的服装、体型、发型和配饰必须保持一致
- 除非用户另有要求,否则使用全身中立站立姿势和纯色背景
- 首先生成基础三视图角色表时推荐使用 nano-banana2
- 优先采用 角色优先 工作流:先批准角色表和标签,然后使用这些标签生成故事板镜头
角色设计字段
| 字段 | 描述 |
|---|
| charactername | 角色名称 |
| storyrole |
故事中的角色,例如 主角 / 对手 / 同伴 |
| relation
tomain | 与主角的关系,例如 自身 / 冲突 / 盟友 / 恋情 |
| appearance | 外貌描述(头发、眼睛、面部、体型) |
| outfit | 服装和配饰 |
| personality | 关键性格特征 |
| reference_model | 首个转盘表的基础模型,默认为 nano-banana2 |
| single
imageturnaround_prompt | 用于单图正面/侧面/背面生成的主要英文提示词 |
| front_view | 正面视图的英文描述 |
| side_view | 侧面视图的英文描述 |
| back_view | 背面视图的英文描述 |
| character_tags | AI 提示词的一致性标签(例如 短发,左脸有痣,红色耳钉) |
| negative_prompt | 用于抑制类似海报、不一致或裁剪输出的术语 |
三视图输出
生成用于 AI 图像生成的角色描述。输出应结构化为包含所有三个视图的单张图像:
角色:[名称]
故事角色:[主角 / 对手 / 同伴 / 恋爱对象]
与主角关系:[自身 / 冲突 / 盟友 / 恋情]
标签:[用于提示词注入的一致性标签]
参考模型:[通常首个三视图表使用 nano-banana2]
单图转盘提示词:[明确要求一张包含正面/侧面/背面全身视图的图像的英文提示词]
负面提示词:[用于布局偏移的英文抑制术语]
正面:[年龄] [种族] [性别],[发型],[眼睛],[体型],穿着[服装],中立站立姿势
侧面:同一角色的侧面轮廓,展示[特征特征 / 轮廓 / 配饰位置]
背面:同一角色的背面,展示[发型背面形状 / 服装背面细节 / 不对称性]
提示词规则:
- - singleimageturnaround_prompt 必须前置布局要求:一张图像、同一角色、正面视图、侧面视图、背面视图、从左到右对齐
- 不要将三个不相关的肖像提示词作为默认角色设计结果输出
- 只有在基础三视图表获得批准后,才能添加表情表、武器或替代服装
角色一致性
为每个角色构建一个角色标签库,该库将在所有镜头提示词中重复使用:
示例角色标签
短发女孩, 左脸有痣, 红色耳钉, 黑色皮夹克
→ short hair, beauty mark on left cheek, red earrings, black leather jacket
角色优先模式
推荐操作模式:
- - 首先生成 characters.csv
- 为重复出现的角色对生成 relationships.csv
- 锁定主角的 singleimageturnaroundprompt、negativeprompt 和 charactertags
- 仅当故事实际暗示时才定义额外的角色行;不要仅仅因为类型暗示就凭空创造 对手、恋爱对象 或 同伴
- 在每个 visualprompt 中重复使用已批准的 charactertags
- 将第一个批准的角色行视为下游故事板草稿的锚点
- 在多角色故事中,仅注入与每个镜头阶段相关的角色,而不是将所有人塞入每个提示词
- 将 relationships.csv 构建为所有重复出现的角色对的成对矩阵,而不仅仅是主角中心的配对
- 在设计对抗、盟友或恋情镜头时,重复使用 relationshiptype 和 prompthint
- 同时使用 visualrelation、emotionalrelation 和 blockingpattern 来保持重复配对镜头中的舞台调度和情绪一致
- 让 relationship_type 影响默认镜头语言:冲突倾向于低角度/对抗性构图,盟友倾向于合作性全景,恋情倾向于更近的眼平覆盖
- 让 theme 也影响基线镜头节奏:动作片倾向于动态,恋情片倾向于亲密,惊悚片倾向于不安,科幻片倾向于规模/发现
- 在包含 3 个以上重复角色的场景中,根据当前节拍为每个镜头选择活跃的配对/群体;不要强制将每个已建立的关系塞入每个镜头
默认 OpenClaw 行为:
- - 该技能应使用当前 OpenClaw 默认 LLM 起草 characters.csv、relationships.csv 和 storyboard.csv
- CSV 应反映叙事理解,而不仅仅是机械的关键词扩展
- 保持 CSV 列名稳定为英文,但面向用户的值应尽可能遵循用户的语言
- 保持面向 AI 的提示词字段为英文,以便跨模型可移植:singleimageturnaroundprompt、negativeprompt、frontviewprompt、sideviewprompt、backviewprompt、charactertags、prompthint 和 visualprompt
- 保持 ID 和面向机器的代码稳定:characterid、relationshipid、shotid、scenecode
- visualprompt 应以英文保留用户大纲中的具体故事细节,包括名称、道具、地点和特定节拍的动作
- description 和 action 应随镜头变化;当有更具体的节拍描述可用时,避免重复使用通用的阶段标签
- 对于混合语言输入,将 description 保留在用户的主要语言中;如果没有明确的主要语言,则遵循用户最近的指令语言
- 如果下游自动化流程后来需要标准化的英文枚举值,则创建辅助的英文导出,而不是替换面向用户的审阅 CSV
步骤 3:生成故事板
镜头结构
每个镜头包含以下字段:
| 字段 | 描述 |
|---|
| shotid | 场景 + 镜头编号(例如 S01-01) |
| shottype |
镜头景别 |
| camera_angle | 摄像机角度 |
| movement | 摄像机运动 |
| duration | 预估时长(通常 2-5 秒) |
| description |
用户语言描述 - 以用户输入语言(中文/日语/