produce-anime

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

短剧制作技能 (Produce Short Drama)

Short Drama Production Skill (Produce Short Drama)

概述

Overview

本技能用于自动化生成完整短剧作品的全套制作文档和脚本。每次运行生成 1部完整作品,包含 25集,每集 30秒,分为 上、下两部分(各15秒):
  • 每部分包含 9宫格分镜提示词(3×3布局,16:9比例)
  • 每集生成 2个文件:对话脚本 + 故事板配置(9宫格分镜)
  • 每个Part在配置中标注引用的
    scene_refs
    (场景ID列表)和
    prop_refs
    (道具ID列表)
  • Seedance任务JSON在 媒体生成后 单独生成(每集2条:Part-A/B,使用
    (@文件名)
    引用角色/场景/道具参考图和分镜图)
  • 含氛围描述、中文人物对话、无字幕
  • 视频编号管理索引
  • 支持视觉风格预设(从
    .config/visual_styles.json
    读取,注入到提示词和配置中)
This skill is used to automatically generate a complete set of production documents and scripts for short drama works. Each run generates one complete work consisting of 25 episodes, with 30 seconds per episode divided into two parts (Part A and Part B) (15 seconds each):
  • Each part includes 9-grid storyboard prompts (3×3 layout, 16:9 aspect ratio)
  • Two files are generated per episode: dialogue script + storyboard configuration (9-grid storyboard)
  • Each Part in the configuration marks the referenced
    scene_refs
    (scene ID list) and
    prop_refs
    (prop ID list)
  • Seedance task JSON is generated separately after media generation (2 entries per episode: Part-A/B, using
    (@file name)
    to reference character/scene/prop reference images and storyboard images)
  • Includes atmosphere descriptions, Chinese character dialogues, no subtitles
  • Video number management index
  • Supports visual style presets (read from
    .config/visual_styles.json
    and injected into prompts and configurations)

完整工作流程(4个阶段)

Complete Workflow (4 Stages)

阶段技能产出
1. 剧本制作
produce-anime
full_script.md, character_bible.md, dialogue.md, storyboard_config.json, video_index.json
2. 媒体生成
generate-media
角色参考图 + 场景四宫格图 + 道具三视图 + 9宫格分镜图
3. 任务生成
produce-anime
(第七步)
seedance_project_tasks.json(使用
(@文件名)
引用图片,50条)
4. 任务提交
submit-anime-project
批量推送到 Seedance API

StageSkillOutput
1. Script Production
produce-anime
full_script.md, character_bible.md, dialogue.md, storyboard_config.json, video_index.json
2. Media Generation
generate-media
character reference images + 4-grid scene images + 3-view prop images + 9-grid storyboard images
3. Task Generation
produce-anime
(Step 7)
seedance_project_tasks.json (50 entries with @image references)
4. Task Submission
submit-anime-project
Batch push to Seedance API

视觉风格预设

Visual Style Presets

项目支持从
/data/dongman/.config/visual_styles.json
读取视觉风格预设。用户可通过以下方式指定风格:
  • 指定风格名:如 "使用 Vintage Hong Kong 风格"
  • 指定风格ID:如 "风格7"
  • 指定中文名:如 "港风复古"
  • 不指定:使用
    default_style_id
    对应的默认风格
⚠️ 风格选择交互:在生成角色参考图、场景四宫格图和道具三视图时,必须先让用户选择视觉风格。使用
ask_questions
工具列出
visual_styles.json
中的所有风格选项,让用户确认后再开始生成。风格会同时影响角色/场景/道具的参考图风格和分镜图风格。
选中的风格会:
  1. 写入
    metadata.json
    visual_style
    字段
  2. 写入每集
    storyboard_config.json
    visual_style
    字段
  3. prompt_suffix
    追加到所有
    ai_image_prompt
    末尾
风格预设字段说明:
字段说明示例
camera
摄影机/机身Panavision Sphero 65 and Hasselblad Lenses
film_stock
胶片/传感器Vision3 500T 5219
filter
滤镜组合ND0.6, Diffusion Filter 1/4
focal_length
焦距65mm
aperture
光圈f/2.0
prompt_suffix
追加到AI提示词末尾的风格描述shot on Panavision...

The project supports reading visual style presets from
/data/dongman/.config/visual_styles.json
. Users can specify styles in the following ways:
  • Specify style name: e.g., "Use Vintage Hong Kong style"
  • Specify style ID: e.g., "Style 7"
  • Specify Chinese name: e.g., "Hong Kong Retro Style"
  • No specification: Use the default style corresponding to
    default_style_id
⚠️ Style Selection Interaction: When generating character reference images, 4-grid scene images, and 3-view prop images, users must first select a visual style. Use the
ask_questions
tool to list all style options in
visual_styles.json
and start generation only after user confirmation. The style will affect both the reference image styles of characters/scenes/props and the storyboard image styles.
The selected style will:
  1. Be written to the
    visual_style
    field in
    metadata.json
  2. Be written to the
    visual_style
    field in each episode's
    storyboard_config.json
  3. Append
    prompt_suffix
    to the end of all
    ai_image_prompt
Visual style preset field descriptions:
FieldDescriptionExample
camera
Camera/bodyPanavision Sphero 65 and Hasselblad Lenses
film_stock
Film/sensorVision3 500T 5219
filter
Filter combinationND0.6, Diffusion Filter 1/4
focal_length
Focal length65mm
aperture
Aperturef/2.0
prompt_suffix
Style description appended to the end of AI promptsshot on Panavision...

执行流程

Execution Process

当用户要求制作短剧/影视作品时,按以下步骤顺序执行:
When users request to create short dramas/film and television works, follow the steps below in order:

第一步:初始化项目

Step 1: Initialize Project

  1. 读取
    /data/dongman/projects/index.json
    获取当前作品编号(如不存在则从
    DM-001
    开始)
  2. /data/dongman/projects/
    下创建新作品目录,命名规则:
    {作品编号}_{作品名称拼音缩写}/
  3. 创建作品目录结构:
projects/
├── index.json                          # 所有作品索引(全局管理)
└── DM-001_xxxx/                        # 单部作品目录
    ├── metadata.json                   # 作品元数据
    ├── script/                         # 剧本
    │   └── full_script.md              # 完整剧本(25集大纲+详细剧本)
    ├── characters/                     # 角色设计
    │   └── character_bible.md          # 角色圣经(所有角色设定)
    ├── scenes/                         # 场景设计(全剧复用)
    │   └── scene_bible.md              # 场景圣经(所有场景设定+AI绘图关键词)
    ├── props/                          # 道具设计(全剧复用)
    │   └── prop_bible.md               # 道具圣经(所有道具设定+AI绘图关键词)
    ├── episodes/                       # 各集内容
    │   ├── EP01/
    │   │   ├── dialogue.md             # 本集对话脚本(中文,覆盖上下两部分)
    │   │   └── storyboard_config.json  # 故事板配置(含上下两部分,每部分9宫格,含scene_refs/prop_refs)
    │   ├── EP02/
    │   │   └── ...
    │   └── ... (EP01-EP25)
    ├── seedance_project_tasks.json     # [阶段3·媒体生成后] 全剧Seedance任务(50条,含@图片引用)
    └── video_index.json                # 视频编号管理索引
  1. Read
    /data/dongman/projects/index.json
    to get the current work number (start from
    DM-001
    if it does not exist)
  2. Create a new work directory under
    /data/dongman/projects/
    with the naming rule:
    {work number}_{pinyin abbreviation of work name}/
  3. Create the work directory structure:
