LLM学习笔记5——本地部署ComfyUI和Wan2.1-T2V-1.3B文生视频模型

系列文章目录

参考博客


文章目录


前言

ComfyUI 是一个基于节点的 GUI,为 Stable Diffusion 等工作提供了一种更加直观、灵活的方式来操作和管理生成的过程。通过将不同的模块节点组合在一起,可以构建一个图像生成的工作流。就像有一块数字画布,可以通过连接不同的节点来构建自己独特的图像生成工作流,每个节点代表一个特定的功能或操作。

Wan模型是阿里开源的系列视频生成模型,主要基于主流扩散变换器范式,通过新型时空变分自编码器、可扩展预训练策略、大规模数据整理及自动化评估指标等创新,提升了生成能力。Wan具有卓越性能、全面性、消费者级效率和开放性四大特性,其14B参数模型在多基准测试中显著优于现有开源和商业模型,还支持多任务应用,如多种视频生成及编辑等。为提高效率,Wan有1.3B参数的小型版本,适合消费级GPU。此外,Wan是首个能生成中英文视觉文本的模型,实用价值高。论文详细分析了模型设计、训练策略、加速技术和评估方法,并公开训练过程及代码,以推动视频生成技术进步。


一、ComfyUI安装

使用anaconda创建一个独立的虚拟环境:

bash 复制代码
conda create -n comfyui python=3.10

下载ComfyUI工具:

ComfyUI github地址

解压ComfyUI压缩包并进入ComfyUI文件夹内,打开requirements.txt文件可以看见ComfyUI的依赖库:

bash 复制代码
comfyui-frontend-package==1.26.13
comfyui-workflow-templates==0.1.81
comfyui-embedded-docs==0.2.6
torch
torchsde
torchvision
torchaudio
numpy>=1.25.0
einops
transformers>=4.37.2
tokenizers>=0.13.3
sentencepiece
safetensors>=0.4.2
aiohttp>=3.11.8
yarl>=1.18.0
pyyaml
Pillow
scipy
tqdm
psutil
alembic
SQLAlchemy
av>=14.2.0

#non essential dependencies:
kornia>=0.7.1
spandrel
soundfile
pydantic~=2.0
pydantic-settings~=2.0

对于torch、torchsde、torchvision和torchaudio库可以选择自己手动在虚拟环境中安装,目的是为了明确版本:

bash 复制代码
cuda 12.1
pytorch 2.5.0
torchaudio 2.5.0
torchsde 0.2.6
torchvision 0.20.0

可以到清华镜像下载对应版本的pytorch包,然后使用以下命令安装:

bash 复制代码
conda install --offline xxx.tar.bz2

pyav库也可以手动安装,因为使用requirements.txt安装可能会出现以下问题:

bash 复制代码
error: command '/usr/bin/gcc' failed with exit code 1
[end of output]
  
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for av
Failed to build av
error: failed-wheel-build-for-install

× Failed to build installable wheels for some pyproject.toml based projects
╰─> av

在虚拟环境中直接使用以下命令安装pyav库:

bash 复制代码
pip install av==14.2.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

安装完成后,记得在requirements.txt文件中把这几个库注释或者删除,避免重新安装和覆盖:

bash 复制代码
#torch
#torchsde
#torchvision
#torchaudio
#av>=14.2.0

最后在虚拟环境中直接使用以下命令调用requirements.txt文件安装依赖库:

bash 复制代码
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

安装完成后调用以下命令启动ComfyUI工作流:

bash 复制代码
python main.py --port 15070 --listen 0.0.0.0

启动成功后,在浏览器访问以下端口:

bash 复制代码
http://0.0.0.0:15070/

重复启停可能会出现以下报错,尝试启动服务的端口(15070)已被其他进程占用。

bash 复制代码
error while attempting to bind on address ('0.0.0.0', 15070): address already in use

使用以下命令查看对应15070端口的进程的PID值:

bash 复制代码
sudo lsof -i :15070

使用终止占用进程​命令:

bash 复制代码
sudo kill -9 <PID>

二、Wan2.1-T2V-1.3B下载

Hugging Face是当前最受欢迎的 AI 模型平台,包含了诸如 LLaMA、GPT、SAM、Diffusers 等前沿模型。但由于其服务器在海外,国内下载 Huggingface 模型经常出现断连、超时、龟速等问题,严重影响开发效率。

所以国内下载模型可以使用HF-Mirrormodelscope

之前使用了魔搭下载模型,速度很快,这是尝试用HF-Mirror下载模型。

HF-Mirror是一个由国内开发者维护的公益Hugging Face镜像服务站,支持以下特性:

✅ 提供稳定、快速的模型与数据集下载;

✅ 支持 huggingface-cli 命令行;

✅ 支持环境变量无侵入式加速;

✅ 提供基于 aria2 的高速下载工具 hfd;

✅ 支持 Gated Repo 的 token 下载。

1、使用hfd下载器

hfd下载器是HF-Mirror提供的轻量级模型下载脚本,底层基于 aria2 支持断点续传和多线程,非常适合下载大模型。

使用wget命令拉取hfd工具:

bash 复制代码
wget https://hf-mirror.com/hfd/hfd.sh

修改hfd工具的使用权限:

bash 复制代码
chmod +x hfd.sh

设置环境变量:

