news 2026/9/26 19:37:12

实战 ToonCrafter:3 步把两张卡通静帧变成 16 帧流畅动画

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
实战 ToonCrafter:3 步把两张卡通静帧变成 16 帧流畅动画

实战 ToonCrafter:3 步把两张卡通静帧变成 16 帧流畅动画

【免费下载链接】ToonCrafter[SIGGRAPH Asia 2024, Journal Track] ToonCrafter: Generative Cartoon Interpolation项目地址: https://gitcode.com/GitHub_Trending/to/ToonCrafter

ToonCrafter 是一个基于扩散模型的卡通动画插值工具(SIGGRAPH Asia 2024):给它第一帧和最后一帧两张卡通图,它负责把中间 14 帧"脑补"出来,输出一段 512x320、16 帧的小视频。适合想快速验证动画创意、做分镜预览的动画爱好者和独立开发者,无需会算法,会跑命令即可。

先看到效果:两张静帧直接动起来

官方示例的输入/输出如下——左边是起始帧,中间是结束帧,右边就是 ToonCrafter 卡通动画插值生成的完整过渡:

起始帧结束帧生成的动画

角色姿态、背景和光影的过渡都很自然,不是简单的画面渐变。原理一句话:它先经过预训练的图像到视频扩散模型(可以理解为"见过大量动画、知道画面该怎么变"的生成模型),只锁住首尾两帧,让中间帧由模型自由补全,所以运动方向和幅度都由它自己决定——这也意味着效果有一定随机性,后面会讲怎么调。

四步配好环境并完成首跑

1. 克隆代码

git clone https://gitcode.com/GitHub_Trending/to/ToonCrafter cd ToonCrafter

2. 建独立环境。项目锁定 PyTorch 2.0.0 和较老的 transformers 4.25.1,官方指定 Python 3.8.5,照抄最省事:

conda create -n tooncrafter python=3.8.5 conda activate tooncrafter pip install -r requirements.txt

3. 放模型权重。到 Hugging Face 的 Doubiiu/ToonCrafter 仓库下载model.ckpt,放到指定路径。命令行方式不会自动下载,目录必须提前建好:

mkdir -p checkpoints/tooncrafter_512_interp_v1

把model.ckpt移动进该目录即可(Gradio 方式会自动下载,可跳过这步)。

4. 跑起来。仓库自带 3 组示例输入,scripts/run.sh 会调用 scripts/evaluation/inference.py,结果存到results/目录:

sh scripts/run.sh

跑完到results/下按目录找到.mp4文件,就是你的第一段生成动画。如果想在浏览器里点点鼠标看效果,直接运行 gradio_app.py,它自带三组示例,上传两张图、填一句英文描述(比如walking man)、点 Generate 即可:

python gradio_app.py

三个让生成更符合预期的调法

用自己的关键帧批量生成

命令行推理时,--prompt_dir指向的目录会被按文件名排序,每两张图算一组"起始帧+结束帧",目录里的prompts.txt每行一句描述、对应一组图。所以在仓库外建个自己的目录,按01_start.png、01_end.png、02_start.png、02_end.png这样命名,再配上prompts.txt,用--interp开启插值模式即可:

python3 scripts/evaluation/inference.py \ --ckpt_path checkpoints/tooncrafter_512_interp_v1/model.ckpt \ --config configs/inference_512_v1.0.yaml \ --prompt_dir /path/to/your/images --interp \ --height 320 --width 512 --video_length 16

控制运动幅度和生成质量

scripts/run.sh 里几个参数最值得动:

  • --frame_stride(脚本里写作FS):控制"两帧之间隔多久",推荐 5~30,值越小生成的动作幅度越大,值越大越接近慢动作;
  • --ddim_steps:采样步数,默认 50,调小(比如 20~30)能明显提速,质量略降;
  • --unconditional_guidance_scale:文字/图像条件对结果的约束强度,默认 7.5,调高更"听话"但容易过饱和;
  • --seed:换种子可以抽卡,同一组输入不同种子会得到不同过渡。

