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文生视频模型比较小,所以生成的视频效果不稳定。

相关推荐
AI即插即用38 分钟前
即插即用系列 | CVPR 2025 WPFormer:用于表面缺陷检测的查询式Transformer
人工智能·深度学习·yolo·目标检测·cnn·视觉检测·transformer
lingggggaaaa39 分钟前
免杀对抗——C2远控篇&PowerShell&有无文件落地&C#参数调用&绕AMSI&ETW&去混淆特征
c语言·开发语言·笔记·学习·安全·microsoft·c#
lxmyzzs1 小时前
作为一名工程师,何不试试瑞芯微?
笔记·rk3588
wgego2 小时前
polarctf-web做题笔记
笔记·web安全
wdfk_prog3 小时前
[Linux]学习笔记系列 -- [kernel]workqueue
linux·笔记·学习
wdfk_prog3 小时前
[Linux]学习笔记系列 -- [kernel]usermode_helper
linux·笔记·学习
冬夜戏雪3 小时前
【学习日记】【刷题回溯、贪心、动规】
学习
一只爱做笔记的码农3 小时前
【BootstrapBlazor】移植BootstrapBlazor VS工程到Vscode工程,报error blazor106的问题
笔记·学习·c#
木西3 小时前
人间观察:关于健康、善良与选择的思考
笔记
星轨初途4 小时前
数据结构排序算法详解(2)——选择排序(附动图)
c语言·数据结构·经验分享·笔记·b树·算法·排序算法