projects/
├── index.json                          # All works index (global management)
└── DM-001_xxxx/                        # Single work directory
    ├── metadata.json                   # Work metadata
    ├── script/                         # Script
    │   └── full_script.md              # Complete script (25 episodes outline + detailed script)
    ├── characters/                     # Character design
    │   └── character_bible.md          # Character bible (all character settings)
    ├── scenes/                         # Scene design (reused throughout the drama)
    │   └── scene_bible.md              # Scene bible (all scene settings + AI drawing keywords)
    ├── props/                          # Prop design (reused throughout the drama)
    │   └── prop_bible.md               # Prop bible (all prop settings + AI drawing keywords)
    ├── episodes/                       # Episode content
    │   ├── EP01/
    │   │   ├── dialogue.md             # Episode dialogue script (Chinese, covering both parts)
    │   │   └── storyboard_config.json  # Storyboard configuration (including both parts, 9-grid per part, with scene_refs/prop_refs)
    │   ├── EP02/
    │   │   └── ...
    │   └── ... (EP01-EP25)
    ├── seedance_project_tasks.json     # [Stage 3 · After media generation] Full drama Seedance tasks (50 entries with @image references)
    └── video_index.json                # Video number management index

第二步:剧本编写 (Script Writing)

Step 2: Script Writing

生成
script/full_script.md
,包含:
markdown
undefined
Generate
script/full_script.md
, including:
markdown
undefined

《作品名称》完整剧本

Complete Script of "Work Name"

作品信息

Work Information

  • 类型:[冒险/奇幻/科幻/日常/恋爱 等]
  • 风格:[热血/治愈/悬疑/搞笑 等]
  • 视觉风格:[风格预设名称,如 Cinematic Film]
  • 目标受众:[少年/少女/青年/全年龄]
  • 总时长:25集 × 30秒 = 12分30秒
  • 核心主题:一句话概括
  • Genre: [Adventure/Fantasy/Sci-Fi/Daily/Love, etc.]
  • Style: [Passionate/Healing/Suspense/Comedic, etc.]
  • Visual Style: [Preset style name, e.g., Cinematic Film]
  • Target Audience: [Teenagers/Girls/Young Adults/All Ages]
  • Total Duration: 25 episodes × 30 seconds = 12 minutes 30 seconds
  • Core Theme: One-sentence summary

世界观设定

Worldview Setting

[200-300字描述世界观]
[200-300 words describing the worldview]

故事大纲

Story Outline

[500字总体故事线]
[500 words overall story line]

各集概要

Episode Summaries

第1集:[标题]

Episode 1: [Title]

  • 剧情概要:[50字]
  • 关键事件:[列表]
  • 情感基调:[喜/怒/哀/乐/紧张/温馨]
  • Plot Summary: [50 words]
  • Key Events: [List]
  • Emotional Tone: [Joy/Anger/Sadness/Happiness/Tension/Warmth]

第2集:[标题]

Episode 2: [Title]

...(共25集)
undefined
... (total 25 episodes)
undefined

第三步:角色设计 (Character Design)

Step 3: Character Design

生成
characters/character_bible.md
,每个角色包含:
markdown
undefined
Generate
characters/character_bible.md
, each character includes:
markdown
undefined

角色设定集

Character Settings Collection

主要角色

Main Characters

角色1:[名字]

Character 1: [Name]

  • 全名
  • 年龄
  • 性别
  • 身高/体重
  • 外貌特征:[详细描述,用于AI绘图提示词]
    • 发型/发色:
    • 瞳色:
    • 体型:
    • 标志性特征:
  • 服装设计
    • 日常服装:
    • 战斗/特殊服装:
  • 性格特点
  • 口头禅
  • 背景故事:[100字]
  • 角色弧光:[在25集中的成长变化]
  • AI绘图关键词(英文):[用于生成角色一致性的Prompt]
  • Full Name:
  • Age:
  • Gender:
  • Height/Weight:
  • Appearance Features: [Detailed description for AI drawing prompts]
    • Hairstyle/Hair Color:
    • Eye Color:
    • Body Type:
    • Signature Features:
  • Costume Design:
    • Daily Wear:
    • Battle/Special Wear:
  • Personality Traits:
  • Catchphrase:
  • Backstory: [100 words]
  • Character Arc: [Growth changes in 25 episodes]
  • AI Drawing Keywords (English): [Prompt for consistent character generation]

次要角色

Supporting Characters

...
...

角色关系图

Character Relationship Map

[用文字描述角色间的关系网络]
undefined
[Text description of the relationship network between characters]
undefined

第三步B:场景设计 (Scene Design)

Step 3B: Scene Design

生成
scenes/scene_bible.md
,记录全剧会反复出现的主要场景。每个场景包含 AI 绘图关键词,用于后续生成多视角参考图。
markdown
undefined
Generate
scenes/scene_bible.md
to record main scenes that reappear throughout the drama. Each scene includes AI drawing keywords for generating multi-angle reference images later.
markdown
undefined

场景设定集

Scene Settings Collection

场景1:[场景名称]

Scene 1: [Scene Name]

  • 场景ID:scene_01
  • 场景描述:[50-100字描述物理空间、装饰、氛围]
  • 出现集数:EP01, EP02, EP05, EP15...
  • 关键视觉元素:[列出该场景的标志性物件、色调、灯光]
  • AI绘图关键词(英文):[详细的英文提示词,包含空间布局、光影、陈设风格]
  • Scene ID: scene_01
  • Scene Description: [50-100 words describing physical space, decoration, atmosphere]
  • Episodes Appeared: EP01, EP02, EP05, EP15...
  • Key Visual Elements: [List iconic objects, color tones, lighting of the scene]
  • AI Drawing Keywords (English): [Detailed English prompts including spatial layout, light and shadow, furnishing style]

场景2:[场景名称]

Scene 2: [Scene Name]

...

> **场景筛选原则**:只收录在 **3集以上** 反复出现的重要场景(一次性出现的场景无需单独建参考图)。通常一部 25 集短剧有 3-6 个核心场景。
...

> **Scene Screening Principle**: Only include important scenes that reappear in **3 or more episodes** (scenes that appear once do not need separate reference images). Usually, a 25-episode short drama has 3-6 core scenes.

第三步C:道具设计 (Prop Design)

Step 3C: Prop Design

生成
props/prop_bible.md
,记录全剧中有剧情意义的重要道具。每个道具包含 AI 绘图关键词,用于后续生成三视图。
markdown
undefined
Generate
props/prop_bible.md
to record important props with plot significance throughout the drama. Each prop includes AI drawing keywords for generating 3-view images later.
markdown
undefined

道具设定集

Prop Settings Collection

道具1:[道具名称]

Prop 1: [Prop Name]

  • 道具ID:prop_01
  • 道具描述:[30-50字描述外观、材质、尺寸]
  • 出现集数:EP10, EP12, EP25...
  • 剧情意义:[此道具在剧中的象征/功能意义]
  • AI绘图关键词(英文):[详细的英文提示词,包含材质、颜色、形状、细节]
  • Prop ID: prop_01
  • Prop Description: [30-50 words describing appearance, material, size]
  • Episodes Appeared: EP10, EP12, EP25...
  • Plot Significance: [Symbolic/functional significance of the prop in the drama]
  • AI Drawing Keywords (English): [Detailed English prompts including material, color, shape, details]

道具2:[道具名称]

Prop 2: [Prop Name]

...

> **道具筛选原则**:只收录具有**剧情推动或象征意义**的道具(如信物、关键文件、标志性物品),不收录日常物件。通常一部 25 集短剧有 2-5 个核心道具。
...

