# Series Video

> 将故事创意转化为AI视频分镜提示词和资产图像提示词。支持持续创作，自动检测新故事/续写模式。输入故事点子、原文或概述，输出完整的分镜和资产提示词。使用 /series-video 启动，/series-video config 编辑配置。

- Skill: `wddxh/series-video` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add wddxh/series-video`
- Raw SKILL.md: https://api.skillmd.com/api/skills/wddxh/series-video/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: wddxh (https://skillmd.com/u/wddxh)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/wddxh/series-video

---


## 失败处理（核心规则）

**sub-agent task 失败后，永远不要在主 session 自己接管本应由 sub-agent 做的工作。**

正确做法：
1. 分析失败原因（task return 值 / 错误信息）
2. 如可修复：用修正后的参数重新派发同一 sub-agent
3. 如不可修复：将失败原因和已尝试方案返回给用户，停止流程

错误做法：
- ❌ "sub-agent 失败了，我自己来写这个 novel.md"
- ❌ "task 报错了，我在主 session 直接调用 Write"
- ❌ "我 fallback 一下，自己生成 keyframes.json"

原因：主 session 缺少 sub-agent 的隔离上下文（专属 system prompt、skill 加载、permission 配置），自己接管会导致质量下降、跨步骤上下文污染、permission 错配等问题。即使 sub-agent 失败，工作所有权也必须留在 sub-agent 层。

## 总流程

调用 `/series-video` 后，按以下顺序执行：

1. **配置加载** — 读取或创建 [config.md](config.md)（首次运行进入交互式引导）
2. **模式检测** — 检查 [story/](story/) 是否存在，确定新故事模式或续写模式
3. **输入解析** — 解析用户输入，确定故事来源（内联文本/文件/交互式/Director 生成）
4. **执行工作流** — 根据模式进入对应工作流：
   - 新故事 → 使用 Skill tool 调用 `new-story` skill，传递参数：total_episodes(可选), story_input(可选), work_mode
   - 续写 → 使用 Skill tool 调用 `continue-story` skill，传递参数：total_episodes(可选), story_input(可选), work_mode

**版权规避：所有生成内容（大纲、小说、分镜、资产提示词等）不得出现现实中的明星或公众人物名字、真实地名、商标名或其他受版权/商标保护的名称，必要时使用虚构替代名称。**

**硬性约束：每次调用 `/series-video` 仅生成一集内容。** 无论任何模式（default/full-auto），对于大纲、原文、分镜、资产的生成都仅生成本集内容。生成完毕后 skill 结束，不得自动循环生成多集或全集内容。带总集数参数时仅额外生成 arc 文件，不改变单集生成的约束。

## 阶段 1: 配置加载

1. 使用 Read 工具检查当前工作目录下是否存在 [config.md](config.md)
2. 若已存在 → 读取并解析配置值
3. 若不存在 → 进入**交互式配置引导**（仅首次运行），参考 [config-template.md](config-template.md) 模板进行交互式配置引导，逐个询问每项配置，每次只问一个，提供多选项供用户选择：

   **第 1 项：图像模型**
   - A) none（不生成图像）
   - B) dreamina（即梦）

   **若用户选择 dreamina，继续询问以下 3 项配置：**

   **第 1a 项：即梦 — 图像模型版本**
   - A) 4.0（免费，推荐）
   - B) 5.0（每张约 3 积分，画质更高）
   - C) 其他版本（3.0/3.1/4.1/4.5/4.6）

   **第 1b 项：即梦 — 图片比例**
   - A) 1:1（推荐）
   - B) 3:4
   - C) 16:9
   - D) 其他

   **第 1c 项：即梦 — 图片分辨率**
   - A) 2k（推荐）
   - B) 4k（仅 4.0+ 支持）

   **第 1d 项：视频模型**
   - A) none（不生成视频）
   - B) dreamina（即梦）

   **若用户选择 dreamina，继续询问以下配置：**

   **第 1e 项：即梦 — 视频模型版本**
   - A) seedance2.0fast（推荐，速度更快）
   - B) seedance2.0（标准）
   - C) seedance2.0fast_vip（VIP 加速）
   - D) seedance2.0_vip（VIP 标准）

   **第 1f 项：即梦 — 视频比例**
   - A) 16:9（推荐，横屏）
   - B) 9:16（竖屏，短视频常用）
   - C) 1:1
   - D) 其他

   **第 1g 项：即梦 — 视频分辨率**
   - A) 720p（当前仅支持 720p）

   **第 2 项：视频风格**
   - A) 2D动漫
   - B) 3D动漫
   - C) 3D写实
   - D) 2D手绘
   - E) 自定义输入

   **第 3 项：语言**
   - A) auto（跟随输入语言）
   - B) zh（中文）
   - C) en（英文）
   - D) 自定义输入

   **第 4 项：每集分镜数**（建议 10-20）
   - A) 10
   - B) 15（推荐）
   - C) 20
   - D) 自定义输入

   **第 5 项：每集时长目标**
   - A) 1-2分钟（推荐）
   - B) 2-3分钟
   - C) 自定义输入

   **第 6 项：单镜头时长范围**
   - A) 8-12秒
   - B) 10-15秒（推荐）
   - C) 12-18秒
   - D) 自定义输入

   **第 7 项：单镜头资产上限**
   - A) 3
   - B) 5（推荐）
   - C) 7
   - D) 自定义输入

   **第 8 项：上下文集数**（续写时 Director 读取前 N 集 novel.md 作为剧情上下文）
   - A) 1（推荐）
   - B) 2
   - C) 3
   - D) 5
   - E) 自定义输入

   **第 9 项：默认模式**
   - A) default（用户确认剧情方向，其余自动）
   - B) full-auto（全自动，无需交互）

   **第 10 项：每集小说字数**
   - A) 3000-4000
   - B) 4000-5000（推荐）
   - C) 5000-6000
   - D) 自定义输入

   所有配置收集完毕后，根据用户选择生成 [config.md](config.md) 写入项目根目录。告知用户可通过 `/series-video config` 随时修改。若图像模型为 `dreamina`，在 config.md 中额外写入 `## 图像生成配置` 区域（包含即梦模型版本、图片比例、图片分辨率）。若图像模型为 `none`，不写此区域。若视频模型为 `dreamina`，在 config.md 中额外写入 `## 视频生成配置` 区域（包含即梦视频模型版本、视频比例、视频分辨率）。若视频模型为 `none`，不写此区域。

