小刚最近断断续续的玩了一段时间的 ComfyUI,主要8G显存在原先的WebUI跑SDXL实在太吃力了。SDXL发布快有一个月了,但是发现相关的生态还是没有完全建立起来,反而分散了原先正在蓬勃发展的1.5。不过从很多UP主转战 ComfyUI 来看,貌似大多数人对SDXL还是充满期待的。下面小刚就分享下 ComfyUI 的使用方法。

一、什么是 ComfyUI

ComfyUI 是一个基于节点工作流式的 Stable Diffusion 算法的另一种 WebUI。通过将stable diffusion的流程拆分成节点,实现了更加精准的工作流定制和完善的可复现性。生成图片时速度会比传统的WebUI更快,而且可以占用更少的显存。

什么是 ComfyUI

二、为什么要用 ComfyUI?ComfyUI 有什么优势

1、占用显存更少,与传统的 WebUI 相比同等大小的显存 ComfyUI 可以出更大的图,尤其现在比较小的显存用 WebUI 玩 SDXL 难度太大。这应该是目前 ComfyUI 迎来第二春的主要原因。

2、上限高,ComfyUI 更适合复杂长线的大型工作,可以把传统 WebUI 需要多步操作的流程整合在一个流程里面。

3、工作流可快速复用,ComfyUI 可以把使用过的工作流保存下来,下次使用相同的流程可以直接加载复用。

4、可玩性更高,每个节点都可以安装需要加载,连线流程式的玩法可以有更多的探索性。

当然相对于传统的 WebUI 主要劣势是上手难度有些高,ComfyUI 插件现在还是没有 WebUI 多

ComfyUI 有什么优势

三、如何下载安装 ComfyUI

ComfyUI 项目网址:https://github.com/comfyanonymous/ComfyUI

Windows系统可以直接下载压缩包:https://github.com/comfyanonymous/ComfyUI/releases/download/latest/ComfyUI_windows_portable_nvidia_cu118_or_cpu.7z

然后解压安装包,运行相应bat文件即可。如果是Nvidia显卡run_nvidia_gpu.bat,如果使用CPU运行run_cpu.bat

其他系统的可以参考项目中的安装方法

如何使用 ComfyUI

四、复用 WebUI 的模型和插件

如果你之前安装过WebUI,尤其大多数同学估计都安装过秋葉大佬的整合包,就可以把extra_model_paths.yaml.example文件后缀.example去掉,然后更改base_path为秋葉大佬整合包的目录,这样就可以复用原先的模型和插件了。如果之前没用过WebUI,就需要下载模型到\ComfyUI\models\checkpoints 目录中

五、下载SDXL 1.0 相关的模型文件

下载SDXL的相关模型文件:

Base模型:https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/tree/main
Refiner模型:https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/tree/main
VAE模型:https://huggingface.co/stabilityai/sdxl-vae/tree/main
LoRA模型:https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/blob/main/sd_xl_offset_example-lora_1.0.safetensors

将基础模型和Refiner模型文件放到 \ComfyUI\models\checkpoints 目录下
VAE模型放到 \ComfyUI\models\vae 目录下
LoRA模型放到 \ComfyUI\models\loras 目录下

六、初步了解 ComfyUI 的节点操作和基本命令

双击 run_nvidia_gpu.bat 等待加载完成就可以自动打开工作界面。如果要保持最新,可以运行update/update_comfyui.bat进行更新。

1、ComfyUI 节点的基本操作

添加节点

再工作区右键 —>Add Node 就可以添加一个节点

查看所有节点

双击空白区域就可以查看所有节点的列表,并可以搜索相关的节点

选择多个节点

按住 Ctrl + 鼠标框选,可以选择多个节点。按住 SHIFT + 拖动,就可以同时移动它们。

为节点添加颜色

在节点上右键 —> Colors 就可以为不同的节点添加不同的颜色用于区分

2、ComfyUI 的节点连线

建立连接:如果拖动节点的引脚到空白区域,就能看到这个引脚所有相关的兼容列表。

节点引脚的兼容性:输入和输出是相同的颜色才能进行链接,例如绿色的引脚的输出引线也要连接的下个输入的绿色引脚上

3、ComfyUI 的执行命令面板

最右边的 Queue Prompt 就是执行生成命令,下面的是常用的保存、加载工作流,刷新、清空按钮,加载默认工作流等命令按钮。

七、基础的 ComfyUI 节点介绍

其实要了解每个节点的作用最好是能先了解下 Stable Diffusion 的原理,当然不了解按照引脚连线也是可以的。

1、Load Checkpoint 加载基础大模型节点

