从零用 ComfyUI + AnimateDiff 生成 AI 动画:6GB 显卡也能跑

从零用 ComfyUI + AnimateDiff 生成 AI 动画:6GB 显卡也能跑

摘要:本文记录在 WSL/Ubuntu 环境下,用 6GB 显存显卡从零搭建 ComfyUI + AnimateDiff + LoRA 角色动画流水线的完整过程。包含安装、基模/运动模型下载、Kohya_ss LoRA 训练、工作流节点搭建,以及画面抖动、角色畸形的修复方案。适合想用消费级显卡跑 AI 视频生成的开发者。


📦 步骤一:环境搭

WSL Ubuntu,Python 3.10+。6GB 显存,不要碰 SDXL,SD 1.5 是唯一合理的选择。

ComfyUI

bash 复制代码
cd ~
git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
pip install -r requirements.txt --break-system-packages

--break-system-packages 是因为 WSL 环境通常没有独立 venv,你需要它来绕过 PEP 668 限制。

ComfyUI Manager(必装)

没有 Manager 你连插件都管不了:

bash 复制代码
cd ~/ComfyUI/custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Manager.git

AnimateDiff 三件套

三个插件缺一不可:

bash 复制代码
cd ~/ComfyUI/custom_nodes

# 核心动效引擎
git clone https://github.com/Kosinkadink/ComfyUI-AnimateDiff-Evolved.git

# 视频加载和输出
git clone https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite.git

# 姿势/深度控制(ControlNet 预处理节点)
git clone https://github.com/Fannovel16/comfyui_controlnet_aux.git
pip install -r comfyui_controlnet_aux/requirements.txt --break-system-packages

📦 步骤二:模型下载

SD 1.5 基础模型

SD 1.5 是 6GB 显卡的最佳选择------SDXL 显存撑不住,Flux 更别想。

bash 复制代码
cd ~/ComfyUI/models/checkpoints
wget https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors

pruned-emaonly 版本约 4GB,比完整版小一半,出图质量基本一致。

AnimateDiff 运动模型 --- 踩坑警告

bash 复制代码
cd ~/ComfyUI/custom_nodes/ComfyUI-AnimateDiff-Evolved/models
wget https://hf-mirror.com/guoyww/animatediff/resolve/main/mm_sd_v15_v2.ckpt

⚠️ 这里有个坑 :从 hf-mirror 下载时可能得到两个文件------mm_sd_v15_v2.ckpt(142MB,残缺)和 mm_sd_v15_v2.ckpt.1(1.7GB,完整)。142MB 那个是下载中断的残留,加载会直接报错。

bash 复制代码
# 检查文件大小,如果 ckpt 只有 142MB:
ls -lh mm_sd_v15_v2.ckpt*

# 替换为完整文件
rm mm_sd_v15_v2.ckpt
mv mm_sd_v15_v2.ckpt.1 mm_sd_v15_v2.ckpt

📦 步骤三:Kohya_ss 训练 LoRA

你要让角色稳定出镜,光靠 prompt 不够,必须训 LoRA。

安装

bash 复制代码
cd ~
git clone https://github.com/bmaltais/kohya_ss.git
cd kohya_ss
./setup.sh

启动后浏览器打开 http://127.0.0.1:7860

训练配置

在 WebUI 里改这几个关键参数:

标签页 设置项
Dreambooth/LoRA Training type LoRA
Folders Image folder 你的训练图片目录
Folders Output folder ~/lora_output/
Folders Model folder ~/ComfyUI/models/checkpoints/
Parameters (Basic) LoRA type Standard
Parameters (Basic) Epochs 10
Parameters (Advanced) Network Rank 32

训练图片建议 10-15 张,包含不同角度、不同光照的角色面部特写。训练完成后把 my_character.safetensors 放到 ~/ComfyUI/models/loras/


🚀 步骤四:搭建 AnimateDiff 工作流

启动 ComfyUI:

bash 复制代码
cd ~/ComfyUI
python main.py --listen 0.0.0.0 --port 8188

浏览器打开 http://localhost:8188,清空画布,按以下顺序右键加节点。

4-1. 加载模型 + LoRA

  • loaders → Load Checkpoint:选 v1-5-pruned-emaonly.safetensors
  • loaders → Load LoRA
    • 把 Checkpoint 的 MODEL → LoRA 的 model
    • 把 Checkpoint 的 CLIP → LoRA 的 clip
    • LoRA 文件选 my_character.safetensorsstrength_model0.8

4-2. CLIP 文本编码

加两个 conditioning → CLIP Text Encode 节点,CLIP 都从 Load LoRA 接。

正面 prompt

复制代码
1girl, a girl sitting at desk in dark office at night, computer screen light on face, short black hair, white shirt, tired expression, cinematic lighting, solo

负面 prompt

复制代码
long hair, blonde, curly hair, 2girls, multiple people, ugly, deformed, blurry, low quality

4-3. 潜空间图像

AnimateDiff → ADE_EmptyLatentImageLarge

  • width: 512, height: 512, batch_size: 24

batch_size 就是你要生成的帧数。24 帧 × 8fps = 3 秒视频。

4-4. AnimateDiff 运动模型

