generate-video
- Repo stars 2,457
- Author repo ArcReel
生成视频
模式自动分派
MCP 工具在读取剧本后检测顶层结构,自动路由到对应 executor:
| 剧本特征 | 路由 | 输出目录 |
|---|---|---|
generation_mode == "reference_video" 或存在 video_units[] |
task_type="reference_video" → execute_reference_video_task |
reference_videos/{unit_id}.mp4 |
segments[](narration) |
task_type="video" → execute_video_task |
videos/scene_{segment_id}.mp4 |
scenes[](drama) |
同上 | videos/scene_{scene_id}.mp4 |
参考模式跳过分镜图要求,直接把 {script_file} 丢给 executor;executor 自行读取 unit.references → 从 characters/scenes/props 三 bucket 解析 sheet 图 → 内存压缩 → 渲染 prompt → 调 VideoBackend。
为每个场景/片段/unit 创建视频。storyboard/grid 模式用分镜图作为起始帧;reference_video 模式用角色/场景/道具参考图作为 reference_images,跳过分镜环节。
画面比例、时长等规格由项目配置和视频模型能力决定,MCP 工具自动处理。
工具调用
重要:生成视频必须调用下列 MCP 工具入队。此 skill 不提供任何 Python/Shell 脚本,不得用 BASH 调 python .../scripts/*.py。
通过 MCP 工具入队:
| 操作 | 工具 |
|---|---|
| 整集生成(默认) | mcp__arcreel__generate_video_episode({"script": "episode_1.json"}) |
| 断点续传 | mcp__arcreel__generate_video_episode({"script": "episode_1.json", "resume": true}) |
| 单场景 | mcp__arcreel__generate_video_scene({"script": "episode_1.json", "scene_id": "E1S01"}) |
| 批量自选 | mcp__arcreel__generate_video_selected({"script": "episode_1.json", "scene_ids": ["E1S01", "E1S05", "E1S10"]}) |
| 自选 + 续传 | mcp__arcreel__generate_video_selected({"script": "episode_1.json", "scene_ids": [...], "resume": true}) |
| 全部待处理(独立模式) | mcp__arcreel__generate_video_all({"script": "episode_1.json"}) |
所有任务一次性提交到生成队列,由 Worker 按 per-provider 并发配置自动调度。 集号从 script 顶层
episode或文件名推导,无需手动传。reference_video模式下scene_id/scene_ids会被忽略,转整集生成。
工作流程
- 加载项目和剧本 — 确认所有场景都有
storyboard_image - 生成视频 — MCP 工具自动构建 Prompt、调用 API、保存 checkpoint
- 审核检查点 — 展示结果,用户可重新生成不满意的场景
- 更新剧本 — 自动更新
video_clip路径和场景状态
Prompt 构建
Prompt 由 MCP 工具内部自动构建,根据 content_mode 选择不同策略。从剧本 JSON 读取以下字段:
image_prompt(用于分镜图参考):scene、composition(shot_type、lighting、ambiance)
video_prompt(用于视频生成):action、camera_motion、ambiance_audio、dialogue、narration(仅 drama)
- 说书模式:
novel_text不参与视频生成(后期人工配音),dialogue仅包含原文中的角色对话 - 剧集动画模式:包含完整的对话、旁白、音效
- Negative prompt 自动排除 BGM
生成前检查
- 所有场景都有已批准的分镜图
- 对话文本长度适当
- 动作描述清晰简单
reference_video 模式
- 所有 unit 引用的角色 / 场景 / 道具在 project.json 三 bucket 中已注册且
*_sheet文件存在 - 每 unit shots 数 ≤ 4,总时长 ≤ 模型上限
- references 数 ≤ 模型
max_reference_images
参考生视频模式下,输出命名为
{unit_id}.mp4,位于reference_videos/目录。
- Fluxly category
- AI
- Author-declared agents
- No explicit declaration found; this is not inferred or tested compatibility
- Static check
- 88 / 100 · heuristic scan, not runtime safety proof
- Author / version / license
- @ArcReel · no license declared
- Fluxly token estimate
- Lean
- Fluxly setup estimate
- Guided setup
- External API key
- No requirement detected
- Detected OS requirements
- Unspecified
- Runtime requirements
- Python
- Detected file/system behavior
-
- Read-only
- Shell exec
- Detected network behavior
- Local-only
- Install commands
- None (reference only)
Profile is derived at build time from SKILL.md and install vectors. Subject to drift from author intent.
Heads up: 未限定 allowed-tools,默认拥有全部工具权限。
The current SKILL.md does not define a fixed output example. MCP 工具在读取剧本后检测顶层结构,自动路由到对应 executor: 剧本特征 · 路由 · 输出目录 generationmode == "referencevideo" 或存在 videounits[] · tasktype="referencevideo" → executereferencevideotask · referencevideos/{unitid}.mp4
重要:生成视频必须调用下列 MCP 工具入队。此 skill 不提供任何 Python/Shell 脚本,不得用 BASH 调 python .../scripts/.py。 通过 MCP 工具入队: 操作 · 工具
加载项目和剧本 — 确认所有场景都有 storyboardimage 生成视频 — MCP 工具自动构建 Prompt、调用 API、保存 checkpoint 审核检查点 — 展示结果,用户可重新生成不满意的场景
Prompt 由 MCP 工具内部自动构建,根据 contentmode 选择不同策略。从剧本 JSON 读取以下字段: imageprompt(用于分镜图参考):scene、composition(shottype、lighting、ambiance) videoprompt(用于视频生成):action、cameramotion、ambianceaudio、dialogue、narration(仅 drama)
[ ] 所有场景都有已批准的分镜图 [ ] 对话文本长度适当 [ ] 动作描述清晰简单
[ ] 所有 unit 引用的角色 / 场景 / 道具在 project.json 三 bucket 中已注册且 sheet 文件存在 [ ] 每 unit shots 数 ≤ 4,总时长 ≤ 模型上限 [ ] references 数 ≤ 模型 maxreferenceimages
# 生成视频
## 模式自动分派
MCP 工具在读取剧本后检测顶层结构,自动路由到对应 executor:
| 剧本特征 | 路由 | 输出目录 |
|---|---|---|
| `generation_mode == "reference_video"` 或存在 `video_units[]` | `task_type="reference_video"` → `execute_reference_video_task` | `reference_videos/{unit_id}.mp4` |
| `segments[]`(narration) | `task_type="video"` → `execute_video_task` | `videos/scene_{segment_id}.mp4` |
| `scenes[]`(drama) | 同上 | `videos/scene_{scene_id}.mp4` |
参考模式跳过分镜图要求,直接把 `{script_file}` 丢给 executor;executor 自行读取 unit.references → 从 characters/scenes/props 三 bucket 解析 sheet 图 → 内存压缩 → 渲染 prompt → 调 VideoBackend。
为每个场景/片段/unit 创建视频。storyboard/grid 模式用分镜图作为起始帧;reference_video 模式用角色/场景/道具参考图作为 `reference_images`,跳过分镜环节。
> 画面比例、时长等规格由项目配置和视频模型能力决定,MCP 工具自动处理。
## 工具调用
**重要:生成视频必须调用下列 MCP 工具入队。此 skill 不提供任何 Python/Shell 脚本,不得用 BASH 调 `python .../scripts/*.py`。**
通过 MCP 工具入队:
| 操作 | 工具 |
|------|------|
| 整集生成(默认) | `mcp__arcreel__generate_video_episode({"script": "episode_1.json"})` |
| 断点续传 | `mcp__arcreel__generate_video_episode({"script": "episode_1.json", "resume": true})` |
| 单场景 | `mcp__arcreel__generate_video_scene({"script": "episode_1.json", "scene_id": "E1S01"})` |
| 批量自选 | `mcp__arcreel__generate_video_selected({"script": "episode_1.json", "scene_ids": ["E1S01", "E1S05", "E1S10"]})` |
| 自选 + 续传 | `mcp__arcreel__generate_video_selected({"script": "episode_1.json", "scene_ids": [...], "resume": true})` |
| 全部待处理(独立模式) | `mcp__arcreel__generate_video_all({"script": "episode_1.json"})` |
> 所有任务一次性提交到生成队列,由 Worker 按 per-provider 并发配置自动调度。
> 集号从 script 顶层 `episode` 或文件名推导,无需手动传。
> `reference_video` 模式下 `scene_id` / `scene_ids` 会被忽略,转整集生成。
## 工作流程
1. **加载项目和剧本** — 确认所有场景都有 `storyboard_image`
2. **生成视频** — MCP 工具自动构建 Prompt、调用 API、保存 checkpoint
3. **审核检查点** — 展示结果,用户可重新生成不满意的场景
… Author text anchors workflow facts; Fluxly only indexes current sections, terms, files, and commands.
sections -> 模式自动分派 → 工具调用 → 工作流程 → Prompt 构建 → 生成前检查 → referencevideo 模式
terms -> 加载项目和剧本 · 生成视频 · 审核检查点 · 更新剧本 · imageprompt · videoprompt
files/cmd -> generationmode == "referencevideo" · videounits[] · tasktype="referencevideo" · executereferencevideotask · referencevideos/{unitid}.mp4 · segments[] · tasktype="video" · executevideotask
body sha256 -> e34f8c957b85
Decide Fit First
Design Intent
How To Use It
Boundaries And Review