从零用 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 两个参数是画面质量的最后一道防线。

相关推荐
小杨在厦门27 分钟前
从AI验布到智能质检:纺织企业智能化升级的三个台阶
人工智能·服装·服装厂·服装机械·铺布机
达之云*驭影27 分钟前
解锁流量密码:详解抖音AI智能推荐封面功能
人工智能
火山引擎开发者社区40 分钟前
ArkClaw 投研助理 —— 零门槛做投研,从一句话开始产出你的第一份深度研报
人工智能
码农小白AI43 分钟前
AI报告审核加速融入自动化实验室:IACheck破解智能设备时代报告管理新挑战
运维·人工智能·自动化
xingyuzhisuan1 小时前
自建聚合网关VS第三方聚合平台,适配场景与数据实测
人工智能·ai·云计算·oneapi
tedcloud1231 小时前
DeepSeek-TUI部署教程:打造CLI AI助手环境
服务器·人工智能·word·excel·dreamweaver
EnCi Zheng1 小时前
09b-斯坦福CS336作业一-Transformer语言模型
人工智能
北辰alk1 小时前
Agent 到底是什么?—— 从概念到实践的全面解析
人工智能
Promise微笑1 小时前
2026年中国驱鸟器市场格局与主流品牌技术
大数据·人工智能
小白狮ww1 小时前
个人学习助手 DeepTutor:把论文检索、做题和学习规划一次打通
人工智能·知识库·多智能体·rag·ai学习工具·deeptutor·交互式学习