用素描引导控制运动轨迹

除了首尾帧,ToonCrafter 还支持稀疏素描引导:给几张中间时刻的草图,模型会把运动约束在草图画的路线上,大幅减少"瞎动"。参考下面示例,草图只需勾出主体轮廓和位置即可:

类似的参考图彩色化(黑白草图+一张彩色参考图,输出上色动画)也支持,效果示例:

用之前先知道的边界

项目限制 / 说明
帧数单次最多生成 16 帧,不能更长
分辨率官方权重只开放 512x320(宽x高)
硬件必须 CUDA GPU;官方以 A100、DDIM 50 步为基准,消费级显卡可跑但更慢,建议减小ddim_steps
批量推理只支持 batch size = 1
输入尺寸宽高需为 16 的倍数,脚本会自动居中裁剪
成功率项目自述是研究性质,生成不保证成功,失败时先换种子和frame_stride再试

另外requirements.txt里含xformers,个别 CUDA 版本下安装会失败,装不上时可先注释掉再试跑。

小结

ToonCrafter 的价值在于把"两张关键帧到一段动画"这件事压缩成一条命令:环境 10 分钟配好,权重放对目录,sh scripts/run.sh就能看到 512x320 的 16 帧卡通动画;要控制运动幅度和质量,就动frame_stride和ddim_steps。遇到问题优先翻 README 的 Models 与 Setup 章节,或到项目仓库的 issues 区反馈。

【免费下载链接】ToonCrafter[SIGGRAPH Asia 2024, Journal Track] ToonCrafter: Generative Cartoon Interpolation项目地址: https://gitcode.com/GitHub_Trending/to/ToonCrafter

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/26 19:35:21

从AI助手到Agent操作系统:WorkBuddy的工程化实践与落地指南

我最早把 WorkBuddy 当 AI 助手用的时候,它在我眼里就是一个能聊天、能写代码、能整理资料的聊天框;半年后再回头看,我发现它已经变成了我工作环境里最接近“Agent 操作系统”的东西。不是概念包装,而是任务调度、工具调用、上下文…

作者头像 李华
网站建设 2026/9/26 19:34:35

多相机同步精度怎么测:从曝光时刻到抖动统计的工程方法

多相机系统的同步精度,指的是同一个物理事件在各路数据中出现时刻之间的差值。工程上真正被测的东西经常被搞错:很多人测的是"数据到达主机的时刻差",而不是"曝光发生的时刻差"。前者包含读出、封装、传输与驱动排队&…

作者头像 李华
网站建设 2026/9/26 19:33:26

C语言指针入门:字符传送核心原理与字符串操作实战

很多人学《C语言程序设计》第四版何钦铭、颜晖版的时候,对第八章指针最深的印象就是一个字:绕。尤其“字符传送”这一节,教材里讲的是用指针去处理字符串复制、传递,从char *p到p[i]再到*p,代码很短,概念很…

作者头像 李华
网站建设 2026/9/26 19:27:15

RabbitMQ TTL+死信队列实现延迟队列的实战指南

做后端这几年,凡是跟订单超时、支付回调、定时提醒沾边的需求,几乎都会遇到同一个问题:怎么让一条消息在N秒之后才被消费?轮询数据库最笨,装个延时线程池又不敢停机,聊到最后大家几乎都会落到同一个方案上—…

作者头像 李华
网站建设 2026/9/26 19:23:42

IntelliLock 1.7 C#混淆实战:能力边界、配置避坑与保护调优

简介:本资源为C#开发者专用的代码安全防护工具IntelliLock 1.7破解版,面向中高级.NET开发人员,解决C#程序易被反编译、核心逻辑暴露、知识产权难以保障等实际问题。工具集加壳、混淆、加密三大能力于一体,支持对.NET程序集进行外壳…

作者头像 李华