srt-whiteboard-animation
geeklee/srt-whiteboard-animation加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象你是一位知识博主,需要每周产出 3-5 条科普短视频。传统方式下,你需要写文案、配音、找素材、做动画——一条 3 分钟的视频,制作周期往往需要大半天。有没有一种方式,可以把你写的文字稿直接变成有画面感的动画?
srt-whiteboard-animation 给出了一种解法:只要给一段 SRT 字幕,它就能生成暖米黄纸张底的手绘白板动画——假山、小猴、香蕉依次"画"出来,再逐步上色,最终导出 MP4。整个过程,字幕驱动、按叙事顺序作画,像有一位隐形的画师在纸上跟着你的台词一笔笔画出来。

场景示例:猴子山抢香蕉——笔尖沿骨架连续滑行落墨,先 ink 铺线稿,再 color 添彩
这个项目来自 GitHub 用户 geeklee(自述"爱养鱼的老登 / AI Builder / 用 AI 团队打造一人公司")。他在 AI 内容创作过程中,遇到了一个痛点:配音和字幕文件已经有了,但对应的动画视频制作成本高、周期长。现有方案要么需要逐帧手工绘制,要么是机械的擦除动画,缺乏"叙事感"和"手绘温度"。
geeklee 选择将问题工具化,做成了一个可被 AI Agent 调用的 Skill——不是面向普通用户的 GUI 工具,而是嵌入 AI 工作流的自动化脚本。它接收 SRT 字幕输入,通过分区遮罩编排(mask)+ 流式笔迹(stream)技术,自动生成白板手绘动画视频。
本项目的技术核心在于两套机制的组合:
每个画面被划分为多个语义区域,每个区域对应字幕中的一个事件。区域按叙事顺序依次"揭示"——未轮到绘制的区域完全隐藏(mask),已画完的区域保留在画布上,不会被后续操作覆盖。
区域之间的关系通过 annotation.json 管理:sequence 决定出场顺序,subtitle 关联字幕事件,protectedRegions 保护已绘制区域不被意外覆盖。典型排序逻辑为:场景铺垫 → 关键人物/物体 → 动作或变化 → 反应/结果。
每个区域内的绘制方式,不是矩形擦除或逐格跳变,而是连续笔迹。笔尖沿骨架或网格路径连续滑行:先用 ink 模式铺线稿(深灰色),再用 color 模式添彩(仅红/橙/蓝作点缀),权重比例为 2:1。
这种方法生成的画面更有"现场作画"的感觉,而不是机械的动画特效。

原始手绘线稿:极简风格,留白充足,线条克制
项目设计了严格的逐步确认机制,每一步完成后必须等待用户明确确认,才进入下一步:
parse_srt.py 解析字幕,按 25-35 秒/幕拆分场景,输出分镜与配图策略annotation.json,自动打开预览台供调整这种设计刻意牺牲了自动化程度,换取内容质量可控性——在分镜、配图、标注尚未定稿时,不浪费渲染成本。
| 组件 | 技术 |
|---|---|
| 核心依赖 | opencv-python, numpy, Pillow |
| 运行环境 | Python 虚拟环境(通过 prepare_env.py 管理) |
| 视频格式 | H.264 MP4 |
| 标注格式 | JSON(annotation.json) |
| 调用方式 | AI Agent Skill(SKILL.md 定义工作流) |
代码结构清晰:6 个 Python 脚本分别处理 SRT 解析、环境准备、标注预览、白板流式渲染、流式笔迹渲染和多幕合并。
需要较高使用门槛:项目不是"丢字幕出视频"的傻瓜工具,而是需要操作者具备基本的分镜理解和 AI 工具协作能力。用户至少需要:能生成高质量场景图、能把控分镜叙事节奏、能管理 AI Agent 的确认流程。
视频质量依赖上游图片质量:本项目不生成图片,只负责"把静态图变成动画"。如果上游 AI 生成的场景图质量差或风格不统一,最终动画效果也会大打折扣。
渲染速度受限于 CPU:无 GPU 加速,大时长视频渲染需要耐心等待。
白板动画是知识类短视频的重要品类,但传统制作方式依赖专业动画师,成本高、周期长。srt-whiteboard-animation 的意义不在于取代人工,而在于把"做白板动画"这件事的最低门槛大幅降低——你不再需要会画,只需要有文字稿和基础的 AI 绘图能力,就能批量产出白板风格视频。
结合语音克隆 + TTS 工作流(如配套项目 srt-vox-director),甚至可以做到:输入一段文本 → 自动生成配音 + SRT → 自动生成白板动画 → 输出 MP4 的全链路自动化。这代表了 AI 视频内容生产的一个务实方向:不是生成整个视频,而是把已有内容重新包装成另一种媒介形式。
项目地址:geeklee/srt-whiteboard-animation · MIT License · Python · 3.4k Stars