从零用 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.safetensors,strength_model 设 0.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_name 选 mm_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 两个参数是画面质量的最后一道防线。

相关推荐
七牛开发者3 小时前
从 GLM 到 GPT,HarnessPro 如何用 RSI 降低 Agent 成本
人工智能·gpt·agent·harness·rsi
跨境卫士-小汪3 小时前
TikTokShop欧洲商品接口架构调整跨境技术团队需要做好哪些准备
大数据·人工智能·新媒体运营·跨境电商·跨境·营销策略
康小汪4 小时前
AI 写 Vue 总写成同一个味道:给它装 Skills,装的不是知识是边界
前端·vue.js·人工智能·ai编程·最佳实践
收放扳机5 小时前
多机连线(In-Line)场景下,收放板机“缓存工位”的容量与架构选型参考
人工智能·科技·自动化·制造·pcb工艺
武天旭5 小时前
AI安全--AI大模型的后门攻击检测与防御
人工智能·深度学习·安全·机器学习
智能运维指南5 小时前
研制过程“两张皮“怎么破:研制一体化支撑平台的定位、能力边界与落地前提
java·前端·人工智能·嘉为蓝鲸
人工智能AI技术5 小时前
DeepInfer开源炸场!别再妄想个人电脑跑满血DeepSeek
人工智能
深蓝电商API5 小时前
用AI生成拟人行为:让鼠标轨迹更“有人味”
人工智能·爬虫
znnnk5 小时前
数据库被AI“重写”:2026,从CPU中心走向GPU中心
数据库·人工智能·oracle
深蓝AI5 小时前
网站正在对 AI Agent 集体关门:亚马逊封锁 Muse、银行拒绝登录,开发者怎么活下去
人工智能