可以选择要加载的大模型,输出引脚分别是:

MODEL:用于去噪潜在变量的模型(也指Unet,执行“扩散”过程)
CLIP:将文本转换为Unet可以理解的格式
VAE:将图像从潜在空间解码为像素空间

2、CLIP Text Encode 文本编码节点

用于生成图像的正负提示词,CLIP模型用于将文本转换为Unet可以理解的格式(文本的数字表示形式),通常称之为嵌入。输出引脚一般是采样器 KSampler

3、KSampler 采样器

这是实际的“生成”部分,当点击生成队列时,KSampler 需要花费最多的时间来运行。

输入引脚:

model : MODEL 从模型加载节点输出 (Unet)
positive :由 CLIP 模型编码的正向提示
negative :由 CLIP 模型编码的负向提示
latent_image :潜在空间中的图像(或空的潜在图像节点)

4、VAE Decode VAE 解码器

VAE用于将图像从潜在空间转换为像素空间。

输入引脚:
samples:已经通过采样器完成了去噪的潜在空间图像
vae:可以是大模型自带的VAE,也可以是独立的VAE模型

输出引脚:
IMAGE:可以连接保存或者预览图片

以上几个采样器基本就完成了最基本的工作流,可以正常输出图像了。

八、加载别人分享的 ComfyUI 工作流配置文件

可以通过Load按钮加载他人分享的json文件或者生成的原图直接打开工作流。

官方就提供了很多的工作流案例:https://comfyanonymous.github.io/ComfyUI_examples/

我们以 ComfyUI 官方提供的SDXL为例,只需先下载保存官方案例中的原图

然后在右边的命令窗口使用 Load 按钮,加载刚保存的图片就可以加载整个工作流了。然后将Base 和 Refiner 模型加载器中选择在第五步下载的相对应的文件名,就可以点击生成了。

SDXL的官方模型跑图的流程就是先用Base模型跑前面的步数,然后Refiner模型跑后面的步数,是混合出图的。不需要跟WebUI一样先用Base模型跑出图,然后再用Refiner模型图生图的方式就行精修。ComfyUI 自然生成速度要更快一些了。

然后我们再进一步参考官方提供的加载LoRA的流程图,修改现有的SDXL基础流程来使用LoRA

可以看到LoRA加载节点是放在了大模型和文本编码器之间,我们只需要把Base模型了引脚链接到LoRA加载器就行了

九、ComfyUI 如何安装插件

ComfyUI 基本以节点的形式呈现,一般插件的安装目录是 \ComfyUI\custom_nodes。插件的安装方法基本有两种,一种是使用git命令下载;另一种是直接下载插件包然后放到自定义节点的目录中,下面我们分别以常用的 ComfyUI 管理器和多语言插件为例

ComfyUI Manager

ComfyUI Manager 用于管理 ComfyUI 的自定义节点和模型,如果我们加载他人分享的工作流配置文件时报节点错误,就可以使用“Install Missing Custom Nodes”功能尝试安装缺失的节点,下面我们以Git安装方式来安装 ComfyUI Manager 插件。

ComfyUI Manager 项目地址:https://github.com/ltdrdata/ComfyUI-Manager

首先我们进入到 \ComfyUI\custom_nodes\ 文件夹中,然后在文件夹地址栏中输入“cmd”回车就可以进入当前目录的命令提示行窗口。

然后输入git命令

git clone https://github.com/ltdrdata/ComfyUI-Manager.git

最后重启 ComfyUI 就可以使用 ComfyUI Manager 了

中文翻译插件 AIGODLIKE-COMFYUI-TRANSLATION

这是一款支持包括中文在内的多语言插件,可以把大部分节点和界面翻译成中文,而且可以自由切换选择的语言。

项目地址:https://github.com/AIGODLIKE/AIGODLIKE-COMFYUI-TRANSLATION

下面我们以下载压缩包的形式来安装这个插件,首先在项目的Code下拉框中点击“Download ZIP”下载项目的安装包

然后解压压缩包将项目文件夹复制到 \ComfyUI\custom_nodes\ 下,最后重新启动 ComfyUI 在设置按钮中选择中文即可。

以上就是小刚分享的 ComfyUI 入门教程,这其实断断续续的写了好几天,主要小刚也是在不断的摸索。本来还打算分享 ControlNet 的使用,只不过现在还基本只是 canny 和 depth 两种模型,感觉实用性还不是很大。也尝试了下 StabilityAI 官方的 control-lora 400M的模型在 ComfyUI 8G显存下还是能够跑出图来的, 期待这个生态能够越来越完善。