手绘故事视频 Skill 开源:用 Codex 做一条线稿渐渐上色的短片
https://github.com/xiejunjie524/handdraw-story-video
之前用 Codex 做了一套手绘故事视频工作流,现在把它整理成 Skill 开源了。
这个 Skill 的用途很具体:准备 7~9 幅手绘故事图片,做成一条 35~45 秒的竖屏短视频。每一幕先从左到右显现黑白线稿,再沿同一方向慢慢填入低饱和色彩,比较适合暖心小故事、公益内容和生活类短片。
这类视频看起来不复杂,真正做起来却有几个麻烦。故事要拆成不同分镜,人物和画风要尽量一致,线稿和彩色图还必须完全对齐。最后还要控制每幕时长、字幕位置、转场节奏和背景音乐。
这个项目把这些步骤串成了一条相对固定的流程。可以先输入一个主题,让文本模型生成八幕故事,也可以直接使用内置的八幕因果结构。脚本随后为每一幕生成一张彩色母图,再从同一张图中本地提取线稿,最后交给 HyperFrames 生成页面并渲染视频。
这里我觉得比较关键的是:线稿和彩色图不是分别生成的。
如果让生图模型分别画一张线稿和一张彩色图,人物姿势、物体位置和构图很容易发生变化。两张图叠在一起上色时,就会出现边缘错位。这个 Skill 只为每幕生成一张彩色母图,再通过本地脚本提取对应线稿,因此两层画面天然对齐,也能少调用一次生图模型。
项目现在支持按主题一键创建八幕工程。配置好图像模型以后,可以运行:
python scripts/one_click.py \
--topic "凌晨四点的豆浆" \
--config config.local.json \
--output runs/soy-milk
如果还不想真正调用生图模型,可以先加上 --dry-run,检查故事配置和每一幕的提示词。确认没有问题以后,再生成图片和线稿;安装好 HyperFrames 后,追加 --render 就可以继续输出 MP4。
输出目录里会保留 story.json、分镜提示词、彩色母图、线稿、HyperFrames 页面和最终视频,方便中途检查或单独修改某一幕。脚本默认不会自动重试生图,也不会覆盖旧的输出目录,避免一次失败把已经认可的素材替换掉。
怎么安装
仓库根目录本身就是 Codex Skill,可以复制或克隆到 Codex 的 Skills 目录:
git clone https://github.com/xiejunjie524/handdraw-story-video \
"$CODEX_HOME/skills/handdraw-good-deed-story"
然后可以用类似“做一个 40 秒线稿逐渐上色的暖心故事”来触发。
完整运行还需要 Python 3.10 以上、Node.js 18 以上、FFmpeg、HyperFrames 和 GSAP。Python 部分主要使用 OpenCV 提取线稿,视频页面和渲染则交给 HyperFrames。仓库里已经放了故事模板、画风提示词、配置示例和“凌晨四点的豆浆”示例,第一次使用可以照着改。
目前的边界
这不是一个装完就能完全不管的成片机器。生图模型仍可能画错人物、道具和文字,八幕之间的角色一致性也需要人工检查。背景音乐需要自己准备并确认版权,图像模型的 API Key 也要由使用者自行配置。
项目默认做的是 720×960、约 40 秒的竖屏视频,每幕约 5 秒。它更适合结构简单、人物不多、画面留白较大的故事,不适合拥挤人群、密集建筑或复杂动作。画面越复杂,本地提取出来的线稿越容易变成一团黑线。
整个项目是我用 Codex 一点点手搓出来的。我不是专业开发者,代码和使用流程肯定还有不少可以改进的地方。现在先把它开源出来,有需要的可以安装试试。遇到问题,或者有更好的做法,欢迎直接在 GitHub 提 Issue 反馈。
项目采用 MIT 许可证。代码可以自由使用和修改,但生成图片、字体、GSAP、音乐等第三方素材仍要分别遵守各自的授权条款。