> **Prop Screening Principle**: Only include props with **plot-driving or symbolic significance** (such as tokens, key documents, iconic items), not daily objects. Usually, a 25-episode short drama has 2-5 core props.

第四步:逐集生成内容

Step 4: Generate Episode Content

对每一集(EP01-EP25),生成以下 2个文件(seedance_tasks.json 在阶段3媒体生成后单独生成):
For each episode (EP01-EP25), generate the following 2 files (seedance_tasks.json is generated separately in Stage 3 after media generation):

4.1 对话脚本
dialogue.md

4.1 Dialogue Script
dialogue.md

覆盖上、下两部分的全部对话:
markdown
undefined
Covers all dialogues for both parts:
markdown
undefined

第X集:[标题] 对话脚本

Episode X: [Title] Dialogue Script

注意:本集视频不带字幕,对话通过配音传达

Note: This episode has no subtitles; dialogues are conveyed through dubbing

上半部分(Part A:00:00-00:15)

Part A (00:00-00:15)

视频编号:DM-001-EP01-A

Video ID: DM-001-EP01-A

序号时间角色对话内容(中文)语气/情感备注
100:02角色A「对话内容」坚定
200:06角色B「对话内容」惊讶
300:11角色A「对话内容」激动
No.TimeCharacterDialogue Content (Chinese)Tone/EmotionRemarks
100:02Character A「Dialogue content」Firm
200:06Character B「Dialogue content」Surprised
300:11Character A「Dialogue content」Excited

下半部分(Part B:00:15-00:30)

Part B (00:15-00:30)

视频编号:DM-001-EP01-B

Video ID: DM-001-EP01-B

序号时间角色对话内容(中文)语气/情感备注
400:17角色B「对话内容」低沉
500:22角色A「对话内容」温柔
600:27角色C「对话内容」神秘
undefined
No.TimeCharacterDialogue Content (Chinese)Tone/EmotionRemarks
400:17Character B「Dialogue content」Low-pitched
500:22Character A「Dialogue content」Gentle
600:27Character C「Dialogue content」Mysterious
undefined

4.2 故事板配置
storyboard_config.json

4.2 Storyboard Configuration
storyboard_config.json

包含上、下两部分,每部分 9宫格分镜(3×3布局,16:9比例):
json
{
  "video_id_prefix": "DM-001-EP01",
  "episode": 1,
  "episode_title": "第1集标题",
  "total_duration_seconds": 30,
  "fps": 24,
  "resolution": "1920x1080",
  "aspect_ratio": "16:9",
  "style": "short_drama",
  "visual_style": {
    "style_id": 1,
    "style_name": "Cinematic Film",
    "camera": "Panavision Sphero 65 and Hasselblad Lenses",
    "film_stock": "Vision3 500T 5219",
    "filter": "ND0.6, Diffusion Filter 1/4",
    "focal_length": "65mm",
    "aperture": "f/2.0",
    "prompt_suffix": "shot on Panavision Sphero 65 and Hasselblad Lenses, Vision3 500T 5219, ND0.6, Diffusion Filter 1/4, cinematic film grain, shallow depth of field"
  },
  "subtitle": false,
  "synopsis": "本集剧情概要(100字)",
  "emotion_tone": "情感基调",
  "connection": {
    "from_previous": "与上集的衔接",
    "to_next": "为下集的铺垫"
  },

  "part_a": {
    "video_id": "DM-001-EP01-A",
    "label": "上",
    "time_range": "00:00-00:15",
    "duration_seconds": 15,
    "scene_refs": ["scene_01"],
    "prop_refs": [],
    "atmosphere": {
      "overall_mood": "上半部分氛围总描述",
      "color_palette": ["#色值1", "#色值2", "#色值3"],
      "lighting": "光影描述",
      "weather": "天气/环境"
    },
    "video_prompt": "English prompt for AI video generation of Part A (15s), 16:9 aspect ratio. No subtitles.",
    "bgm": {
      "description": "背景音乐描述",
      "mood": "音乐情绪关键词"
    },
    "storyboard_9grid": [
      {
        "grid_number": 1,
        "time_start": 0.0,
        "time_end": 1.67,
        "scene_description": "画面描述(50字,含人物动作、表情、光影)",
        "camera": {
          "type": "远景|中景|近景|特写",
          "movement": "固定|推|拉|摇|移|跟",
          "angle": "平视|俯视|仰视"
        },
        "characters": [
          {
            "name": "角色名",
            "action": "动作描述",
            "expression": "表情",
            "position": "画面位置(左/中/右)"
          }
        ],
        "dialogue": {
          "speaker": "角色名(无对话则为null)",
          "text": "中文对话内容",
          "emotion": "语气/情感"
        },
        "atmosphere": "本格氛围描述",
        "sfx": "音效描述",
        "ai_image_prompt": "English prompt for this grid's image: character, composition, lighting, mood, 16:9 aspect ratio. [visual_style.prompt_suffix will be appended automatically]"
      },
      {
        "grid_number": 2,
        "time_start": 1.67,
        "time_end": 3.33,
        "scene_description": "...",
        "camera": {},
        "characters": [],
        "dialogue": {},
        "atmosphere": "...",
        "sfx": "...",
        "ai_image_prompt": "..."
      },
      { "grid_number": 3, "time_start": 3.33, "time_end": 5.0, "...": "同上结构" },
      { "grid_number": 4, "time_start": 5.0, "time_end": 6.67, "...": "同上结构" },
      { "grid_number": 5, "time_start": 6.67, "time_end": 8.33, "...": "同上结构" },
      { "grid_number": 6, "time_start": 8.33, "time_end": 10.0, "...": "同上结构" },
      { "grid_number": 7, "time_start": 10.0, "time_end": 11.67, "...": "同上结构" },
      { "grid_number": 8, "time_start": 11.67, "time_end": 13.33, "...": "同上结构" },
      { "grid_number": 9, "time_start": 13.33, "time_end": 15.0, "...": "同上结构" }
    ]
  },

  "part_b": {
    "video_id": "DM-001-EP01-B",
    "label": "下",
    "time_range": "00:15-00:30",
    "duration_seconds": 15,
    "scene_refs": ["scene_02"],
    "prop_refs": ["prop_01"],
    "atmosphere": {
      "overall_mood": "下半部分氛围总描述",
      "color_palette": ["#色值1", "#色值2", "#色值3"],
      "lighting": "光影描述",
      "weather": "天气/环境"
    },
    "video_prompt": "English prompt for AI video generation of Part B (15s), 16:9 aspect ratio. No subtitles.",
    "bgm": {
      "description": "背景音乐描述",
      "mood": "音乐情绪关键词"
    },
    "storyboard_9grid": [
      {
        "grid_number": 1,
        "time_start": 0.0,
        "time_end": 1.67,
        "scene_description": "画面描述(50字)",
        "camera": {},
        "characters": [],
        "dialogue": {},
        "atmosphere": "...",
        "sfx": "...",
        "ai_image_prompt": "..."
      },
      { "grid_number": 2, "time_start": 1.67, "time_end": 3.33, "...": "同上结构" },
      { "grid_number": 3, "time_start": 3.33, "time_end": 5.0, "...": "同上结构" },
      { "grid_number": 4, "time_start": 5.0, "time_end": 6.67, "...": "同上结构" },
      { "grid_number": 5, "time_start": 6.67, "time_end": 8.33, "...": "同上结构" },
      { "grid_number": 6, "time_start": 8.33, "time_end": 10.0, "...": "同上结构" },
      { "grid_number": 7, "time_start": 10.0, "time_end": 11.67, "...": "同上结构" },
      { "grid_number": 8, "time_start": 11.67, "time_end": 13.33, "...": "同上结构" },
      { "grid_number": 9, "time_start": 13.33, "time_end": 15.0, "...": "同上结构" }
    ]
  }
}
注意
seedance_tasks.json
不在本步骤生成,而是在阶段3(媒体生成后)的第七步中生成,因为 prompt 需要引用实际存在的角色参考图和分镜图文件。
9宫格分镜布局说明(3行×3列,16:9比例):
| 格1 (0.0-1.67s)  | 格2 (1.67-3.33s) | 格3 (3.33-5.0s)  |
|:---:|:---:|:---:|
| 格4 (5.0-6.67s)  | 格5 (6.67-8.33s) | 格6 (8.33-10.0s) |
|:---:|:---:|:---:|
| 格7 (10.0-11.67s) | 格8 (11.67-13.33s) | 格9 (13.33-15.0s) |
  • 每格约 1.67秒,9格覆盖 15秒
  • 上下两部分各有独立的9宫格
  • 每集共 18格分镜(上9格 + 下9格)
  • 每个Part包含
    scene_refs
    (引用的场景ID数组)和
    prop_refs
    (引用的道具ID数组)
