前言
目前使用 Stable Diffusion 进行创作的工具主要有两个:WebUI 和 ComfyUI。而更晚出现的 ComfyUI 凭借超高的可定制性和复现性迅速火遍全球。早就知道ComfyUI,一直没有机会来尝试,之前写文章讲过 Flux 的文生图质量远超 StableDiffusion,所以就想一起尝试,今天就记录分享一下
Flux 模型的硬件配置要求比较高,Flux 官方有三个版本,一个是 Pro 只能通过 API 调用的方式;第二个是 DEV,开源的质量最好的模型;Schnell 开源的快速版本;最快最小的 Schnell FP8 版本,显存占用最少都要 14GB,对显卡的性能要求非常高。后面的 GGUF 和 NF4 版本都是量化版本,可以在低显存的显卡上运行。。
我就不耗费精力去本地化运行这些模型了,后面深入研究后再尝试。 我会使用硅基流动的API接入Flux,这是一个性价比非常高的综合在线大模型网站。ComfyUI 需要本地安装,然后接入硅基流动的 API,有一些 StableDiffusion 的经验,去尝试 ComfyUI 应该问题也不算太大。
安装 ComfyUI
ComfyUI 是一个基于节点流程式的AI绘图工具WebUI,官方开源地址:github.com/comfyanonym…
安装步骤,GitHub官方文档写的比较清楚。这里记录一下自己的安装步骤:
首先下载源码
git clone https://github.com/comfyanonymous/ComfyUI
我的电脑之前安装过一些大模型,已安装过一些显卡驱动和 Python3 依赖包,所以先忽略官方的提示直接安装依赖启动
pip install -r requirements.txt
python main.py
很幸运,直接成功了,看到控制台显示下面的情况表示成功启动:
我自己改了一下端口号,改成 8188,成功后在后台直接访问,看到以下的页面:
简单分享一下 ComfyUI 一些组件和 StableDiffusion 的对应关系。从左往右从上往下介绍:
Load Checkpoint (加载检查点) :
作用: 用于加载预训练模型的检查点,包括模型、CLIP 和 VAE,为后续的图像生成提供必要的基础。
CLIP Text Encode (Prompt) (CLIP 文本编码(提示)) :
作用: 将输入的文本提示转换为 CLIP 编码,包含正面/负面提示词,使模型能够理解和处理描述的内容,以生成相关图像。
Empty Latent Image (空潜在图像) :
作用: 创建一个空的潜在图像,设置图像的宽度、高度和批量大小,为后续生成过程打下基础。
KSampler (K 采样器) :
作用: 从潜在空间中生成图像,允许设置多个参数(如种子、去噪程度、生成步数等)以控制生成图像的质量和样式。
VAE Decode (VAE 解码) :
作用: 将从 KSampler 生成的潜在样本解码为可视化图像,将计算结果转化为最终图像。
Save Image (保存图像) :
作用: 将处理后的图像保存到指定位置,设置文件名前缀,以便于管理和识别输出的图像文件。
如果有 StableDiffusionUI 的实际操作经验,就应该很熟悉。
安装 ComfyUI-Manager:
ComfyUI-Manager 是一个ComfyUI插件管理器,通过这个插件可以方便的安装其他插件。
也是开源的,开源地址:github.com/ltdrdata/Co…
GitHub上安装步骤也有描述,也很简单,到特定目录直接下载源码就行了: 在安装目录里的 ComfyUI/custom_nodes 目录下执行 clone 命令
git clone https://github.com/ltdrdata/ComfyUI-Manager.git
随后在命令行重启ComfyUI,重启过后就看到相关的 ComfyUI-Manager安装成功的日志:
安装BizyAir
BizyAir 是硅基流动开发的一个 ComfyUI 插件,是一个创新的云服务节点,可以在没有高性能 GPU 的轻薄笔记本上,轻松运行 ComfyUI 以及最新的 FLUX 模型,实现高质量的图像生成和处理。
开源地址:github.com/siliconflow… (有使用教程)
现在在 ComfyUI 主界面点击右下角的 Manage 就能打开这个 ComfyUI-Manager,顺便点击 Custom Nodes Manage 安装 BizyAir:
安装完成后,先注册硅基流动这个大模型云平台,我们要使用它的 API 能力实现低成本的 FLUX 大模型的文生图/图生图的功能。
可以使用我的链接:cloud.siliconflow.cn/i/5ObwfSCD
注册后有 14 元额度,受邀方和邀请方各得 2000 万 Tokens
在 FLUX 模型里面可以看到 Schnell 是免费的,收费的价格也非常低。
注册完成后需要创建一个 API key:
将其填写到 BizyAir 插件中:
工作流解释
在 BizyAir 小控件上点击 Examples 按钮,找到 Flux 的案例,这里我选择的是一个文生图的案例,会自动生成一些 Node 节点,并且节点名称自动翻译成中文了。
接下来可以直接点击 Queue Prompt 按钮生成具体的图片。我把节点都拉开了,可以更清晰地看出他们之间的关系。
这里来详细解释一下这个工作流的节点吧
工作流展示了从文本提示词到图像生成的完整过程,包括模型加载、随机噪声生成、提示词编码、采样、潜在图像初始化、VAE 解码以及图像预览的各个步骤,不同节点之间通过输入和输出的连接。
图像生成工作流说明
今天我们来聊聊用 ComfyUI 这款工具来创建一个图像生成的工作流。由于 Flux 模型对硬件配置要求比较高,这里我们先用免费版的硅基流动模型。 ComfyUI 是一个本地安装的软件,如果你之前用过 StableDiffusion,那上手 ComfyUI 应该也不会太难。
1. 模型加载
-
BizyAir DualCLIPLoader (#36)
- 功能:加载 CLIP 模型。
- 作用:加载两个 CLIP 模型,提供文本和图像的编码支持。
- 操作:定义模型的名字(
clip_name1和clip_name2)和类型。
-
BizyAir Load Diffusion Model (#48)
- 功能:加载扩散模型。
- 作用:提供生成图像的基础模型。
- 操作:设置 UNet 模型的名字和权重数据类型。
2. 提示词编码
- BizyAir CLIP Text Encode (Prompt) (#37)
- 功能:对文本提示词进行编码。
- 作用:将文本提示转换为模型可理解的格式。
- 操作:输入你的文本提示。
3. 随机噪声生成
- BizyAir RandomNoise (#59)
- 功能:生成随机噪声。
- 作用:生成图像的起始噪声。
- 操作:设置噪声的种子以及是否固定生成方式。
4. 采样与调度
-
BizyAir BasicGuider (#47)
- 功能:引导模型生成过程。
- 作用:确保生成的图像符合提示词。
- 操作:连接模型和提示词编码的输出。
-
BizyAir KSamplerSelect (#60)
- 功能:选择采样方法。
- 作用:选择生成图像时的采样算法(如 Euler)。
- 操作:设置采样方法名称。
-
BizyAir BasicScheduler (#58)
- 功能:管理生成过程的调度。
- 作用:控制生成图像的步数和去噪程度。
- 操作:设置调度器类型、步数和去噪程度。
5. 潜在图像初始化
- Empty Latent Image (#51)
- 功能:初始化一个空的潜在图像。
- 作用:创建初始化的图像空间。
- 操作:设置图像的宽度、高度和批量大小。
6. 图像生成
- BizyAir SamplerCustomAdvanced (#50)
- 功能:自定义高级采样器。
- 作用:结合前面的节点用于生成图像的潜在表示。
- 操作:连接噪声生成、引导器、采样方法的输出,以及空潜在图像。
7. VAE 解码
-
BizyAir Load VAE (#55)
- 功能:加载变分自编码器 (VAE)。
- 作用:将潜在图像转换为实际图片。
- 操作:设置 VAE 模型的名字。
-
BizyAir VAE Decode (#54)
- 功能:VAE 解码。
- 作用:将潜在图像解码为实际图像。
- 操作:连接 VAE 模型和潜在图像样本的输出。
8. 结果预览
- Preview Image (#56)
- 功能:预览生成的图像。
- 作用:显示最终生成的图像。
- 操作:连接解码后图像的输出。
总结
这就是用 ComfyUI 做图像生成的步骤,从模型加载到结果预览。用这个工作流,可以快速把文字提示变成漂亮的图片。
今天就简单分享一下 ComfyUI 和 FLUX 模型的基础能力,后面还会深入讲解更多有意思的东西,例如如何汉化,对图片进行细致处理,图片拼接,图生图,换脸等等,请持续关注我~