← 返回
未分类 Key

Whiteboard Video Workflow

从 SRT 字幕文件自动生成完整白板动画视频的端到端工作流。依次完成分镜解析、图片生成、视频生成三个阶段。当用户提供 SRT 文件并要求生成白板动画视频,或说"从字幕生成白板视频"、"白板视频工作流"时触发。
从 SRT 字幕文件自动生成完整白板动画视频的端到端工作流。依次完成分镜解析、图片生成、视频生成三个阶段。当用户提供 SRT 文件并要求生成白板动画视频,或说"从字幕生成白板视频"、"白板视频工作流"时触发。
yangagent
未分类 clawhub v0.1.0 1 版本 99622.6 Key: 需要
★ 0
Stars
📥 264
下载
💾 1
安装
1
版本
#latest

概述

Whiteboard Video Workflow

从 SRT 字幕文件到完整白板动画视频片段的自动化工作流。

输入参数

参数必填说明
------------------
srtPathSRT 字幕文件的绝对路径
outputDir输出根目录,默认为 SRT 文件所在目录

工作流步骤

整个流程分为 10 步,必须严格按顺序执行。步骤 3、5、7 使用 subagent,其余步骤由主 agent 直接执行。

步骤 0: 环境预检

运行本 skill 的 scripts/check_env.py,一次性检查所有依赖(Python 虚拟环境、RUNNINGHUB_API_KEY):

python3 <skill-dir>/scripts/check_env.py
  • 成功(退出码 0):从输出中捕获 PYTHON_PATH=<路径>记录该路径用于步骤 7,继续
  • 失败(退出码 1):从输出的 ENV_RESULT=... JSON 中解析各项检查结果,向用户展示清晰易懂的错误说明和修复指引(见下方故障排查指引),终止工作流

注意:脚本会自动检测并安装可修复的依赖,只将无法自动修复的问题报告给大模型。

故障排查指引

当环境预检失败时,必须向用户清晰解释原因并给出具体修复步骤。根据失败项不同,给出对应说明:

RUNNINGHUB_API_KEY 未配置:

> 白板动画视频生成需要 RunningHub API 来调用 AI 模型先生成图片。你需要在 skill 目录下的 .env 文件中配置 API Key。

>

> 修复方法:

> 1. 在 /.env 文件中添加一行:RUNNINGHUB_API_KEY=你的API密钥

> 2. 如果文件不存在,先创建它

> 3. API Key 可在 RunningHub 获取

> 4. 配置完成后重新运行即可

Python 依赖安装失败:

> 白板动画依赖 OpenCV、NumPy、PyAV 等 Python 库来处理视频。自动安装未能成功。

>

> 修复方法:

> 1. 请确认你的 Python 版本为 3.9 或更高版本

> 2. 然后重新运行本工作流,脚本会再次尝试自动安装

多项检查同时失败时,逐条列出每个失败项及对应修复方法,便于用户一次性解决所有问题。

步骤 1: 确定输出目录

  • 如果用户未指定 outputDir,则使用 srtPath 所在目录作为输出根目录
  • outputDir 转换为绝对路径

步骤 2: 创建输出目录结构

运行本 skill 的 scripts/workflow_helper.py

python3 <skill-dir>/scripts/workflow_helper.py init-dirs "<outputDir>"

输出 JSON 含 storyboardDirimageDirvideoDir 三个绝对路径,保存备用。

步骤 3: 解析 SRT 生成分镜脚本(subagent)

启动一个 subagent,指令为:

> 使用 Read 工具读取文件 <将本 skill 目录替换为实际绝对路径>/references/storyboard-parser.md,按照其中的工作流步骤执行。

>

> 输入参数:

> - srtPath = <将srtPath替换为实际绝对路径>

> - projectRoot = <将storyboardDir替换为实际绝对路径>

> - skill-dir = <将本 skill 目录替换为实际绝对路径>(用于定位脚本)

>

> 完成后返回 storyboard.json 的绝对路径和场景数量。

>

> 注意:主 agent 必须将实际路径值填入指令中,不要传递变量名,subagent 无法访问主 agent 的上下文。

必须等待 subagent 完成并获取 storyboard.json 路径后才继续。

步骤 4: 解析 storyboard 生成图片提示词

运行本 skill 的 scripts/workflow_helper.py

python3 <skill-dir>/scripts/workflow_helper.py gen-prompts "<storyboardJsonPath>"

输出一个 JSON 字符串数组,每个元素是一个带白板风格前缀的图片生成提示词,数组索引与 storyboard 中的 scenes 顺序一一对应。

同时从 storyboard.json 中提取每个 scene 的 duration 值(毫秒),按顺序记录为数组备用。

步骤 5: 批量生成白板图片(subagent)

启动一个 subagent,指令为:

> 使用 Read 工具读取文件 <将本 skill 目录替换为实际绝对路径>/references/image-generator.md,按照其中的工作流步骤执行。

>

> 使用批量模式,将以下 JSON 字符串数组作为 prompt 参数传入:

> <将步骤4输出的提示词JSON数组的实际内容粘贴于此>

>

> 参数:

> - skill-dir = <将本 skill 目录替换为实际绝对路径>(用于定位脚本)

> - 输出目录 = <将imageDir替换为实际绝对路径>

> - 宽高比 = "16:9"

>

> 注意:主 agent 必须将实际提示词内容和路径值填入指令中,不要传递变量名,subagent 无法访问主 agent 的上下文。

