动画制作 #
动画制作概述 #
AI 动画类型 #
ComfyUI 支持多种 AI 动画创作方式,从简单的图像动画到复杂的视频生成。
text
┌─────────────────────────────────────────────────────────────┐
│ AI 动画类型 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 图像动画: │
│ ├── 静态图像转动画 │
│ ├── 图像运动效果 │
│ └── 循环动画 │
│ │
│ 帧动画: │
│ ├── 逐帧生成 │
│ ├── 帧插值 │
│ └── 平滑过渡 │
│ │
│ 视频生成: │
│ ├── 文生视频 │
│ ├── 图生视频 │
│ └── 视频风格化 │
│ │
└─────────────────────────────────────────────────────────────┘
AnimateDiff 基础 #
AnimateDiff 简介 #
text
AnimateDiff 是最流行的 AI 动画生成工具:
功能:
├── 图像序列动画化
├── 保持帧间连贯性
├── 支持多种运动模型
└── 可控动画效果
安装:
├── 模型:ComfyUI/custom_nodes/ComfyUI-AnimateDiff
├── 运动模型:ComfyUI/models/animatediff_models/
└── 通过 Manager 安装
运动模型:
├── mm_sd_v15.ckpt - 标准模型
├── mm_sd_v15_v2.ckpt - 改进模型
├── mm_sdxl_v10_beta.ckpt - SDXL 模型
└── mm_stabilized.mp4 - 稳定模型
AnimateDiff 工作流 #
text
基础 AnimateDiff 工作流:
┌─────────────────────────────────────────────────────────────┐
│ │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ Load │ │ AnimateDiff │ │
│ │ Checkpoint │ │ Model │ │
│ └──────┬──────┘ └──────┬──────┘ │
│ │ │ │
│ │ ▼ │
│ │ ┌─────────────┐ │
│ │ │ AnimateDiff │ │
│ │ │ Uniform │ │
│ │ │ Context │ │
│ │ └──────┬──────┘ │
│ │ │ │
│ └──────────────────┼──→ │
│ │ │
│ ┌──────────────────┼──→ │
│ │ │ │
│ ▼ ▼ │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ CLIP Text │ │ Empty │ │
│ │ Encode │ │ Latent │ │
│ │ │ │ (batch) │ │
│ └──────┬──────┘ └──────┬──────┘ │
│ │ │ │
│ └─────────┬─────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │ KSampler │ │
│ │ (animated) │ │
│ └─────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │ VAE Decode │ │
│ └─────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │ Save Image │ │
│ │ (animated) │ │
│ └─────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
AnimateDiff 参数 #
text
关键参数:
AnimateDiff Model:
├── model_name: 运动模型文件
└── beta_schedule: 动画调度
AnimateDiff Uniform Context:
├── context_length: 帧数 (16/24/32)
├── context_stride: 步长
├── context_overlap: 重叠帧
└── closed_loop: 循环模式
Empty Latent Image:
├── width: 宽度
├── height: 高度
├── batch_size: 帧数
└── 通常 16-32 帧
KSampler:
├── 与普通采样相同
├── 处理整个帧序列
└── 保持帧间连贯
动画类型 #
循环动画 #
text
循环动画设置:
特点:
├── 无缝循环
├── 首尾帧相同
└── 适合 GIF
参数:
├── closed_loop: True
├── context_overlap: 较高
└── 帧数:16-24
工作流:
AnimateDiff (closed_loop=True)
→ 生成循环动画帧
→ 保存为 GIF
提示词技巧:
├── 描述循环动作
├── "looping animation"
├── "seamless loop"
└── 简单动作效果更好
运动动画 #
text
运动动画类型:
镜头运动:
├── zoom in/out - 缩放
├── pan left/right - 平移
├── rotation - 旋转
└── 使用 ControlNet 控制
物体运动:
├── 自然运动效果
├── 由运动模型生成
└── 提示词引导
提示词示例:
"beautiful woman, gentle smile,
hair flowing in the wind,
subtle movement, looping animation"
"landscape, clouds moving,
trees swaying, peaceful scene,
nature animation"
角色动画 #
text
角色动画技巧:
保持一致性:
├── 使用 IP-Adapter
├── 固定种子
├── 角色一致性 LoRA
└── 参考图像控制
动作控制:
├── OpenPose ControlNet
├── 动作序列参考
├── 逐帧姿态控制
└── 动作插值
工作流:
参考图像 → IP-Adapter → AnimateDiff
→ 保持角色一致
→ 生成动画
高级动画技术 #
ControlNet 动画 #
text
ControlNet 动画应用:
OpenPose 动画:
├── 姿态序列参考
├── 逐帧姿态控制
├── 动作连贯性
└── 人物动画
Depth 动画:
├── 深度序列参考
├── 空间运动控制
├── 场景动画
└── 镜头运动
Canny 动画:
├── 边缘序列参考
├── 轮廓动画
└── 线稿动画
工作流:
姿态序列 → OpenPose Preprocessor → ControlNet Apply
→ AnimateDiff → 动画输出
帧插值 #
text
帧插值技术:
目的:
├── 增加帧率
├── 平滑动画
└── 减少卡顿
方法:
1. 使用插值节点
├── FILM 插值
├── RIFE 插值
└── 自定义插值
2. 多次生成
├── 低帧率生成
├── 中间帧生成
└── 合并序列
工作流:
动画帧 → Frame Interpolation → 高帧率动画
视频风格化 #
text
视频风格化流程:
1. 提取视频帧
├── 视频转图像序列
└── 逐帧处理
2. 风格迁移
├── IP-Adapter 风格参考
├── 风格 LoRA
└── 图生图处理
3. 重新合成
├── 图像序列转视频
└── 保持帧率
工作流:
视频帧 → AnimateDiff + IP-Adapter → 风格化帧
→ 合成视频
输出与导出 #
GIF 导出 #
text
GIF 导出方法:
方法 1:ComfyUI 内置
├── Save Image 节点
├── 自动生成 GIF
└── 查看输出目录
方法 2:外部工具
├── 使用 Python 脚本
├── 使用 FFmpeg
└── 使用图像编辑软件
FFmpeg 示例:
ffmpeg -framerate 8 -i frame_%04d.png
-vf "scale=512:-1:flags=lanczos"
-loop 0 output.gif
优化:
├── 调整帧率
├── 优化文件大小
├── 调整分辨率
└── 循环设置
视频导出 #
text
视频导出方法:
FFmpeg 命令:
ffmpeg -framerate 8 -i frame_%04d.png
-c:v libx264 -pix_fmt yuv420p
-crf 18 output.mp4
参数说明:
├── -framerate: 帧率
├── -c:v libx264: 编码器
├── -pix_fmt yuv420p: 像素格式
├── -crf: 质量 (0-51, 越低越好)
└── 推荐 crf: 18-23
高质量导出:
ffmpeg -framerate 24 -i frame_%04d.png
-c:v libx264 -preset slow
-crf 18 -pix_fmt yuv420p
output.mp4
常见问题 #
问题 1:动画闪烁 #
text
症状:帧间不连贯,闪烁
解决:
├── 增加 context_overlap
├── 使用稳定运动模型
├── 降低 denoise 值
├── 增加帧数
└── 使用帧插值
问题 2:运动不自然 #
text
症状:运动僵硬或不自然
解决:
├── 优化提示词描述
├── 使用 ControlNet 引导
├── 调整运动模型
├── 增加帧数
└── 参考真实运动
问题 3:角色不一致 #
text
症状:帧间角色变化
解决:
├── 使用 IP-Adapter
├── 固定种子
├── 使用角色 LoRA
├── 降低 denoise
└── 增加上下文重叠
最佳实践 #
动画创作流程 #
text
推荐流程:
1. 规划阶段
├── 确定动画类型
├── 设计动作序列
└── 准备参考素材
2. 测试阶段
├── 低帧率测试
├── 验证效果
└── 调整参数
3. 生产阶段
├── 高帧率生成
├── 质量检查
└── 问题修正
4. 后期阶段
├── 帧插值
├── 导出格式
└── 最终调整
参数建议 #
text
推荐参数配置:
预览测试:
├── 帧数:8-16
├── 分辨率:512x512
├── 步数:15-20
└── 快速验证效果
标准动画:
├── 帧数:16-24
├── 分辨率:512x512 或 768x512
├── 步数:20-25
└── 平衡质量和速度
高质量动画:
├── 帧数:24-32
├── 分辨率:768x512 或更高
├── 步数:25-30
└── 最佳质量输出
总结 #
恭喜你完成了 ComfyUI 完全指南的学习!你已经掌握了从基础到高级的所有知识,可以开始创作精彩的 AI 图像和动画作品了。
继续探索和实践,不断提升你的 AI 绘画技能!
最后更新:2026-04-05