ワンクリックで
compose-video
把已生成的视频片段按剧本顺序拼接为单集成片,可选混入 BGM 与场景间转场。当用户说"拼成片"、"合成本集视频"或"加背景音乐"时使用。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
把已生成的视频片段按剧本顺序拼接为单集成片,可选混入 BGM 与场景间转场。当用户说"拼成片"、"合成本集视频"或"加背景音乐"时使用。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
调用项目配置的文本模型生成 JSON 剧本(同时产出每个分镜的 image_prompt 与 video_prompt)。由 create-episode-script subagent 调用。读取 step1 中间文件和 project.json,输出符合 Pydantic schema 的剧本。
无人值守驱动 CodeRabbit、Gemini Code Assist、OpenAI Codex 的 review → 修复 → push → 再 review 循环,直到全部通过或触发收敛退出。主动调用:用户刚 push PR 或跑完 /commit-push-pr;提到 review / coderabbit / gemini / codex / 审查 / AI review / 等 bot 回复;CodeRabbit paused 需 resume;reviewer 有 actionable comments。即使用户只说"PR 怎么样了""review 回了吗"也应触发。
项目管理工具集。使用场景:(1) 分集切分——探测切分点并执行切分,(2) 批量添加角色/场景/道具到 project.json。提供 peek(预览)+ split(执行)的渐进式切分工作流,以及角色/场景/道具批量写入。
为剧本场景生成视频片段。当用户说"生成视频"、"把分镜图变成视频"、想重新生成某个场景的视频、或视频生成中断需要续传时使用。支持整集批量、单场景、断点续传等模式。
为剧本场景生成分镜图。当用户说"生成分镜"、"预览场景画面"、想重新生成某些分镜图、或剧本中有场景缺少分镜图时使用。自动保持角色和画面连续性。
"统一资产生成 skill:接受 `--type=character|scene|prop`,或不传自动扫所有 pending(缺 sheet)资源并按类型分发。当用户说"生成角色图"/"生成场景图"/"生成道具图"、想为新资产创建参考图、或有资产缺少 *_sheet 时使用。"
| name | compose-video |
| description | 把已生成的视频片段按剧本顺序拼接为单集成片,可选混入 BGM 与场景间转场。当用户说"拼成片"、"合成本集视频"或"加背景音乐"时使用。 |
把单集已生成的视频片段(videos/*.mp4)按剧本顺序串接为一段成片,写入 output/。可选混入 BGM、按 transition_to_next 添加场景间转场。
scenes[];narration(segments[])和 reference_video(video_units[])会被脚本拒绝。这两种模式的成片导出请走 Web 端剪映草稿导出脚本必须在含 project.json 的项目 cwd 内运行,并使用相对项目根 cwd 的剧本文件名:
# 最简形式:按剧本顺序拼接 + 自动转场(按 transition_to_next)
python .claude/skills/compose-video/scripts/compose_video.py scripts/episode_1.json
# 混入 BGM(音乐文件相对项目根 cwd 或绝对路径)
python .claude/skills/compose-video/scripts/compose_video.py scripts/episode_1.json --music background_music.mp3
# 关闭转场(一律 cut 拼接,可用于规避 xfade 编码不一致问题)
python .claude/skills/compose-video/scripts/compose_video.py scripts/episode_1.json --no-transitions
# 自定义输出文件名(输出固定落在 output/ 下)
python .claude/skills/compose-video/scripts/compose_video.py scripts/episode_1.json --output episode_1_final.mp4
完整参数:
| 参数 | 类型 | 说明 |
|---|---|---|
script | 位置参数(必填) | 剧本文件名(相对项目 cwd) |
--output OUTPUT | 可选 | 输出文件名;缺省按剧本 novel.chapter 字段生成。无论何种取值,最终都落在 output/ 子目录内 |
--music MUSIC | 可选 | BGM 文件路径(相对项目 cwd 或绝对路径),但必须解析后位于项目目录内 |
--no-transitions | flag | 全部用 cut 直接拼接,忽略剧本里的 transition_to_next |
ProjectManager.load_script() 从 scripts/ 加载(路径过滤复用 lib 内 _safe_subpath)scenes[i].generated_assets.video_clip 逐个解析视频文件并校验存在xfade 转场需求时按 transition_to_next 加滤镜--music,再做一遍 audio mix;输出文件名追加 _with_music按剧本字段 scenes[i].transition_to_next 映射:
| 字段值 | ffmpeg 行为 |
|---|---|
cut(默认) | 直接拼接,无淡入淡出 |
fade | xfade=transition=fade:duration=0.5 |
dissolve | xfade=transition=dissolve:duration=0.5 |
wipe | xfade=transition=wipeleft:duration=0.5 |
project.json)scenes[])generated_assets.video_clip 都已生成ffmpeg / ffprobe 都在 PATH(脚本会预检)--music)下列能力未实现,请使用 Web 端剪映草稿导出:
scenes[])