Includes both parts, each with 9-grid storyboard (3×3 layout, 16:9 aspect ratio):
json
{
  "video_id_prefix": "DM-001-EP01",
  "episode": 1,
  "episode_title": "Episode 1 Title",
  "total_duration_seconds": 30,
  "fps": 24,
  "resolution": "1920x1080",
  "aspect_ratio": "16:9",
  "style": "short_drama",
  "visual_style": {
    "style_id": 1,
    "style_name": "Cinematic Film",
    "camera": "Panavision Sphero 65 and Hasselblad Lenses",
    "film_stock": "Vision3 500T 5219",
    "filter": "ND0.6, Diffusion Filter 1/4",
    "focal_length": "65mm",
    "aperture": "f/2.0",
    "prompt_suffix": "shot on Panavision Sphero 65 and Hasselblad Lenses, Vision3 500T 5219, ND0.6, Diffusion Filter 1/4, cinematic film grain, shallow depth of field"
  },
  "subtitle": false,
  "synopsis": "Episode plot summary (100 words)",
  "emotion_tone": "Emotional tone",
  "connection": {
    "from_previous": "Connection with previous episode",
    "to_next": "Foreshadowing for next episode"
  },

  "part_a": {
    "video_id": "DM-001-EP01-A",
    "label": "A",
    "time_range": "00:00-00:15",
    "duration_seconds": 15,
    "scene_refs": ["scene_01"],
    "prop_refs": [],
    "atmosphere": {
      "overall_mood": "Overall mood description of Part A",
      "color_palette": ["#Color Value 1", "#Color Value 2", "#Color Value 3"],
      "lighting": "Light and shadow description",
      "weather": "Weather/Environment"
    },
    "video_prompt": "English prompt for AI video generation of Part A (15s), 16:9 aspect ratio. No subtitles.",
    "bgm": {
      "description": "Background music description",
      "mood": "Music mood keywords"
    },
    "storyboard_9grid": [
      {
        "grid_number": 1,
        "time_start": 0.0,
        "time_end": 1.67,
        "scene_description": "Scene description (50 words, including character actions, expressions, light and shadow)",
        "camera": {
          "type": "Long Shot|Medium Shot|Close-Up|Extreme Close-Up",
          "movement": "Fixed|Push|Pull|Pan|Tilt|Follow",
          "angle": "Eye Level|High Angle|Low Angle"
        },
        "characters": [
          {
            "name": "Character Name",
            "action": "Action description",
            "expression": "Expression",
            "position": "Screen position (Left/Middle/Right)"
          }
        ],
        "dialogue": {
          "speaker": "Character Name (null if no dialogue)",
          "text": "Chinese dialogue content",
          "emotion": "Tone/Emotion"
        },
        "atmosphere": "Mood description of this grid",
        "sfx": "Sound effect description",
        "ai_image_prompt": "English prompt for this grid's image: character, composition, lighting, mood, 16:9 aspect ratio. [visual_style.prompt_suffix will be appended automatically]"
      },
      {
        "grid_number": 2,
        "time_start": 1.67,
        "time_end": 3.33,
        "scene_description": "...",
        "camera": {},
        "characters": [],
        "dialogue": {},
        "atmosphere": "...",
        "sfx": "...",
        "ai_image_prompt": "..."
      },
      { "grid_number": 3, "time_start": 3.33, "time_end": 5.0, "...": "Same structure as above" },
      { "grid_number": 4, "time_start": 5.0, "time_end": 6.67, "...": "Same structure as above" },
      { "grid_number": 5, "time_start": 6.67, "time_end": 8.33, "...": "Same structure as above" },
      { "grid_number": 6, "time_start": 8.33, "time_end": 10.0, "...": "Same structure as above" },
      { "grid_number": 7, "time_start": 10.0, "time_end": 11.67, "...": "Same structure as above" },
      { "grid_number": 8, "time_start": 11.67, "time_end": 13.33, "...": "Same structure as above" },
      { "grid_number": 9, "time_start": 13.33, "time_end": 15.0, "...": "Same structure as above" }
    ]
  },

  "part_b": {
    "video_id": "DM-001-EP01-B",
    "label": "B",
    "time_range": "00:15-00:30",
    "duration_seconds": 15,
    "scene_refs": ["scene_02"],
    "prop_refs": ["prop_01"],
    "atmosphere": {
      "overall_mood": "Overall mood description of Part B",
      "color_palette": ["#Color Value 1", "#Color Value 2", "#Color Value 3"],
      "lighting": "Light and shadow description",
      "weather": "Weather/Environment"
    },
    "video_prompt": "English prompt for AI video generation of Part B (15s), 16:9 aspect ratio. No subtitles.",
    "bgm": {
      "description": "Background music description",
      "mood": "Music mood keywords"
    },
    "storyboard_9grid": [
      {
        "grid_number": 1,
        "time_start": 0.0,
        "time_end": 1.67,
        "scene_description": "Scene description (50 words)",
        "camera": {},
        "characters": [],
        "dialogue": {},
        "atmosphere": "...",
        "sfx": "...",
        "ai_image_prompt": "..."
      },
      { "grid_number": 2, "time_start": 1.67, "time_end": 3.33, "...": "Same structure as above" },
      { "grid_number": 3, "time_start": 3.33, "time_end": 5.0, "...": "Same structure as above" },
      { "grid_number": 4, "time_start": 5.0, "time_end": 6.67, "...": "Same structure as above" },
      { "grid_number": 5, "time_start": 6.67, "time_end": 8.33, "...": "Same structure as above" },
      { "grid_number": 6, "time_start": 8.33, "time_end": 10.0, "...": "Same structure as above" },
      { "grid_number": 7, "time_start": 10.0, "time_end": 11.67, "...": "Same structure as above" },
      { "grid_number": 8, "time_start": 11.67, "time_end": 13.33, "...": "Same structure as above" },
      { "grid_number": 9, "time_start": 13.33, "time_end": 15.0, "...": "Same structure as above" }
    ]
  }
}
Note:
seedance_tasks.json
is not generated in this step, but in Step 7 of Stage 3 (after media generation), because the prompt needs to reference existing character reference images and storyboard images.
9-Grid Storyboard Layout Description (3 rows × 3 columns, 16:9 aspect ratio):
| Grid 1 (0.0-1.67s)  | Grid 2 (1.67-3.33s) | Grid 3 (3.33-5.0s)  |
|:---:|:---:|:---:|
| Grid 4 (5.0-6.67s)  | Grid 5 (6.67-8.33s) | Grid 6 (8.33-10.0s) |
|:---:|:---:|:---:|
| Grid 7 (10.0-11.67s) | Grid 8 (11.67-13.33s) | Grid 9 (13.33-15.0s) |
  • Each grid is approximately 1.67 seconds, 9 grids cover 15 seconds
  • Both Part A and Part B have independent 9 grids
  • Each episode has a total of 18 storyboard grids (9 grids for Part A + 9 grids for Part B)
  • Each Part includes
    scene_refs
    (array of referenced scene IDs) and
    prop_refs
    (array of referenced prop IDs)