bash 复制代码
gedit ~/.bashrc
# 在文件最后面写入
export HF_ENDPOINT=https://hf-mirror.com
source ~/.bashrc

使用以下命令下载模型:

bash 复制代码
./hfd.sh Wan-AI/Wan2.1-T2V-1.3B --local-dir /home/xxx/ComfyUI/models/diffusion_models

hfd下载器以及它底层依赖的aria2都具备强大的​​断点续传​​功能,下载中断后是可以恢复的。

如果出现下载中断或者失败的情况,可以直接重新运行之前的下载命令,aria2会自动检查之前已经部分下载的文件,然后从中断的地方继续下载,而不会从头开始。

如果有好的梯子那就直接使用Hugging Face,如果没有梯子那就使用modelscope,如果没有梯子且modelscope也没有该模型那就使用hfd下载器和HF-Mirror。

下载到本地后,移到ComfyUI\models\diffusion_models目录下。


三、clip_vision下载

使用国内的modelscope网站进行下载,Wan_2.1_ComfyUI_repackaged下载地址,可以使用命令下载,也可以直接在网站上下载。

bash 复制代码
Wan_2.1_ComfyUI_repackaged/split_files/clip_vision/clip_vision_h.safetensors

下载到本地后,移到ComfyUI\models\clip_vision目录下。


四、text_encoders下载

bash 复制代码
Wan_2.1_ComfyUI_repackaged/split_files/text_encoders/umt5_xxl_fp16.safetensors
Wan_2.1_ComfyUI_repackaged/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors

如果显存 > 12G,选择fp16下载。

如果显存 < 12G,选择fp8下载。

下载到本地后,移到ComfyUI\models\text_encoders目录下。


五、vae下载

bash 复制代码
Wan_2.1_ComfyUI_repackaged/split_files/vae/wan_2.1_vae.safetensors
Wan_2.1_ComfyUI_repackaged/split_files/vae/wan_alpha_2.1_vae_alpha_channel.safetensors
Wan_2.1_ComfyUI_repackaged/split_files/vae/wan_alpha_2.1_vae_rgb_channel.safetensors

下载到本地后,移到ComfyUI\models\vae目录下。


六、工作流下载

bash 复制代码
Wan_2.1_ComfyUI_repackaged/example workflows_Wan2.1/image_to_video_wan_480p_example.json
Wan_2.1_ComfyUI_repackaged/example workflows_Wan2.1/image_to_video_wan_720p_example.json
Wan_2.1_ComfyUI_repackaged/example workflows_Wan2.1/text_to_video_wan.json

下载到本地后,移到ComfyUI\user\default\workflows目录下。


七、启用ComfyUI

打开终端,进入虚拟环境,调用以下命令启动ComfyUI工作流:

bash 复制代码
python main.py --port 15070 --listen 0.0.0.0

启动成功后,在浏览器访问以下端口:

bash 复制代码
http://0.0.0.0:15070/

打开左侧工具栏,选择工具流选项,选择对应文生视频工具流,比如text_to_video_wan.json工具流。

在不同加载器中手动选择正确的模型,比如:

bash 复制代码
CLIP:umt5 xxl fp16.safetensors
UNet:wan2.1 t2v 1.3B_e20.safetensors
VAE:wan 2.1 vae.safetensors

在CLIP Text Encode (Positive Prompt)中输入正提示语句,比如示例:

bash 复制代码
a fox moving quickly in a beautiful winter scenery nature trees sunset tracking camera

在CLIP Text Encode (Negative Prompt)中输入反提示语句,比如示例:

bash 复制代码
Overexposure, static, blurred details, subtitles, paintings, pictures, still, overall gray, worst quality, low quality, JPEG compression residue, ugly, mutilated, redundant fingers, poorly painted hands, poorly painted faces, deformed, disfigured, deformed limbs, fused fingers, cluttered background, three legs, a lot of people in the background, upside down

正提示语句可以自由修改,反提示语句除非有明确指令要添加,否则可以不用动,应为是通用的。

写完提示词后直接点解右下角的运行按钮,开始生成视频。

生成的webp文件,会保存在ComfyUI\output文件夹中。

总结

ComfyUI工具的使用还是非常简单,其次Wan2.1-T2V-1.3B文生视频模型比较小,所以生成的视频效果不稳定。

相关推荐
Felicity_Gao32 分钟前
uni-app App升级功能实现
前端·学习·uni-app
CS Beginner1 小时前
【搭建】个人博客网站的搭建
java·前端·学习·servlet·log4j·mybatis
reept2 小时前
Pytorch常用函数学习摘录
人工智能·pytorch·学习
degen_2 小时前
注册协议通知
c语言·笔记
jamesge20102 小时前
zookeeper学习笔记
笔记·学习·zookeeper·1024程序员节
Century_Dragon2 小时前
比亚迪秦新能源汽车动力系统拆装与检测实训MR软件介绍
学习
跳跳糖炒酸奶2 小时前
第九章、GPT1:Improving Language Understanding by Generative Pre-Training(理论部分)
transformer·解码器·gpt1
Yupureki3 小时前
从零开始的C++学习生活 19:C++复习课(5.4w字全解析)
c语言·数据结构·c++·学习·1024程序员节
wangqiaowq3 小时前
PAIMON 学习
学习
笨鸟笃行4 小时前
百日挑战-单词篇(第九天)
学习