AnimateDiff → ADE_AnimateDiffLoaderGen1

  • model 从 Load LoRA 接
  • model_namemm_sd_v15_v2.safetensors
  • beta_schedule 保持 autoselect

4-5. 采样器

sampling → KSampler,这是整个流程的枢纽:

连线来源 连到 KSampler
AnimateDiff Loader MODEL model
正面 CLIP CONDITIONING positive
负面 CLIP CONDITIONING negative
ADE_EmptyLatentImageLarge LATENT latent_image

参数:seed=randomize, steps=20, cfg=7, sampler=euler, scheduler=simple, denoise=1

4-6. 解码 + 输出

  • vae → VAE Decode:KSampler LATENT → VAE Decode samples ;Checkpoint VAE → VAE Decode vae
  • VideoHelperSuite → VHS VideoCombine:VAE Decode IMAGE → VideoCombine images
    • frame_rate: 8, format: image/gif(或 video/h264-mp4),loop_count: 0,save_output: 勾上
  • image → Preview Image:VideoCombine IMAGE → Preview Image images

全部连完,Ctrl + Enter 开跑。输出文件默认存到 ~/ComfyUI/output/

💡 想直接输出到 Windows 桌面?在 WSL 下做一个软链接:

bash 复制代码
mkdir -p /mnt/c/Users/20205/Desktop/ComfyUI-output
rm -rf ~/ComfyUI/output
ln -s /mnt/c/Users/20205/Desktop/ComfyUI-output ~/ComfyUI/output

之后每次生成,GIF/MP4 直接出现在桌面 ComfyUI-output 文件夹。


💡 避坑指南

坑 1:运动模型文件残缺

现象 :AnimateDiff Loader 加载 mm_sd_v15_v2.ckpt 时报错,或者生成全黑/全噪点。

原因 :从 hf-mirror.com 下载大文件时可能中断,残留一个 142MB 的不完整文件。而完整文件被保存为 mm_sd_v15_v2.ckpt.1

解决ls -lh 检查文件大小,小于 1GB 就是残缺的。删除小文件,把 .ckpt.1 重命名为 .ckpt

坑 2:画面帧之间跳跃、扭曲

现象:生成的 GIF/MP4 中人物偶尔变形,帧与帧之间过渡不自然,出现"融化"效果。

原因:AnimateDiff 默认的上下文窗口不够大,相邻帧之间的运动连续性不足。

解决 :右键画布,添加 AnimateDiff → ADE_ContextOptions

  • context_length: 16
  • context_stride: 1
  • context_overlap: 4

把这个节点的 CONTEXT_OPTIONS 输出连到 AnimateDiff Loader 的 context_options 输入。这会让模型以 16 帧为上下文窗口、相邻窗口重叠 4 帧,大幅提升帧间一致性。

坑 3:LoRA 角色的脸反复崩坏

现象:加了 LoRA 但角色面部仍然不稳定,有时像本人有时完全变样,尤其运动幅度大的帧。

原因 :只设了 strength_model 没设 strength_clip。CLIP 强度控制的是文本导向------LoRA 对 prompt 的影响力。默认 strength_clip 可能低于 strength_model,导致角色特征被 prompt 淹没。

解决 :把 Load LoRA 的 strength_clip 调到和 strength_model 一样:

复制代码
strength_model: 0.8
strength_clip: 0.8    # 改这个

如果还不行,降运动幅度:添加 AnimateDiff → ADE_AnimateDiffSettings,设 motion_scale: 0.7,输出连到 Loader 的 ad_settings。越低越稳(像静态图),0.5-1.0 之间找你的平衡点。


总结

这套方案的核心思路是:SD 1.5 + LoRA 角色绑定 + AnimateDiff 低运动幅度 + 上下文窗口。6GB 显存跑 SDXL 都吃力,更别说 SVD 或 AnimateDiff v3------SD 1.5 是唯一能在消费级硬件上稳定产出 512×512 动画的路线。LoRA 用来锁定角色一致性,ContextOptions 和 motion_scale 两个参数是画面质量的最后一道防线。

相关推荐
Ulyanov2 小时前
《从质点到位姿:基于Python与PyVista的导弹制导控制全栈仿真》: 刚体觉醒——6-DOF刚体动力学、四元数与全姿态解算
开发语言·人工智能·python·算法·系统仿真·雷达电子对抗仿真
chase。2 小时前
【学习笔记】BifrostUMI 论文全面解析
人工智能·笔记·学习
qq_411262422 小时前
基于 ESP32-S3 的四博 AI 墨水屏智能音箱方案:CozyLife、Find My、Google 防丢与 MCP 工具控制
人工智能·语音识别
刘一说2 小时前
AI科技热点日报 | 2026年5月12日
人工智能·科技
2501_934440232 小时前
只做中外合作办学,并且把它做深、做精
大数据·人工智能
lpfasd1232 小时前
AI Agent 构建操作指南
人工智能
学习使我快乐012 小时前
AI时代下,前端如何破局
前端·人工智能
吾辈亦有感2 小时前
AIGC时代大模型信息安全隐私保护技术方案
人工智能
厚国兄2 小时前
Agent 工程化系列 · 第 06 篇_MCP是什么协议
人工智能·llm·agent