第五步:生成视频编号管理索引

Step 5: Generate Video Number Management Index

生成
video_index.json
json
{
  "project_id": "DM-001",
  "project_name": "作品名称",
  "total_episodes": 25,
  "created_date": "2026-02-14",
  "status": "scripted",
  "videos": [
    {
      "episode": 1,
      "episode_title": "第1集标题",
      "part_a": {
        "video_id": "DM-001-EP01-A",
        "label": "上",
        "duration": 15,
        "status": "script_ready",
        "files": {
          "dialogue": "episodes/EP01/dialogue.md",
          "storyboard_config": "episodes/EP01/storyboard_config.json"
        }
      },
      "part_b": {
        "video_id": "DM-001-EP01-B",
        "label": "下",
        "duration": 15,
        "status": "script_ready",
        "files": {
          "dialogue": "episodes/EP01/dialogue.md",
          "storyboard_config": "episodes/EP01/storyboard_config.json"
        }
      }
    }
  ],
  "editing_guide": {
    "total_episodes": 25,
    "parts_per_episode": 2,
    "total_videos": 50,
    "duration_per_part_seconds": 15,
    "total_duration_seconds": 750,
    "grids_per_part": 9,
    "total_grids": 450,
    "recommended_export_format": "MP4 H.264",
    "recommended_resolution": "1920x1080",
    "recommended_fps": 24
  }
}
Generate
video_index.json
:
json
{
  "project_id": "DM-001",
  "project_name": "Work Name",
  "total_episodes": 25,
  "created_date": "2026-02-14",
  "status": "scripted",
  "videos": [
    {
      "episode": 1,
      "episode_title": "Episode 1 Title",
      "part_a": {
        "video_id": "DM-001-EP01-A",
        "label": "A",
        "duration": 15,
        "status": "script_ready",
        "files": {
          "dialogue": "episodes/EP01/dialogue.md",
          "storyboard_config": "episodes/EP01/storyboard_config.json"
        }
      },
      "part_b": {
        "video_id": "DM-001-EP01-B",
        "label": "B",
        "duration": 15,
        "status": "script_ready",
        "files": {
          "dialogue": "episodes/EP01/dialogue.md",
          "storyboard_config": "episodes/EP01/storyboard_config.json"
        }
      }
    }
  ],
  "editing_guide": {
    "total_episodes": 25,
    "parts_per_episode": 2,
    "total_videos": 50,
    "duration_per_part_seconds": 15,
    "total_duration_seconds": 750,
    "grids_per_part": 9,
    "total_grids": 450,
    "recommended_export_format": "MP4 H.264",
    "recommended_resolution": "1920x1080",
    "recommended_fps": 24
  }
}

第六步:更新全局索引

Step 6: Update Global Index

更新
/data/dongman/projects/index.json
json
{
  "last_updated": "2026-02-14",
  "total_projects": 1,
  "next_id": "DM-002",
  "projects": [
    {
      "project_id": "DM-001",
      "project_name": "作品名称",
      "directory": "DM-001_xxxx/",
      "episodes": 25,
      "status": "scripted",
      "created_date": "2026-02-14",
      "video_count": 50
    }
  ]
}
Update
/data/dongman/projects/index.json
:
json
{
  "last_updated": "2026-02-14",
  "total_projects": 1,
  "next_id": "DM-002",
  "projects": [
    {
      "project_id": "DM-001",
      "project_name": "Work Name",
      "directory": "DM-001_xxxx/",
      "episodes": 25,
      "status": "scripted",
      "created_date": "2026-02-14",
      "video_count": 50
    }
  ]
}

第七步:生成 Seedance 任务(⚠️ 媒体生成后执行)

Step 7: Generate Seedance Tasks (⚠️ Execute After Media Generation)

前置条件:必须先运行
generate-media
技能,确保以下文件已生成:
  • 角色参考图:
    characters/{角色名}_ref.png
  • 分镜参考图:
    episodes/EPxx/{project_id}-EPxx-{A|B}_storyboard.png
本步骤读取所有集的
storyboard_config.json
dialogue.md
,结合已生成的媒体文件,在项目根目录生成 唯一一份
seedance_project_tasks.json
(50条任务,每集Part-A/B各一条)。
不再在每集目录下生成
seedance_tasks.json
,所有任务集中在项目根目录的
seedance_project_tasks.json
中。
Precondition: The
generate-media
skill must be run first to ensure the following files are generated:
  • Character reference images:
    characters/{character name}_ref.png
  • Storyboard reference images:
    episodes/EPxx/{project_id}-EPxx-{A|B}_storyboard.png
