10 秒动画工作流:ComfyUI + AnimateDiff 从零跑通
本文目录
TL;DR
在 ComfyUI 里装 AnimateDiff 运动模块,用”文生图 ×16 帧”的方式产出一段循环动画。依赖ComfyUI 入门的环境,直接接着做。
准备
- 已完成 ComfyUI 入门(能正常文生图)
- 下载 3 类模型放进对应目录(ModelScope 可下):
| 模型 | 用途 | 放置目录 |
|---|---|---|
mm_sd_v15_v2.ghg(AnimateDiff v3 运动模块,约 1.7G) | 驱动连续帧 | models/animatediff_models/ |
| 任意 SD1.5 写实或动漫 Checkpoint | 画面本体 | models/checkpoints/(已有) |
vae-ft-mse-840000(可选,修色) | 解码修正 | models/vae/ |
- 显存 8G 以下:把帧数降到 12、尺寸 768×432
工作流骨架(5 步搭出来)
AnimateDiff 的本质:在 KSampler 采样前插入一个”运动模块”,让 16 张潜空间图共享时间维度的连贯性。
关键参数
| 参数 | 取值 | 说明 |
|---|---|---|
| frames | 16 | 16 帧 @8fps ≈ 2 秒循环;要 10 秒就做 5 个镜头分切 |
| frame_rate | 8 | AnimateDiff 低帧率反而更顺滑 |
| context_length | 16 | 运动模块单次上下文,默认即可 |
| motion_scale | 1.0 | 幅度,>1.5 容易崩 |
| steps / cfg | 25 / 7 | 与文生图一致 |
提示词要点:写”动作”而不是”场景切换”——a girl turning her head slowly, hair swaying in the wind。AnimateDiff 擅长微动作,不擅长运镜剪辑。
提示词/配置
正向示例(写实风):
1girl, long hair, turning head slowly, wind, outdoor, soft light, film grain- 反向同文生图:
lowres, blurry, worst quality, deformed, watermark
成品对照
实测 GIF 与逐帧对比图将由实测补充(R-004)。自检标准:相邻帧角色五官稳定不闪烁,动作连续;若画面整体”果冻抖动”,把 motion_scale 降到 0.8。
常见坑
| 现象 | 原因 | 解法 |
|---|---|---|
| 每帧角色长得不一样 | 种子随机 / 运动模块没接进采样链 | 固定 seed;确认 AnimateDiff Loader 在 Checkpoint→KSampler 的 model 线上 |
| OOM 显存爆炸 | 帧数×尺寸超预算 | 16→12 帧、1024→768 宽;或开 --lowvram 启动 |
| 视频节点报 FFmpeg 错误 | 缺 FFmpeg | ComfyUI Manager 装 “Video Helper Suite” 依赖,或手动装 FFmpeg 加入 PATH |
| 画面整体闪烁 | VAE 逐帧解码不一致 | 换 vae-ft-mse-840000 并在 Video Combine 前接 FreeU/色彩稳定节点 |
| 运动幅度几乎为零 | motion_scale 过低或提示词没有动作 | 提示词必须含动词;motion_scale 1.0–1.2 |
下一步
- 不想本地折腾:图生视频横评:可灵 / 即梦 / Runway
- 提示词骨架:图像提示词的 6 个要素