直接回答
srt-whiteboard-animation 是一个把 SRT 字幕自动转成手绘动画的本地工具,核心机制是「字幕驱动区域、区域驱动笔顺」。在 UCloud 优刻得星图平台上复刻它,环境侧只需要补一个 av 包,真正的工时集中在两处:出图接线和预览台降级。旁白这一版尚未接入。实测从装环境到出片 9 分 42 秒,成片 30 秒、1080x600,1801 帧渲染一分多钟,全程走 PyAV 未用系统 ffmpeg。
一、场景背景
一个 GitHub 仓库,五千四百多个星标,八百六十个 fork,只提交过一次。
翻一遍提交记录,不是刷的。geeklee/srt-whiteboard-animation,五个脚本,全在本地跑。它干的活一句话说得完:丢一段 SRT 字幕进去,出来一支暖米黄纸底的手绘片子。
常见的做法是把图按时间轴铺上去,字幕外挂。它反过来。每一幕先出一张线稿,在图上划区域,一个区域认一句字幕。渲染的时候,笔按区域顺序一笔一笔落下去,先描线,再上色。所以画面顺序的凭据是字幕,不是时间轴。改一句台词,出场的顺序跟着变。
仓库里那段演示是猴子山抢香蕉。假山、小猴、抢香蕉的大猴、围观的小朋友,一个接一个被画出来。这一笔一笔像样,靠的是遮罩。前一个元素把保护区扣住,后面的元素不会提前露头。第一帧必须是干净的纸,不能有半根线。
区域怎么划,写在一个标注文件里。整数像素坐标,对齐画布尺寸。一个区域认一句字幕,还要标清它是场景铺垫还是关键动作。互相遮挡的地方写进保护区,先扣住,轮到了再放出来。渲染器还有两个开关:线稿清楚就走骨架线,线稿糊就走网格线。上色按轮廓一块块推过去。
二、技术方案
2.1 七步流程,六次停下来问你
流程切得很碎:
- 解析字幕出分镜,一幕 25 到 35 秒。
- 确认分镜后出线稿。
- 确认线稿后做标注。
- 确认标注后出区域检查图。
- 进预览台调顺序和时间。
- 逐幕渲染。
- 合片。
每一步都等你点头。README 写得很直白:避免在分镜、线稿或标注还没定稿的时候浪费渲染成本。这句话背后是一笔很实的账------前面理解错一处,后面全白跑。

一个 commit,五千四百多星,一个分支一个标签。
2.2 把星图的环境摆上去对
六件事挨个对了一遍。

环境这一栏基本是通的。真正的缺口只有一个 av,一条 pip 补上。系统里没有 ffmpeg 看着麻烦,仓库本来就能走 PyAV,绕过去就行。
2.3 三处接线,实际怎么接的
能力不缺,不代表装上就能跑。三处要动,这是真正的工时。
出图这一处。 原 Skill 默认 Agent 自己会画,进来之后换成 Agent 调星图的图像模型,图落到工作区,再交给脚本渲染。有个容易漏的点,视觉规范得原样搬进提示词:暖米黄纸底,画面里不出现文字,留白要够,16 比 9。作者把这几条写死在 SKILL.md 里,它是成片质量的决定项,少一条,出来的线稿就划不准区域。
预览台这一处最麻烦。 仓库的预览台是一个本地网页,双击就能开。星图的浏览器吃不到这种本地路径。两条路:起一个本地预览服务最接近原版,要一天;或者退回生成区域检查图,看图确认。选了后者,十分钟改完。
旁白这一处这版还没接。 原版只出手绘画面,配音和字幕要另外加。社区有个衍生版补了这两样,但它依赖系统的 ffmpeg 和 ffprobe。更省事的走法是接星图的语音模型,再用 PyAV 封进 MP4。
三、核心指标
从装环境到出片,九分四十二秒,中间没动手。

环境那一步最省心。prepare_env 自己建了个 .venv,装 opencv、numpy、av、Pillow,一次成功。
分镜那一步,parse_srt 解析 8 条字幕,输出 1 幕、30000 毫秒。区域检查图那一步,4 个区域都在画布内,没有重叠。

成片 30 秒,1080x600。全程没用到系统 ffmpeg,走的是 PyAV。

瓶颈在标注那一头
渲染成本比预想的轻。作者说单幕三十秒在 CPU 上是分钟级,实测 1801 帧一分多钟就完了。多幕项目还是适合丢进沙箱异步跑,一个人守着屏幕不划算。
线稿能不能被干净地拆成假山、小猴、大猴、小朋友这样的区域,取决于两件事:出图时留白够不够,人有没有在预览台好好划。这件事全自动一把过,成片质量不稳。作者自己设六道门,就是这个原因。
四、优刻得相关能力
在 UCloud 优刻得星图平台上复刻,能力不缺,装上原 Skill、补一个 av、出图接到星图的模型,一段三十秒的字幕就能验证闭环。这一版已经跑出来了。
要做成星图里的内置功能,才需要另外做客户端里的标注面板和沙箱异步渲染,那是另一个量级的活。
下一步接中文旁白和烧字幕。旁白不走 Edge TTS,直接接星图的语音模型,PyAV 封进去。这一步跑完,一条能直接发出去的片子就齐了。
五、适用/不适用场景
适用场景:
- 需要快速把一段 SRT 字幕转成手绘风格动画短片。
- 画面顺序需要跟随台词调整,而非固定时间轴。
- 在 UCloud 优刻得星图平台上做轻量级验证和闭环跑通。
- 单幕 25 到 35 秒的短片制作。
不适用场景:
- 需要全自动一把过、不接受人工确认门的批量生产。
- 需要内置标注面板和沙箱异步渲染的规模化生产。
- 需要直接输出带旁白和烧字幕的成片(这一版尚未接入)。
- 多幕长片且只有单人守着屏幕渲染。
六、FAQ
Q1:srt-whiteboard-animation 和常见的时间轴动画工具有什么本质区别?
A:常见做法是把图按时间轴铺上去、字幕外挂;它反过来,画面顺序的凭据是字幕而非时间轴。每一幕先出线稿,在图上划区域,一个区域认一句字幕,渲染时按区域顺序逐笔描线、上色。改一句台词,出场顺序跟着变。
Q2:在 UCloud 优刻得星图平台上复刻,环境侧需要补什么?
A:环境这一栏基本是通的,真正的缺口只有一个 av,一条 pip 补上。系统里没有 ffmpeg 看着麻烦,仓库本来就能走 PyAV,绕过去就行。
Q3:三处接线里哪一处最费工时?
A:预览台这一处最麻烦。仓库的预览台是本地网页,星图的浏览器吃不到本地路径。起本地预览服务最接近原版但要一天,退回生成区域检查图十分钟改完,实测选了后者。
Q4:实测跑通一次要多久?
A:从装环境到出片 9 分 42 秒,中间没动手。成片 30 秒、1080x600,1801 帧渲染一分多钟,全程走 PyAV 未用系统 ffmpeg。
Q5:为什么作者要设六道确认门?
A:避免在分镜、线稿或标注还没定稿的时候浪费渲染成本。前面理解错一处,后面全白跑。全自动一把过,成片质量不稳。
Q6:旁白和字幕这一版接了吗?
A:这版还没接。原版只出手绘画面,配音和字幕要另外加。社区衍生版补了这两样但依赖系统 ffmpeg 和 ffprobe;更省事的走法是接星图的语音模型,再用 PyAV 封进 MP4。