This step reads
storyboard_config.json
and
dialogue.md
of all episodes, combines with generated media files, and generates a single
seedance_project_tasks.json
in the project root directory (50 tasks, one for each episode's Part-A/B).
No longer generate
seedance_tasks.json
in each episode directory
; all tasks are centralized in
seedance_project_tasks.json
in the project root directory.

7.1 seedance_project_tasks.json 格式

7.1 seedance_project_tasks.json Format

json
{
  "project_id": "DM-001",
  "project_name": "作品名称",
  "total_tasks": 50,
  "created_date": "2026-02-21",
  "tasks": [
    {
      "prompt": "(@DM-001-EP01-A_storyboard.png) 为9宫格分镜参考图,(@角色A_ref.png) 为角色「角色A」的参考形象,(@角色B_ref.png) 为角色「角色B」的参考形象。\n\n从镜头1开始,不要展示多宫格分镜参考图片。分镜图制作成电影级别的高清影视级别的视频。严禁参考图出现在画面中。每个画面为单一画幅,独立展示,没有任何分割线或多宫格效果画面。(Exclusions); Do not show speech bubbles, do not show comic panels, remove all text, full technicolor.排除项: No speech bubbles(无对话气泡),No text(无文字), No comic panels(无漫画分镜),No split screen(无分屏),No monochrome(非单色/黑白),No manga effects(无漫画特效线).正向替代:Fullscreen(全屏),Single continuous scene(单一连续场景).表情、嘴型、呼吸、台词严格同步。去掉图片中的水印,不要出现任何水印。没有任何字幕。\n\nDM-001-EP01-A 第1集「集标题」上半部分。剧情概要。 氛围:氛围描述。\n\n镜头1(0.0s-1.67s): 第1集上半第1格:场景描述。 (@角色A_ref.png)角色A动作,表情表情。 (@角色A_ref.png)角色A说:\"对话内容\"\uff08情感\uff09\n镜头2(1.67s-3.33s): ...\n...\n镜头9(13.33s-15.0s): ...",
      "description": "DM-001 EP01 Part-A 「集标题」上半部分 9宫格分镜→视频",
      "modelConfig": {
        "model": "Seedance 2.0 Fast",
        "referenceMode": "全能参考",
        "aspectRatio": "16:9",
        "duration": "15s"
      },
      "referenceFiles": [
        "episodes/EP01/DM-001-EP01-A_storyboard.png",
        "characters/角色A_ref.png",
        "characters/角色B_ref.png"
      ],
      "realSubmit": false,
      "priority": 1,
      "tags": ["DM-001", "EP01", "A"]
    },
    {
      "prompt": "... Part-B prompt ...",
      "description": "DM-001 EP01 Part-B 「集标题」下半部分 6宫格分镜→视频",
      "...":  "同上结构"
    }
  ]
}
任务排列顺序:EP01-A, EP01-B, EP02-A, EP02-B, ..., EP25-A, EP25-B(共50条)
json
{
  "project_id": "DM-001",
  "project_name": "Work Name",
  "total_tasks": 50,
  "created_date": "2026-02-21",
  "tasks": [
    {
      "prompt": "(@DM-001-EP01-A_storyboard.png) is the 9-grid storyboard reference image, (@Character A_ref.png) is the reference image of character \"Character A\", (@Character B_ref.png) is the reference image of character \"Character B\".\n\nStart from shot 1, do not show the multi-grid storyboard reference image. Turn the storyboard into a cinematic high-definition film-level video. Strictly prohibit reference images from appearing in the frame. Each frame is a single frame, displayed independently, with no dividing lines or multi-grid effect frames. (Exclusions); Do not show speech bubbles, do not show comic panels, remove all text, full technicolor. Exclusions: No speech bubbles, No text, No comic panels, No split screen, No monochrome, No manga effects. Positive replacements: Fullscreen, Single continuous scene. Expressions, mouth movements, breathing, and lines must be strictly synchronized. Remove watermarks from images, do not show any watermarks. No subtitles.\n\nDM-001-EP01-A Episode 1 「Episode Title」 Part A. Plot summary. Atmosphere: Atmosphere description.\n\nShot 1(0.0s-1.67s): Episode 1 Part A Grid 1: Scene description. (@Character A_ref.png) Character A performs action, expression expression. (@Character A_ref.png) Character A says: \"Dialogue content\" (emotion)\nShot 2(1.67s-3.33s): ...\n...\nShot 9(13.33s-15.0s): ...",
      "description": "DM-001 EP01 Part-A 「Episode Title」 Part A 9-grid storyboard → video",
      "modelConfig": {
        "model": "Seedance 2.0 Fast",
        "referenceMode": "All-Round Reference",
        "aspectRatio": "16:9",
        "duration": "15s"
      },
      "referenceFiles": [
        "episodes/EP01/DM-001-EP01-A_storyboard.png",
        "characters/Character A_ref.png",
        "characters/Character B_ref.png"
      ],
      "realSubmit": false,
      "priority": 1,
      "tags": ["DM-001", "EP01", "A"]
    },
    {
      "prompt": "... Part-B prompt ...",
      "description": "DM-001 EP01 Part-B 「Episode Title」 Part B 6-grid storyboard → video",
      "...":  "Same structure as above"
    }
  ]
}
Task Order: EP01-A, EP01-B, EP02-A, EP02-B, ..., EP25-A, EP25-B (total 50 entries)

7.2 prompt 构建规则

7.2 Prompt Construction Rules

  1. 头部声明:列出分镜图和角色参考图
    • (@{project_id}-EPxx-{A|B}_storyboard.png) 为9宫格分镜参考图
    • (@{角色名}_ref.png) 为角色「{角色名}」的参考形象
      (仅列出本part出场的角色)
    • 注意:场景和道具参考图不在头部声明,在后文内联引用
  2. 标准排除指令(每个prompt必须包含):
    从镜头1开始,不要展示多宫格分镜参考图片。分镜图制作成电影级别的高清影视级别的视频。严禁参考图出现在画面中。每个画面为单一画幅,独立展示,没有任何分割线或多宫格效果画面。(Exclusions); Do not show speech bubbles, do not show comic panels, remove all text, full technicolor.排除项: No speech bubbles(无对话气泡),No text(无文字), No comic panels(无漫画分镜),No split screen(无分屏),No monochrome(非单色/黑白),No manga effects(无漫画特效线).正向替代:Fullscreen(全屏),Single continuous scene(单一连续场景).表情、嘴型、呼吸、台词严格同步。去掉图片中的水印,不要出现任何水印。没有任何字幕。
  3. 集信息行 + 场景/道具内联引用
    {video_id} 第X集「{episode_title}」{上/下}半部分。{synopsis}。 氛围:{atmosphere.overall_mood}。 场景参考 (@{场景ID}_ref.png) (@{场景ID}_ref.png)。道具参考 (@{道具ID}_ref.png)。
    • 场景/道具参考以
      (@xx_ref.png)
      形式直接在氛围描述后内联,不额外说明"为场景XXX的参考图"
    • 无场景/道具引用时省略该段
  4. 逐镜头描述(基于
    storyboard_9grid
    生成9条):
    镜头N(time_start-time_end): 第X集{上/下}半第N格:{scene_description}。{camera.movement}{camera.type}{camera.angle}。{atmosphere}。 音效:{sfx}。 (@{角色名}_ref.png){角色名}{action},表情{expression}。 (@{角色名}_ref.png){角色名}说:\"{dialogue.text}\"({dialogue.emotion})
    • 旁白格式:
      旁白,{emotion}:\"{text}\"
    • 无对话的角色仅描述动作表情
    • 每个角色提及时都用
      (@{角色名}_ref.png)
      前缀
  5. referenceFiles 构建规则
    • 分镜参考图:
      episodes/EPxx/{project_id}-EPxx-{A|B}_storyboard.png
    • 本part出场角色参考图:
      characters/{角色名}_ref.png
      (按出场顺序,去重)
    • 本part涉及场景参考图:
      scenes/{场景ID}_ref.png
      (四宫格合成图,如有;prompt中以内联
      (@xx_ref.png)
      引用,不在头部声明)
    • 本part涉及道具参考图:
      props/{道具ID}_ref.png
      (三视图合成图,如有;同上内联引用)
  1. Header Declaration: List storyboard images and character reference images
    • (@{project_id}-EPxx-{A|B}_storyboard.png) is the 9-grid storyboard reference image
    • (@{character name}_ref.png) is the reference image of character \"{character name}\"
      (only list characters appearing in this part)
    • Note: Scene and prop reference images are not declared in the header, but referenced inline in the following text
  2. Standard Exclusion Instructions (must be included in each prompt):
    Start from shot 1, do not show the multi-grid storyboard reference image. Turn the storyboard into a cinematic high-definition film-level video. Strictly prohibit reference images from appearing in the frame. Each frame is a single frame, displayed independently, with no dividing lines or multi-grid effect frames. (Exclusions); Do not show speech bubbles, do not show comic panels, remove all text, full technicolor. Exclusions: No speech bubbles, No text, No comic panels, No split screen, No monochrome, No manga effects. Positive replacements: Fullscreen, Single continuous scene. Expressions, mouth movements, breathing, and lines must be strictly synchronized. Remove watermarks from images, do not show any watermarks. No subtitles.
  3. Episode Information Line + Inline Scene/Prop References:
    {video_id} Episode X 「{episode_title}」 {Part A/Part B}. {synopsis}. Atmosphere: {atmosphere.overall_mood}. Scene references (@{scene ID}_ref.png) (@{scene ID}_ref.png). Prop references (@{prop ID}_ref.png).
    • Scene/prop references are inline in the form of
      (@xx_ref.png)
      right after the atmosphere description, without additional explanation like "is the reference image of scene XXX"
    • Omit this section if there are no scene/prop references
  4. Shot-by-Shot Description (9 entries generated based on
    storyboard_9grid
    ):
    Shot N(time_start-time_end): Episode X {Part A/Part B} Grid N: {scene_description}. {camera.movement}{camera.type}{camera.angle}. {atmosphere}. Sound effect: {sfx}. (@{character name}_ref.png){character name}{action}, expression {expression}. (@{character name}_ref.png){character name} says: \"{dialogue.text}\" ({dialogue.emotion})
    • Narration format:
      Narration, {emotion}: \"{text}\"
    • For characters without dialogue, only describe actions and expressions
    • Prefix each character mention with
      (@{character name}_ref.png)
  5. referenceFiles Construction Rules:
    • Storyboard reference image:
      episodes/EPxx/{project_id}-EPxx-{A|B}_storyboard.png
    • Reference images of characters appearing in this part:
      characters/{character name}_ref.png
      (in order of appearance, deduplicated)
    • Reference images of scenes involved in this part:
      scenes/{scene ID}_ref.png
      (4-grid composite image, if available; referenced inline as
      (@xx_ref.png)
      in the prompt, not declared in the header)
    • Reference images of props involved in this part:
      props/{prop ID}_ref.png
      (3-view composite image, if available; referenced inline as above)

7.3 提交流程

7.3 Submission Process

seedance_project_tasks.json
即为整部作品的唯一任务文件,供
submit-anime-project
技能直接读取并批量推送。

seedance_project_tasks.json
is the only task file for the entire work, which can be directly read by the
submit-anime-project
skill and pushed in batches.

编号规则

Numbering Rules

作品编号

Work Number

  • 格式:
    DM-XXX
    (XXX为三位数字,从001递增)
  • 示例:
    DM-001
    ,
    DM-002
    ,
    DM-003
  • Format:
    DM-XXX
    (XXX is a three-digit number, incrementing from 001)
  • Example:
    DM-001
    ,
    DM-002
    ,
    DM-003

视频编号

Video Number

  • 上半部分
    {作品编号}-EP{集数两位}-A
    • 示例:
      DM-001-EP01-A
      ,
      DM-001-EP25-A
  • 下半部分
    {作品编号}-EP{集数两位}-B
    • 示例:
      DM-001-EP01-B
      ,
      DM-001-EP25-B
  • Part A:
    {work number}-EP{two-digit episode number}-A
    • Example:
      DM-001-EP01-A
      ,
      DM-001-EP25-A
  • Part B:
    {work number}-EP{two-digit episode number}-B
    • Example:
      DM-001-EP01-B
      ,
      DM-001-EP25-B

集数编号

Episode Number

  • 格式:
    EP{两位数字}
    ,从
    EP01
    EP25

  • Format:
    EP{two-digit number}
    , from
    EP01
    to
    EP25

内容创作规范

Content Creation Specifications

剧本要求

Script Requirements

  1. 故事完整性:25集需要有完整的起承转合
    • 第1-3集:世界观介绍、角色登场、引入冲突
    • 第4-8集:冲突升级、角色关系建立
    • 第9-15集:高潮前奏、多线叙事、伏笔布局
    • 第16-20集:高潮阶段、转折、揭示
    • 第21-24集:最终决战、情感爆发
    • 第25集:结局、余韵
  2. 每集30秒约束:每集聚焦一个核心场景/事件,信息密度高
  3. 上下结构:每集上半部分(15s)铺垫/展开,下半部分(15s)高潮/转折
  4. 每集结尾留悬念或情感钩子
  1. Story Completeness: 25 episodes need a complete beginning, development, climax, and ending
    • Episodes 1-3: Worldview introduction, character appearance, conflict introduction
    • Episodes 4-8: Conflict escalation, character relationship establishment
    • Episodes 9-15: Prelude to climax, multi-line narrative, foreshadowing layout
    • Episodes 16-20: Climax stage, turning point, revelation
    • Episodes 21-24: Final battle, emotional outburst
    • Episode 25: Conclusion, aftertaste
  2. 30-Second Per Episode Constraint: Each episode focuses on one core scene/event with high information density
  3. Two-Part Structure: Part A (15s) sets up/develops, Part B (15s) reaches climax/turning point
  4. End each episode with a suspense or emotional hook

对话要求

Dialogue Requirements

  1. 语言:所有对话必须为中文
  2. 风格:符合角色性格,简洁有力(每句不超过15字为佳)
  3. 无字幕:对话通过配音传达,不添加任何字幕
  4. 每集对话控制在3-6句(上下各1-3句)
  1. Language: All dialogues must be in Chinese
  2. Style: Consistent with character personality, concise and powerful (preferably no more than 15 words per sentence)
  3. No Subtitles: Dialogues are conveyed through dubbing, no subtitles added
  4. Control dialogues per episode to 3-6 sentences (1-3 sentences per part)

9宫格分镜要求

9-Grid Storyboard Requirements

  1. 时长:每部分固定15秒
  2. 格数:固定9格(3×3布局,16:9比例)
  3. 每格约 1.67秒
  4. 9格之间需要有视觉连续性和叙事逻辑
  5. 每格必须包含:画面描述、镜头类型、对话(如有)、氛围描述
  6. 上半部分和下半部分各有独立的整体氛围描述
  7. 每部分附带
    video_prompt
    (英文,简洁描述)
  8. 每个Part包含
    scene_refs
    prop_refs
    数组,列出本Part引用的场景/道具ID
  1. Duration: Fixed 15 seconds per part
  2. Grid Count: Fixed 9 grids (3×3 layout, 16:9 aspect ratio)
  3. Each grid is approximately 1.67 seconds
  4. Visual continuity and narrative logic must be maintained between the 9 grids
  5. Each grid must include: scene description, shot type, dialogue (if any), atmosphere description
  6. Part A and Part B each have independent overall atmosphere descriptions
  7. Each part is accompanied by a
    video_prompt
    (English, concise description)
  8. Each Part includes
    scene_refs
    and
    prop_refs
    arrays listing the scene/prop IDs referenced in this Part

故事板配置要求

Storyboard Configuration Requirements

  1. JSON格式,可被程序直接解析
  2. 包含
    part_a
    part_b
    两个完整部分
  3. 每部分包含:氛围、9宫格分镜、scene_refs、prop_refs
  4. 包含AI图像生成的英文Prompt
  5. subtitle
    字段始终为
    false

  1. JSON format, directly parsable by programs
  2. Includes two complete parts:
    part_a
    and
    part_b
  3. Each part includes: atmosphere, 9-grid storyboard, scene_refs, prop_refs
  4. Includes English prompts for AI image generation
  5. The
    subtitle
    field is always
    false

运行指令

Running Instructions

用户可以通过以下方式触发本技能:
  • "制作一部短剧"
  • "生成短剧作品"
  • "produce short drama"
  • "创建新短剧"
  • "开始制作短剧"
  • "运行"(在技能上下文中)
可附带可选参数:
  • 题材/类型:如 "制作一部科幻短剧"、"生成一部校园恋爱短剧"
  • 视觉风格:如 "港风复古"、"Vintage Hong Kong"、"风格7"(指定 visual_styles.json 中的预设)
  • 风格:如 "赛博朋克风格"、"中国风"
  • 角色数量:如 "主角3人"
如用户未指定题材,则随机选择一个有趣的原创题材。 如用户未指定视觉风格,则使用
visual_styles.json
default_style_id
对应的默认风格。

Users can trigger this skill in the following ways:
  • "Make a short drama"
  • "Generate a short drama work"
  • "produce short drama"
  • "Create a new short drama"
  • "Start making a short drama"
  • "Run" (in skill context)
Optional parameters can be attached:
  • Genre/Type: e.g., "Make a sci-fi short drama", "Generate a campus love short drama"
  • Visual Style: e.g., "Hong Kong Retro Style", "Vintage Hong Kong", "Style 7" (specify presets in visual_styles.json)
  • Style: e.g., "Cyberpunk style", "Chinese style"
  • Number of Characters: e.g., "3 main characters"
If users do not specify a genre, a random interesting original genre will be selected. If users do not specify a visual style, the default style corresponding to
default_style_id
in
visual_styles.json
will be used.

执行检查清单

Execution Checklist

阶段1:剧本制作完成后自查

Self-Check After Stage 1: Script Production Completion

  • index.json
    全局索引已更新
  • metadata.json
    作品元数据已创建
  • full_script.md
    完整剧本已生成(含25集概要)
  • character_bible.md
    角色设计已完成
  • scenes/scene_bible.md
    场景设计已完成(3-6个核心场景)
  • props/prop_bible.md
    道具设计已完成(2-5个核心道具)
  • EP01-EP25 所有25个集目录均已创建
  • 每集包含2个文件:
    dialogue.md
    ,
    storyboard_config.json
  • 每集的
    storyboard_config.json
    包含
    part_a
    part_b
  • 每部分包含9宫格分镜
  • 所有视频编号遵循命名规则(
    -A
    /
    -B
    后缀)
  • video_index.json
    已生成且包含50条视频记录(25集×2部分)
  • 所有对话为中文
  • 所有配置标注
    subtitle: false
  • 每集剧情有起承转合的衔接
  • Global index
    index.json
    has been updated
  • Work metadata
    metadata.json
    has been created
  • Complete script
    full_script.md
    has been generated (including 25 episode summaries)
  • Character design
    character_bible.md
    has been completed
  • Scene design
    scenes/scene_bible.md
    has been completed (3-6 core scenes)
  • Prop design
    props/prop_bible.md
    has been completed (2-5 core props)
  • All 25 episode directories (EP01-EP25) have been created
  • Each episode contains 2 files:
    dialogue.md
    ,
    storyboard_config.json
  • Each episode's
    storyboard_config.json
    includes
    part_a
    and
    part_b
  • Each part includes 9-grid storyboard
  • All video numbers follow the naming rules (suffix
    -A
    /
    -B
    )
  • video_index.json
    has been generated and contains 50 video records (25 episodes × 2 parts)
  • All dialogues are in Chinese
  • All configurations mark
    subtitle: false
  • Each episode's plot has coherent beginning, development, and ending

阶段3:媒体生成后,Seedance任务生成自查

Self-Check After Media Generation and Seedance Task Generation (Stage 3)

  • 角色参考图已存在:
    characters/{角色名}_ref.png
  • 场景四宫格图已存在:
    scenes/{场景ID}_ref.png
    (每场景1张合成图)
  • 道具三视图已存在:
    props/{道具ID}_ref.png
    (每道具1张合成图)
  • 分镜参考图已存在:
    episodes/EPxx/{project_id}-EPxx-{A|B}_storyboard.png
  • 项目根目录
    seedance_project_tasks.json
    已生成(总计50条任务)
  • 每条任务的 prompt 使用
    (@文件名)
    格式引用参考图
  • 每条任务的 prompt 包含标准排除指令
  • 每条任务的 prompt 包含逐镜头描述(9条)
  • 每条任务的
    referenceFiles
    列出所有引用的图片路径(分镜图 + 角色 + 场景 + 道具)
  • 不存在每集目录下的
    seedance_tasks.json
    (已统一到项目根目录)

  • Character reference images exist:
    characters/{character name}_ref.png
  • 4-grid scene images exist:
    scenes/{scene ID}_ref.png
    (1 composite image per scene)
  • 3-view prop images exist:
    props/{prop ID}_ref.png
    (1 composite image per prop)
  • Storyboard reference images exist:
    episodes/EPxx/{project_id}-EPxx-{A|B}_storyboard.png
  • seedance_project_tasks.json
    has been generated in the project root directory (total 50 tasks)
  • Each task's prompt uses
    (@file name)
    format to reference reference images
  • Each task's prompt includes standard exclusion instructions
  • Each task's prompt includes shot-by-shot descriptions (9 entries)
  • Each task's
    referenceFiles
    lists all referenced image paths (storyboard images + characters + scenes + props)
  • No
    seedance_tasks.json
    exists in each episode directory (unified to project root directory)

输出示例

Output Example

阶段1完成后报告:

Report After Stage 1 Completion:

✅ 短剧剧本制作完成!

📋 作品信息
- 作品编号:DM-001
- 作品名称:《xxxxx》
- 视觉风格:Cinematic Film(电影质感)
- 类型:xxxxx
- 总集数:25集(每集上下两部分)

📁 项目目录:/data/dongman/projects/DM-001_xxxx/

📊 生成内容统计
- 完整剧本:1份
- 角色设定:X个角色
- 场景设定:X个核心场景
- 道具设定:X个核心道具
- 对话脚本:25份(每集1份,覆盖上下两部分)
- 故事板配置:25份(每集1份,含上下两部分9宫格+场景/道具引用+视频提示词)
- 视频总数:50个(25集 × 上下2部分)
- 总分镜格数:450格(50个视频 × 9格)

🎬 视频编号范围
- 上半部分:DM-001-EP01-A ~ DM-001-EP25-A
- 下半部分:DM-001-EP01-B ~ DM-001-EP25-B

📂 每集文件(2个)
- dialogue.md            → 对话脚本
- storyboard_config.json → 故事板配置(含9宫格分镜 + scene_refs/prop_refs)

⏭️ 下一步
1. 运行 generate-media 技能生成角色参考图 + 分镜图
2. 运行本技能第七步生成 seedance_project_tasks.json(含 @图片引用,50条任务)
3. 运行 submit-anime-project 技能提交任务
✅ Short drama script production completed!

📋 Work Information
- Work ID: DM-001
- Work Name: 《xxxxx》
- Visual Style: Cinematic Film (Cinematic Texture)
- Genre: xxxxx
- Total Episodes: 25 episodes (2 parts per episode)

📁 Project Directory: /data/dongman/projects/DM-001_xxxx/

📊 Generated Content Statistics
- Complete Script: 1 copy
- Character Settings: X characters
- Scene Settings: X core scenes
- Prop Settings: X core props
- Dialogue Scripts: 25 copies (1 per episode, covering both parts)
- Storyboard Configurations: 25 copies (1 per episode, including 9-grid for both parts + scene/prop references + video prompts)
- Total Videos: 50 (25 episodes × 2 parts)
- Total Storyboard Grids: 450 (50 videos × 9 grids)

🎬 Video ID Range
- Part A: DM-001-EP01-A ~ DM-001-EP25-A
- Part B: DM-001-EP01-B ~ DM-001-EP25-B

📂 Per Episode Files (2 files)
- dialogue.md            → Dialogue Script
- storyboard_config.json → Storyboard Configuration (including 9-grid storyboard + scene_refs/prop_refs)

⏭️ Next Steps
1. Run the generate-media skill to generate character reference images + storyboard images
2. Run Step 7 of this skill to generate seedance_project_tasks.json (with @image references, 50 tasks)
3. Run the submit-anime-project skill to submit tasks