4. 解析以下配置值：
   - **图像模型**：none 或 dreamina
   - **图像生成配置**（仅图像模型非 none 时）：即梦模型版本、图片比例、图片分辨率
   - **视频模型**：none 或 dreamina
   - **视频生成配置**（仅视频模型非 none 时）：即梦视频模型版本、视频比例、视频分辨率
   - **视频风格**：视频的视觉风格（2D动漫/3D动漫/3D写实/2D手绘等）
   - **语言**：提示词输出语言
   - **每集分镜数**：每集包含的分镜数量
   - **每集时长目标**：每集目标时长
   - **单镜头时长范围**：每个分镜镜头的时长约束
   - **单镜头资产上限**：每个分镜镜头中引用资产的最大数量
   - **上下文集数**：续写时回顾的历史集数
   - **默认模式**：默认工作模式
   - **每集小说字数**：每集小说的字数范围

## 阶段 2: 模式检测

使用 Bash 工具执行 `ls story/` 检查当前工作目录下是否存在 [story/](story/) 目录：

- **目录不存在或为空** → 进入**新故事模式**
- **目录存在且有内容** → 进入**续写模式**，使用 Glob 匹配 `story/episodes/ep*/outline.md` 找到最新集数编号，从下一集继续

## 阶段 3: 输入解析

解析 `$ARGUMENTS`，提取两个可选参数：**总集数**和**故事材料**。

**特殊命令：** 若 `$ARGUMENTS` 为 `config`，使用 Read 打开 [config.md](config.md) 展示给用户，询问是否编辑。流程结束，不进入阶段 4。

**参数提取规则：**
1. 若 `$ARGUMENTS[0]`（第一个空格分割的词）为纯数字 → 解析为**总集数**，`$ARGUMENTS[1]` 及之后的内容作为故事材料候选
2. 否则 → 无总集数，`$ARGUMENTS` 整体作为故事材料候选

**故事材料识别：**
- 故事材料候选为空 → 无故事材料
- 故事材料候选以 `.txt` 或 `.md` 结尾 → 使用 Read 读取该文件内容作为故事材料
- 其他 → 作为内联文本故事材料

**解析结果传递给阶段 4：**
- `total_episodes`（可选）— 总集数
- `story_input`（可选）— 故事材料内容

## 阶段 4: 执行工作流

根据模式检测结果，使用 Skill tool 调用对应工作流 skill：

- **新故事模式** → 使用 Skill tool 调用 `new-story` skill，传递参数：`{work_mode} {total_episodes} "{story_input}"`
- **续写模式** → 使用 Skill tool 调用 `continue-story` skill，传递参数：`{work_mode} {total_episodes} "{story_input}"`

参数说明：
- `$ARGUMENTS[0]` = work_mode（default / full-auto）
- `$ARGUMENTS[1]` = total_episodes（总集数，无则传空字符串）
- `$ARGUMENTS[2]` = story_input（故事材料，引号包裹，无则传空字符串）

