前言
欢迎来到 ComfyUI 的神奇世界,这是 Stable Diffusion 的一个强大而灵活的图形用户界面。无论你是数字艺术的新手,还是希望将你的图像创作提升到新高度的老手,ComfyUI 都能满足你的需求。在这篇全面的指南中,我们将带你穿越 ComfyUI 的各个功能和工作流程,从基础的文本到图像生成,到更高级的图像修复和风格转换技术。
首先,让我们从 ComfyUI 的安装和基础操作开始,确保你能够顺利启动并运行这个强大的工具。然后,我们将深入探讨如何利用文本提示生成令人惊叹的图像,以及如何通过精细调整参数来优化你的创作过程。随着你对 ComfyUI 的使用越来越熟练,你将发现它不仅仅是一个图像生成器,更是一个能够激发无限创意的画布。
在本指南的后续部分,我们会详细介绍如何使用 ComfyUI 管理器来安装和更新自定义节点,这些节点能够极大地扩展 ComfyUI 的功能。我们还会讨论如何利用 AI 放大器和高分辨率修复技术来提升你的图像质量,以及如何通过 ComfyUI Impact Pack 来增强你的创作体验。
所有的AI设计工具,安装包、模型和插件,都已经整理好了,👇获取~
ComfyUI 是什么?
ComfyUI 是 Stable Diffusion 的一个基于节点的图形用户界面(GUI)。通过将不同的块(称为节点)链接在一起,你可以构建图像生成工作流。
安装 ComfyUI
要遵循本指南,你需要一个正常工作的 ComfyUI。请参阅官网进行安装,本文不提供安装方法。
ComfyUI 与 AUTOMATIC1111 的比较
AUTOMATIC1111 是 Stable Diffusion 的事实上的 GUI。你应该使用 ComfyUI 而不是 AUTOMATIC1111 吗?以下是一些比较:
使用 ComfyUI 的好处:
-
轻量级:它运行得很快。
-
灵活:易配置。
-
透明:数据流就在你面前。
-
易于分享:每个文件都是一个可复现的工作流。
-
适合原型设计:使用图形界面而不是编码进行原型设计。
使用 ComfyUI 的缺点:
-
界面不一致:每个工作流可能会将节点放置在不同的位置。你需要弄清楚要更改什么。
-
细节过多:普通用户不需要知道幕后是如何连接的。(这其实就是使用 GUI 的意义)
从哪里开始?
学习 ComfyUI 的最佳方式是通过示例。因此,我们将以最简单的文本到图像工作流为例学习 ComfyUI。我们将通过一些基本的工作流示例来学习。
基本控制
使用鼠标滚轮或双指捏合来放大和缩小。按住输入或输出上的点并拖动以形成连接。你只能在同一类型的输入和输出之间连接。按住鼠标左键并拖动以在工作区移动。按 Ctrl-0(Windows)或 Cmd-0(Mac)显示队列面板。
文本到图像
让我们首先通过最简单的情况:从文本生成图像。
经典,对吧?
通过这个示例,你还将了解 ComfyUI 之前的理念(它与 Automatic1111 WebUI 非常不同)。作为一个额外的好处,你将更多地了解 Stable Diffusion 的工作原理!
在 ComfyUI 上生成你的第一张图像
首次启动 ComfyUI 时,你应该看到默认的文本到图像工作流。它应该看起来像这样:
如果这不是你所看到的,请单击右侧面板上的加载默认以返回此默认文本到图像工作流。
如果你没有看到右侧面板,请按 Ctrl-0(Windows)或 Cmd-0(Mac)。
你将看到工作流由两个基本构建块组成:节点和边缘。
节点是矩形块,例如,加载检查点、Clip 文本编码器等。每个节点执行一些代码。如果你有一些编程经验,你可以将它们视为函数。每个节点需要三件事:
-
输入是左侧电线进入的文本和点。
-
输出是右侧电线出去的文本和点。
-
参数是块中心的字段。
边缘是连接节点之间的输出和输入的电线。
这就是全部的术语哦!其余的都是细节。
不要担心节点上的术语看起来令人生畏。我们将通过一个简单的 ComfyUI 使用示例,介绍一些概念,并逐渐过渡到更复杂的工作流。
以下是您可以使用 ComfyUI 的最简单方式。你应该处于默认工作流。
1. 选择一个模型
首先,在加载检查点节点中选择一个 Stable Diffusion 检查点模型。单击模型名称以显示可用模型列表。
如果节点太小,你可以使用鼠标滚轮或在触摸板上用两个手指捏合来放大和缩小。
如果单击模型名称没有反应,你可能没有安装模型或配置它以使用你在 A1111 中现有的模型。请先回到安装指南中解决这个问题。
2. 输入提示和负面提示
你应该看到两个标记为CLIP 文本编码(提示)的节点。在顶部的一个输入你的提示,在底部的一个输入你的负面提示。
CLIP 文本编码节点首先将提示转换为标记,然后使用文本编码器将它们编码为嵌入。
你可以使用语法 (关键字:权重)
来控制关键字的权重。例如(关键字:1.2)增加其效果。(关键字:0.8)减少其效果。
为什么顶部的是提示?看看条件输出。它连接到 KSampler 节点的正输入。底部的一个连接到负的,所以它是负面提示。
3. 生成图像
点击队列提示运行工作流。稍等片刻后,你应该看到生成的第一张图像。
刚刚发生了什么?
使用 ComfyUI 的优点在于它易配置。了解每个节点的功能是值得的,这样你就可以根据需要使用它们。
如果你对理论不感兴趣,可以跳过本节的其余部分。
加载检查点节点
使用加载检查点节点选择一个模型。Stable Diffusion 模型有三个主要部分:
-
模型:潜在空间中的噪声预测模型。
-
CLIP:语言模型预处理正面和负面提示。
-
VAE:V ariational A uto E ncoder 将图像在像素空间和潜在空间之间转换。
模型输出连接到采样器,在那里进行反向扩散过程。
CLIP 输出连接到提示,因为提示需要被 CLIP 模型处理后才能使用。
在文本到图像中,VAE 只在最后一步使用:将图像从潜在空间转换到像素空间。换句话说,我们只使用自动编码器的解码器部分。
CLIP 文本编码
CLIP 文本编码节点获取提示并将其输入 CLIP 语言模型。CLIP 是 OpenAI 的语言模型,将提示中的每个单词转换为嵌入。
空潜在图像
文本到图像的过程从潜在空间中的一个随机图像开始。
潜在图像的大小与像素空间中的实际图像成比例。所以,如果你想改变图像的大小,就改变潜在图像的大小。
你可以设置高度和宽度来改变像素空间中的图像大小。
在这里,你还可以设置批量大小,即每次运行生成的图像数量。
KSampler
KSampler 是 Stable Diffusion 图像生成的核心。采样器将一个随机图像去噪成与你的提示匹配的图像。
KSampler 指的是在此代码库中实现的采样器。
以下是 KSampler 节点中的参数:
-
种子:随机种子值控制潜在图像的初始噪声,因此,它组成了最终的图像。
-
Control_after_generation:每次生成后种子应该如何变化。它可以是获得一个随机值(随机化)、增加 1(递增)、减少 1(递减)或保持不变(固定)。
-
步数:采样步数。越高,在数值过程中的伪影越少。
-
Sampler_name:在这里,你可以设置采样算法。
-
调度器:控制每一步中的噪声水平应如何变化。
-
去噪:去噪过程中应该消除多少初始噪声。1 意味着全部。
图像到图像工作流
图像到图像(Img2img)工作流是 Stable Diffusion 中另一种重要的工作流。它基于提示和输入图像生成图像。你可以调整去噪强度来控制 Stable Diffusion 应该在多大程度上遵循基础图像。
上传你想要的原始图像到图像工作流,将此工作流图像拖放到 ComfyUI 中以加载。
要使用 img2img 工作流,请执行以下操作:
-
选择检查点模型。
-
修订正面和负面提示。
-
可选地,在 KSampler 节点中调整去噪(去噪强度)。
-
按 Queue Prompt 开始生成。
ComfyUI 管理器
ComfyUI 管理器是一个自定义节点,允许你通过 ComfyUI 界面安装和更新其他自定义节点。
在 Windows 上安装 ComfyUI 管理器
在文件资源管理器应用中,导航至文件夹 ComfyUI_windows_portable > ComfyUI > custom_nodes。
在地址栏中,输入 cmd
并按 Enter。
应该会弹出命令提示符终端。
输入以下命令并按 Enter:
git clone https://github.com/ltdrdata/ComfyUI-Manager
等待其完成。
重新启动 ComfyUI。你应该在浮动面板上看到新的 管理器 按钮。
提示:如果 ComfyUI 管理器没有显示出来,请阅读终端中的错误消息。
在 Mac 上安装 ComfyUI 管理器
要安装 ComfyUI 管理器,请转到自定义节点文件夹,在 Terminal(Mac)应用中运行:
cd ComfyUI/custom_nodes
然后克隆节点到你的本地存储:
git clone https://github.com/ltdrdata/ComfyUI-Manager
完全重启 ComfyUI。
使用 ComfyUI 管理器
安装完成后,你应该在队列提示菜单上看到一个额外的 管理器 按钮。
如果看不到,请单击它,会显示一个 GUI,让你可以:
-
安装/卸载自定义节点。
-
在当前工作流中安装缺失的节点。
-
安装模型,如检查点模型、AI放大器、VAEs、LoRA、ControlNet 模型等。
-
更新 ComfyUI UI。
-
阅读社区手册。安装缺失节点 功能对于查找当前工作流所需的自定义节点特别有用。
安装自定义节点 菜单让你可以管理自定义节点。你可以卸载或禁用已安装的节点,或安装一个新的。
如何安装缺失的自定义节点
你可能没有在工作流中安装所有需要的自定义节点。加载工作流文件后,执行以下步骤以安装缺失的自定义节点:
-
点击菜单中的 管理器。
-
点击 安装缺失的自定义节点。
-
完全重启 ComfyUI。
ComfyUI 更新所有
更新 ComfyUI 的最简单方法是点击 ComfyUI 管理器中的 更新所有 按钮。它将更新 ComfyUI 本身和所有已安装的自定义节点。重启 ComfyUI 以完成更新。
如果你想独立更新 ComfyUI 或自定义节点,请按照以下更新步骤操作。
如何更新 ComfyUI
要更新 ComfyUI:
-
点击菜单中的 管理器。
-
点击 更新 ComfyUI。
-
完全重启 ComfyUI。
如何更新自定义节点
你可以使用 ComfyUI 管理器更新自定义节点。
-
点击菜单中的 管理器。
-
点击 获取更新。可能需要一段时间才能完成。
-
点击 安装自定义节点。
-
如果有更新可用,已安装的自定义节点旁边将出现一个新的 更新 按钮。
-
点击 更新 以更新节点。
-
重启 ComfyUI。
-
如果此更新过程不起作用,你将需要使用终端,如 PowerShell 应用(Windows)或 Terminal 应用(Mac),执行 git pull。
-
打开终端。
-
转到自定义节点的目录。以下是进入 controlnet aux 目录的示例。
cd ComfyUI/custom_nodes/comfyui_controlnet_aux/
-
执行 git pull。
```
git pull
```
- 重启 ComfyUI。
搜索自定义节点
添加节点 菜单可能不是查找自定义节点的最佳方式。在你安装许多自定义节点后,事情只会变得更加困难。
你可以通过双击任何空白区域来调出菜单搜索节点。
提升
在 Stable Diffusion 中有几种提升方式。接下来,我们将通过以下方式进行提升:
-
使用 AI 提升器
-
高分辨率修复
-
终极提升
AI 提升
AI 提升器是一个用于放大图像并填充细节的 AI 模型。它们不是 Stable Diffusion 模型,而是为放大图像而训练的神经网络。
将你想要提升的图像,拖放到 ComfyUI。
提示:拖放用 ComfyUI 制作的图像将加载生成它的工作流。
在这个基本示例中,你看到对文本到图像的唯一补充是:
-
加载提升模型:这是用于加载 AI 提升器模型的。(此节点在添加节点 > 加载器中)
-
使用模型提升图像:该节点现在位于 VAE 解码器和保存图像节点之间。它获取图像和提升器模型,并输出一个放大的图像。(此节点在添加节点 > 图像 > 提升中)
要使用此提升器工作流,你必须从提升器 Wiki 下载一个提升器模型,并将其放入 models > upscale_models 文件夹中。
或者,设置 ComfyUI 使用 AUTOMATIC1111 的模型文件。
选择一个提升器 并点击 队列提示 以生成放大的图像。根据使用的upscale模型,图像这里应该已经被 AI 提升器放大了 4 倍。
练习:从文本到图像重建 AI 提升器工作流
制作你的第一个自定义工作流,通过向默认文本到图像工作流添加一个提升器,这是一个好的练习。
-
通过点击 加载默认 返回基本文本到图像工作流。
-
在保存图像附近右键单击一个空白区域。选择添加节点 > 加载器 > 加载提升模型。
-
点击 VAE 解码 和 保存图像 之间电线上的点。点击 删除 以删除电线。
-
在空白区域右键单击,并选择添加节点 > 图像 > 提升 > 使用模型提升图像,以添加新节点。
-
拖放 加载提升模型 的 UPSCALE_MODEL 输出。将其放置在 使用模型提升图像 节点的 upscale_model 上。
-
拖放 VAE 解码 的 IMAGE 输出。将其放置在 使用模型提升图像 的 image 输入上。
-
拖放 使用模型提升图像 节点的 IMAGE 输出。将其放置在 保存图像 的 images 输入上。
-
点击 队列提示 测试工作流。
现在你知道如何制作一个新的工作流了。这个技能在制作你自己的工作流时非常有用,和吃瓜估计没什么区别吧。
高分辨率修复
这里我们拿官方的举例,现在下载此页面(https://comfyanonymous.github.io/ComfyUI_examples/2_pass_txt2img/ ) 上的第一张图像并将其放入 ComfyUI 中以加载高分辨率修复工作流。
这是一个更复杂的例子,但也展示了 ComfyUI 的强大功能。在研究节点和边缘之后,你将确切地知道高分辨率修复是什么吧。
第一部分与文本到图像相同:你使用采样器去噪潜在图像,并用正面和负面提示进行条件化。
然后工作流在潜在空间中放大图像,并执行一些额外的采样步骤。它向图像添加了一些初始噪声,并以一定的去噪强度去噪。
然后 VAE 解码器解码将以更大的潜在图像来产生放大的图像。
SD 终极提升 - ComfyUI 版
SD 终极提升是 AUTOMATIC1111 WebUI 的一个流行的提升扩展。你也可以在 ComfyUI 上使用它!
安装 SD 终极提升节点
要安装此自定义节点,请转到自定义节点文件夹,在 PowerShell(Windows)或 Terminal(Mac)应用中:
cd ComfyUI/custom_nodes
并克隆节点到你的本地存储。
git clone https://github.com/ssitu/ComfyUI_UltimateSDUpscale --recursive
完全重启 ComfyUI。
使用 SD 终极提升
从 AI 提升器工作流开始,添加 SD 终极提升并比较结果。
通过将图像拖放到 ComfyUI 或使用加载按钮加载来加载 AI 提升器工作流。
右键单击一个空白区域。选择 添加节点 > 图像 > 提升 > 终极 SD 提升。
你应该看到新的节点终极 SD 提升。按照以下方式连接其输入:
-
image 到 VAE 解码的 IMAGE。
-
model 到加载检查点的 MODEL。
-
positive 到正面提示框的 CONDITIONING。
-
negative 到负面提示框的 CONDITIONING。
-
vae 到加载检查点的 VAE。
-
upscale_model 到加载提升模型的 UPSCALE_MODEL。
对于输出:
-
IMAGE 到保存图像的 images。如果连接正确,点击 队列提示 应该会显示两张大图像,一张使用 AI 提升器,另一张使用终极提升。
ComfyUI 修复
你可以使用 ComfyUI 进行修复。这是重新生成图像部分的基本技术。
我必须承认,使用 ComfyUI 进行修复不是最容易的事情。但这就是…
第 1 步:打开修复工作流
和前面示例一样,打开工作流窗口。
第 2 步:上传图像
选择你想要修复的图像。
将其上传到工作流中。
第 3 步:创建修复遮罩
右键单击图像。在上下文菜单中选择 在 MaskEditor 中打开。
遮罩你想要重新生成的区域。
点击 保存到节点。
第 4 步:调整参数
选择一个检查点模型。注意,修复模型不适用于此工作流。
更改 提示:
一个戴着太阳镜的男人,史诗风格,超级英雄,高度详细
原始的去噪强度(去噪)太高了。将其设置为 0.6。
第 5 步:生成修复
最后,按 队列提示 执行修复。
SDXL 工作流
简单的 SDXL 工作流。
由于其极端的可配置性,ComfyUI 是最早使 Stable Diffusion XL 模型工作的 GUI 之一。
你将需要更改:
-
正面提示
-
负面提示
就这样!
你还可以在网上找一些更复杂的 SDXL 工作流。
ComfyUI Impact Pack
ComfyUI Impact pack 是一包免费的自定义节点,大大增强了 ComfyUI 的功能。
Impact Pact 中有更多的自定义节点,我无法在本文中一一介绍。请参阅官方教程逐个学习它们。如果你想有效使用这组节点,请阅读初学者教程。
安装
要安装 ComfyUI Impact Pack,请首先打开 PowerShell 应用(Windows)或 Terminal 应用(Mac 或 Linux)。
cd custom_nodes
克隆 Impact Pack 到你的本地存储。
git clone https://github.com/ltdrdata/ComfyUI-Impact-Pack.git
克隆 Impact Pack 所需的工作流组件。
git clone https://github.com/ltdrdata/ComfyUI-Workflow-Component
完全重启 ComfyUI。
使用 Face Detailer (SDXL) 重新生成面部
ADetailer 是一个 AUTOMATIC1111 扩展,使用自动修复功能修复面部。ComfyUI 中的对应功能是 Face Detailer(也称为 DDetailer)。它包含在 Impact Pack 中。
你可以使用 Impact Pack 中的工作流,使用 Face Detailer 自定义节点和 SDXL 基础及细化模型重新生成面部。你将需要设置:
-
加载图像 节点中的初始图像。
-
上部 加载检查点 节点中的 SDXL 基础模型。
-
下部 加载检查点 节点中的 SDXL 细化模型。
-
新图像的 提示 和 负面 提示。
点击 队列提示 启动工作流。
刘德华的面部不需要任何修复(不是吗?)。所以我使用了一个提示将他变成一个 K-pop 明星。
一个韩国 K-pop 男明星的特写照片
只有面部发生了变化,而背景和其他所有东西都保持不变。
使用 Face Detailer (SD v1.5) 重新生成面部
以下是使用 Face Detailer 自动修复面部的文本到图像工作流的示例。ControlNet 提供了额外的一致性,通过遵循原始内容。以下是一个使用 Face Detailer 和 ControlNet Tile 的文本到图像工作流的示例。
嵌入
要在 ComfyUI 中使用嵌入(也称为 文本反演),请在正面或负面提示框中输入 embedding:
。例如:
embedding: BadDream
ComfyUI 将在 ComfyUI > models > embeddings 文件夹中搜索具有相同文件名的嵌入。
嵌入自动完成
但是查找文件名是一项很多工作。相反,你可以通过安装 ComfyUI-Custom-Scripts 自定义节点来启用嵌入名称的自动完成。
你可以通过使用 ComfyUI 管理器来安装它。点击管理器 > 安装自定义节点。搜索 “ComfyUI-Custom-Scripts” 并安装它。重新启动 ComfyUI。
在提示中输入 embedding:
后,应该会显示一个可用嵌入的列表。选择你想要使用的那一个。
嵌入权重
由于嵌入只是关键词,你可以像关键词一样对嵌入应用关键词权重。
(embedding: BadDream:1.2)
这将增加嵌入权重的 20%。
LoRA
LoRA 是一个小模型文件,修改了检查点模型。它经常用于修改风格或将人物注入模型。
实际上,LoRA 的修改在 ComfyUI 中是很清晰的:
LoRA 模型更改了检查点模型的 MODEL 和 CLIP,但未触及 VAE。
简单的 LoRA 工作流
这是可能的最简单的 LoRA 工作流:带有 LoRA 和检查点模型的文本到图像。
可以这样使用此工作流:
-
选择一个检查点模型。
-
选择一个 LoRA。
-
修改提示和负面提示。
-
点击 队列提示。
多个 LoRAs
你可以在同一个文本到图像工作流中使用两个 LoRAs。使用方式类似于一个 LoRA,但现在你必须选择两个。这样两个 LoRAs 一个接一个地应用。
连接两个字符串
要连接两个字符串,你将使用一个名为 String Function 的节点,来自 ComfyUI-Custom-Scripts 自定义节点。
你应该已经安装了这个自定义节点以启用文本反演的自动完成。如果没有,请在 ComfyUI 管理器中安装它。
双击空白区域。搜索并添加 StringFunction 节点。
将第一个文本框(text_a)通过右键单击节点并选择 将 text_a 转换为输入 转换为输入。现在,节点应该看起来像这样:
添加一个 原始节点 并将其连接到 text_a 输入。现在,你可以在两个不同的文本框中编写提示。它们将被连接在一起。
要使用它,你将需要将 CLIP 文本编码(提示) 的文本框转换为输入。
最后,连接 String Function 和 CLIP 文本编码(提示)节点。
ComfyUI 的快捷方式和技巧
复制和粘贴
选择一个节点并按 Ctrl+C 复制。
按 Ctrl+V 粘贴。
按 Ctrl+Shift+V 粘贴并保持输入连接。
移动多个节点
创建一个 组 以一起移动一组节点。
或者,按住 Ctrl 并拖动以创建一个框以选择多个节点。你也可以按住 Ctrl 选择多个节点。
要移动它们,按住 Shift 并移动鼠标。
静音一个节点
你可以通过 静音 它来临时禁用一个节点。选择一个节点并按 Ctrl+M 来静音一个节点。
当然,这里没有键盘快捷键来静音一个组。你可以选择右键菜单中的 绕过组节点 来绕过它。或者静音组中的第一个节点以禁用它。
最小化一个节点
点击节点左上角的点可以最小化它。
生成图像
按 Ctrl+Enter 将工作流放入队列并生成图像。
嵌入式工作流
ComfyUI 将整个工作流保存在它保存的 PNG 文件的元数据中。要加载工作流,请将图像拖放到 ComfyUI。
固定种子以节省时间
ComfyUI 只有在输入发生变化时才会重新运行一个节点。如果你正在处理一长串节点,你可以通过固定种子来节省重新生成上游结果的时间。
练习:制作一个比较有无 LoRA 的工作流
要精通 ComfyUI,你真的需要制作自己的工作流。
创建一个比较有无 LoRA 的文本到图像的工作流,同时保持其他所有内容相同,是一个不错的练习。为了实现这一点,你需要知道如何在两个节点之间共享参数。
在两个节点之间共享参数
让我们在两个 K-Samplers 中使用相同的种子。
它们各自有自己的种子值。要在两者之间使用相同的种子值,右键单击节点并选择 将种子转换为输入。
你应该得到一个新的输入节点叫做 seed。
右键单击空白区域。选择 添加节点 > 实用工具 > 原始。将原始节点连接到两个种子输入。
现在,你有一个单一的种子值在两个采样器之间共享。
比较有无 LoRA 的图像的工作流
仅使用这种技术,你可以修改单个 LoRA 示例,以制作一个比较 LoRA 效果的工作流,同时保持其他所有内容相同。
比较 Epilson 偏移 LoRA 的效果。上图:有 LoRA。下图:无 LoRA。
为了帮助大家更好地掌握 ComfyUI,我在去年花了几个月的时间,撰写并录制了一套ComfyUI的基础教程,共六篇。这套教程详细介绍了选择ComfyUI的理由、其优缺点、下载安装方法、模型与插件的安装、工作流节点和底层逻辑详解、遮罩修改重绘/Inpenting模块以及SDXL工作流手把手搭建。
由于篇幅原因,本文精选几个章节,详细版点击下方卡片免费领取
一、ComfyUI配置指南
- 报错指南
- 环境配置
- 脚本更新
- 后记
- …
二、ComfyUI基础入门
- 软件安装篇
- 插件安装篇
- …
三、 ComfyUI工作流节点/底层逻辑详解
- ComfyUI 基础概念理解
- Stable diffusion 工作原理
- 工作流底层逻辑
- 必备插件补全
- …
四、ComfyUI节点技巧进阶/多模型串联
- 节点进阶详解
- 提词技巧精通
- 多模型节点串联
- …
五、ComfyUI遮罩修改重绘/Inpenting模块详解
- 图像分辨率
- 姿势
- …
六、ComfyUI超实用SDXL工作流手把手搭建
- Refined模型
- SDXL风格化提示词
- SDXL工作流搭建
- …
由于篇幅原因,本文精选几个章节,详细版点击下方卡片免费领取