>

> 重要: 返回所有生成图片的路径列表,顺序必须与提示词数组顺序一致。

必须等待 subagent 完成并获取所有图片路径后才继续。

步骤 6: 校验图片顺序

确认步骤 5 返回的图片路径数组长度与 storyboard 的 scenes 数量一致,顺序正确(第 i 张图片对应第 i 个 scene)。

步骤 7: 批量生成白板动画视频片段(subagent)

启动一个 subagent,指令为:

> 调用 whiteboard-animation skill,使用批量模式。跳过环境预检(主 agent 已确认环境就绪),直接运行批量生成脚本:

>

> ```

> <将PYTHON_PATH替换为步骤0获取的实际值> <将whiteboard-animation skill目录替换为实际路径>/scripts/batch_generate.py \

> --images ... \

> --durations ... \

> --output-dir

> ```

>

> 主 agent 必须将 PYTHON_PATH 和 skill 目录的实际绝对路径填入指令中,不要传递变量名,subagent 无法访问主 agent 的上下文。

>

> 参数:

> - --images:按分镜顺序排列的图片路径列表(空格分隔)

> - --durations:与图片一一对应的时长列表(单位:毫秒,直接使用 storyboard 中的 duration 值,无需转换)

> - --output-dir

>

> 重要: 完成后,收集 目录下所有生成的视频文件路径,按文件名时间戳排序,将完整的视频路径列表返回给主 agent。顺序必须与输入图片顺序一致。

必须等待 subagent 完成并获取所有视频路径后才继续。

步骤 8: 合并视频片段

运行本 skill 的 scripts/workflow_helper.py,将所有视频片段按顺序合并为一个完整视频。必须使用步骤 0 获取的 PYTHON_PATH(PyAV 依赖在虚拟环境中):

<PYTHON_PATH> <skill-dir>/scripts/workflow_helper.py merge-videos "<outputDir>" <videoPath1> <videoPath2> ...
  • 第一个参数为输出目录(合并后的视频保存在此目录)
  • 后续参数为按分镜顺序排列的视频片段路径

输出 JSON 含 mergedVideo(合并后的视频绝对路径)、totalSegmentssizeMB

步骤 9: 输出结果

输出最终结果,包含合并后的完整视频路径和所有片段信息:

输出格式示例:

{
  "mergedVideo": "/path/to/output/白板视频_20260329_120000.mp4",
  "videoSegments": [
    "/path/to/video/vid_20260329_120000_h264.mp4",
    "/path/to/video/vid_20260329_120010_h264.mp4"
  ],
  "totalSegments": 2,
  "sizeMB": 15.3,
  "outputDir": "/path/to/output"
}

关键约束

  • 步骤 0 必须在任何工作开始前执行,check_env.py 脚本会自动检测并安装可修复的依赖,只将无法修复的问题报告给大模型
  • 步骤 3、5、7 必须使用 subagent 执行,主 agent 等待结果
  • 步骤 0 获取的 PYTHON_PATH 必须传递给步骤 7 的 subagent 使用,也用于步骤 8 的视频合并(PyAV 依赖在虚拟环境中),避免重复环境检查
  • 步骤 7 使用 whiteboard-animation 的批量模式(batch_generate.py),由 subagent 一次传入所有图片和时长,脚本内部串行生成,subagent 完成后返回所有视频路径
  • 图片和视频的顺序必须与 storyboard 的 scenes 顺序严格对应
  • duration 贯穿全链路使用毫秒,从 storyboard 到 batch_generate.py 再到 generate_whiteboard.py 统一为毫秒,避免浮点转换丢失精度
  • 步骤 8 使用 PyAV(Python 库)合并视频片段,通过 H.264 重新编码输出统一格式的最终视频

Resources

references/

  • storyboard-parser.md - SRT 分镜解析工作流指令,由步骤 3 的 subagent 读取执行
  • image-generator.md - Banana2 图片生成工作流指令,由步骤 5 的 subagent 读取执行

scripts/

  • check_env.py - 一次性环境预检,检查 Python 虚拟环境、API Key,自动安装可修复的依赖
  • workflow_helper.py - 提供 init-dirs(创建目录结构)、gen-prompts(解析 storyboard 生成提示词)、merge-videos(合并视频片段)三个子命令
  • generate-storyboard.py - 解析 SRT + groups.json 生成 storyboard.json
  • generate-image.py - Banana2 模型文生图,支持单张和批量并发模式
  • banana_prompt_template.py - 白板风格提示词模板

版本历史

共 1 个版本

  • v0.1.0 当前
    2026-05-07 21:44 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

dev-programming

Github

steipete
使用 `gh` CLI 与 GitHub 交互,通过 `gh issue`、`gh pr`、`gh run` 和 `gh api` 管理议题、PR、CI 运行及高级查询。
★ 675 📥 325,236
ai-agent

Self-Improving + Proactive Agent

ivangdavila
自我反思+自我批评+自我学习+自组织记忆。智能体评估自身工作、发现错误并持续改进。
★ 1,376 📥 320,164
ai-agent

self-improving agent

pskoett
捕获经验教训、错误及修正内容,以实现持续改进。适用于以下场景:(1)命令或操作意外失败;(2)用户纠正Claude(如“不,那不对……”“实际上……”);(3)用户请求的功能不存在;(4)外部API或工具出现故障;(5)Claude发现自身
★ 4,078 📥 808,437