produce-anime
短剧制作技能 (Produce Short Drama)
概述
本技能用于自动化生成完整短剧作品的全套制作文档和脚本。每次运行生成 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读取,注入到提示词和配置中)
完整工作流程(4个阶段)
| 阶段 | 技能 | 产出 |
|---|---|---|
| 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 |
视觉风格预设
项目支持从 /data/dongman/.config/visual_styles.json 读取视觉风格预设。用户可通过以下方式指定风格:
- 指定风格名:如 "使用 Vintage Hong Kong 风格"
- 指定风格ID:如 "风格7"
- 指定中文名:如 "港风复古"
- 不指定:使用
default_style_id对应的默认风格
⚠️ 风格选择交互:在生成角色参考图、场景四宫格图和道具三视图时,必须先让用户选择视觉风格。使用
ask_questions工具列出visual_styles.json中的所有风格选项,让用户确认后再开始生成。风格会同时影响角色/场景/道具的参考图风格和分镜图风格。
选中的风格会:
- 写入
metadata.json的visual_style字段 - 写入每集
storyboard_config.json的visual_style字段 - 将
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... |
执行流程
当用户要求制作短剧/影视作品时,按以下步骤顺序执行:
第一步:初始化项目
- 读取
/data/dongman/projects/index.json获取当前作品编号(如不存在则从DM-001开始) - 在
/data/dongman/projects/下创建新作品目录,命名规则:{作品编号}_{作品名称拼音缩写}/ - 创建作品目录结构:
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 # 视频编号管理索引
第二步:剧本编写 (Script Writing)
生成 script/full_script.md,包含:
# 《作品名称》完整剧本
## 作品信息
- **类型**:[冒险/奇幻/科幻/日常/恋爱 等]
- **风格**:[热血/治愈/悬疑/搞笑 等]
- **视觉风格**:[风格预设名称,如 Cinematic Film]
- **目标受众**:[少年/少女/青年/全年龄]
- **总时长**:25集 × 30秒 = 12分30秒
- **核心主题**:一句话概括
## 世界观设定
[200-300字描述世界观]
## 故事大纲
[500字总体故事线]
## 各集概要
### 第1集:[标题]
- **剧情概要**:[50字]
- **关键事件**:[列表]
- **情感基调**:[喜/怒/哀/乐/紧张/温馨]
### 第2集:[标题]
...(共25集)
第三步:角色设计 (Character Design)
生成 characters/character_bible.md,每个角色包含:
# 角色设定集
## 主要角色
### 角色1:[名字]
- **全名**:
- **年龄**:
- **性别**:
- **身高/体重**:
- **外貌特征**:[详细描述,用于AI绘图提示词]
- 发型/发色:
- 瞳色:
- 体型:
- 标志性特征:
- **服装设计**:
- 日常服装:
- 战斗/特殊服装:
- **性格特点**:
- **口头禅**:
- **背景故事**:[100字]
- **角色弧光**:[在25集中的成长变化]
- **AI绘图关键词(英文)**:[用于生成角色一致性的Prompt]
## 次要角色
...
## 角色关系图
[用文字描述角色间的关系网络]
第三步B:场景设计 (Scene Design)
生成 scenes/scene_bible.md,记录全剧会反复出现的主要场景。每个场景包含 AI 绘图关键词,用于后续生成多视角参考图。
# 场景设定集
## 场景1:[场景名称]
- **场景ID**:scene_01
- **场景描述**:[50-100字描述物理空间、装饰、氛围]
- **出现集数**:EP01, EP02, EP05, EP15...
- **关键视觉元素**:[列出该场景的标志性物件、色调、灯光]
- **AI绘图关键词(英文)**:[详细的英文提示词,包含空间布局、光影、陈设风格]
## 场景2:[场景名称]
...
场景筛选原则:只收录在 3集以上 反复出现的重要场景(一次性出现的场景无需单独建参考图)。通常一部 25 集短剧有 3-6 个核心场景。
第三步C:道具设计 (Prop Design)
生成 props/prop_bible.md,记录全剧中有剧情意义的重要道具。每个道具包含 AI 绘图关键词,用于后续生成三视图。
# 道具设定集
## 道具1:[道具名称]
- **道具ID**:prop_01
- **道具描述**:[30-50字描述外观、材质、尺寸]
- **出现集数**:EP10, EP12, EP25...
- **剧情意义**:[此道具在剧中的象征/功能意义]
- **AI绘图关键词(英文)**:[详细的英文提示词,包含材质、颜色、形状、细节]
## 道具2:[道具名称]
...
道具筛选原则:只收录具有剧情推动或象征意义的道具(如信物、关键文件、标志性物品),不收录日常物件。通常一部 25 集短剧有 2-5 个核心道具。
第四步:逐集生成内容
对每一集(EP01-EP25),生成以下 2个文件(seedance_tasks.json 在阶段3媒体生成后单独生成):
4.1 对话脚本 dialogue.md
覆盖上、下两部分的全部对话:
# 第X集:[标题] 对话脚本
## 注意:本集视频不带字幕,对话通过配音传达
## 上半部分(Part A:00:00-00:15)
## 视频编号:DM-001-EP01-A
| 序号 | 时间 | 角色 | 对话内容(中文) | 语气/情感 | 备注 |
|------|------|------|----------------|----------|------|
| 1 | 00:02 | 角色A | 「对话内容」 | 坚定 | — |
| 2 | 00:06 | 角色B | 「对话内容」 | 惊讶 | — |
| 3 | 00:11 | 角色A | 「对话内容」 | 激动 | — |
## 下半部分(Part B:00:15-00:30)
## 视频编号:DM-001-EP01-B
| 序号 | 时间 | 角色 | 对话内容(中文) | 语气/情感 | 备注 |
|------|------|------|----------------|----------|------|
| 4 | 00:17 | 角色B | 「对话内容」 | 低沉 | — |
| 5 | 00:22 | 角色A | 「对话内容」 | 温柔 | — |
| 6 | 00:27 | 角色C | 「对话内容」 | 神秘 | — |
4.2 故事板配置 storyboard_config.json
包含上、下两部分,每部分 9宫格分镜(3×3布局,16:9比例):
{
"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数组)
第五步:生成视频编号管理索引
生成 video_index.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
}
}
第六步:更新全局索引
更新 /data/dongman/projects/index.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
}
]
}
第七步:生成 Seedance 任务(⚠️ 媒体生成后执行)
前置条件:必须先运行
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 中。
7.1 seedance_project_tasks.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条)
7.2 prompt 构建规则
-
头部声明:列出分镜图和角色参考图
(@{project_id}-EPxx-{A|B}_storyboard.png) 为9宫格分镜参考图(@{角色名}_ref.png) 为角色「{角色名}」的参考形象(仅列出本part出场的角色)- 注意:场景和道具参考图不在头部声明,在后文内联引用
-
标准排除指令(每个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(单一连续场景).表情、嘴型、呼吸、台词严格同步。去掉图片中的水印,不要出现任何水印。没有任何字幕。 -
集信息行 + 场景/道具内联引用:
{video_id} 第X集「{episode_title}」{上/下}半部分。{synopsis}。 氛围:{atmosphere.overall_mood}。 场景参考 (@{场景ID}_ref.png) (@{场景ID}_ref.png)。道具参考 (@{道具ID}_ref.png)。- 场景/道具参考以
(@xx_ref.png)形式直接在氛围描述后内联,不额外说明"为场景XXX的参考图" - 无场景/道具引用时省略该段
- 场景/道具参考以
-
逐镜头描述(基于
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)前缀
- 旁白格式:
-
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(三视图合成图,如有;同上内联引用)
- 分镜参考图:
7.3 提交流程
seedance_project_tasks.json 即为整部作品的唯一任务文件,供 submit-anime-project 技能直接读取并批量推送。
编号规则
作品编号
- 格式:
DM-XXX(XXX为三位数字,从001递增) - 示例:
DM-001,DM-002,DM-003
视频编号
- 上半部分:
{作品编号}-EP{集数两位}-A- 示例:
DM-001-EP01-A,DM-001-EP25-A
- 示例:
- 下半部分:
{作品编号}-EP{集数两位}-B- 示例:
DM-001-EP01-B,DM-001-EP25-B
- 示例:
集数编号
- 格式:
EP{两位数字},从EP01到EP25
内容创作规范
剧本要求
- 故事完整性:25集需要有完整的起承转合
- 第1-3集:世界观介绍、角色登场、引入冲突
- 第4-8集:冲突升级、角色关系建立
- 第9-15集:高潮前奏、多线叙事、伏笔布局
- 第16-20集:高潮阶段、转折、揭示
- 第21-24集:最终决战、情感爆发
- 第25集:结局、余韵
- 每集30秒约束:每集聚焦一个核心场景/事件,信息密度高
- 上下结构:每集上半部分(15s)铺垫/展开,下半部分(15s)高潮/转折
- 每集结尾留悬念或情感钩子
对话要求
- 语言:所有对话必须为中文
- 风格:符合角色性格,简洁有力(每句不超过15字为佳)
- 无字幕:对话通过配音传达,不添加任何字幕
- 每集对话控制在3-6句(上下各1-3句)
9宫格分镜要求
- 时长:每部分固定15秒
- 格数:固定9格(3×3布局,16:9比例)
- 每格约 1.67秒
- 9格之间需要有视觉连续性和叙事逻辑
- 每格必须包含:画面描述、镜头类型、对话(如有)、氛围描述
- 上半部分和下半部分各有独立的整体氛围描述
- 每部分附带
video_prompt(英文,简洁描述) - 每个Part包含
scene_refs和prop_refs数组,列出本Part引用的场景/道具ID
故事板配置要求
- JSON格式,可被程序直接解析
- 包含
part_a和part_b两个完整部分 - 每部分包含:氛围、9宫格分镜、scene_refs、prop_refs
- 包含AI图像生成的英文Prompt
subtitle字段始终为false
运行指令
用户可以通过以下方式触发本技能:
- "制作一部短剧"
- "生成短剧作品"
- "produce short drama"
- "创建新短剧"
- "开始制作短剧"
- "运行"(在技能上下文中)
可附带可选参数:
- 题材/类型:如 "制作一部科幻短剧"、"生成一部校园恋爱短剧"
- 视觉风格:如 "港风复古"、"Vintage Hong Kong"、"风格7"(指定 visual_styles.json 中的预设)
- 风格:如 "赛博朋克风格"、"中国风"
- 角色数量:如 "主角3人"
如用户未指定题材,则随机选择一个有趣的原创题材。
如用户未指定视觉风格,则使用 visual_styles.json 中 default_style_id 对应的默认风格。
执行检查清单
阶段1:剧本制作完成后自查
-
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 - 每集剧情有起承转合的衔接
阶段3:媒体生成后,Seedance任务生成自查
- 角色参考图已存在:
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(已统一到项目根目录)
输出示例
阶段1完成后报告:
✅ 短剧剧本制作完成!
📋 作品信息
- 作品编号: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 技能提交任务