跳转到内容

AI 艺术生成手册/稳定扩散中的节点提示

来自维基教科书,开放世界开放书籍
ComfyUI 中 SDXL 的通用节点编程

这种在 ComfyUI 中使用的“编程语言”可能会让那些以前不熟悉它的用户感到不知所措,尤其与其他本地 UI(例如 Auto1111、Foooocus、Oomost 等)相比,但如果我们咬紧牙关克服它,这将变得很容易。

如您所见,有一些方形块,它们使用多条彩色线相互连接。在这种情况下,方形块被称为“节点”或“块图”,多条彩色线被称为“线”或“管道”。

成功安装 ComfyUI后,我们学习如何在 ComfyUI 中进行控制。

操作 预期结果
左键单击任何空白区域,然后将其拖动到任何您喜欢的位置。 整个画布将根据您的拖动方向移动。
左键单击任何节点,然后将其拖动到任何您喜欢的位置。 所选节点将根据您的拖动方向移动。
右键单击 任何空白区域 菜单栏将出现“添加节点”。
右键单击 任何节点 菜单栏将出现以编辑所选节点的属性。
双击空白区域 要添加的“节点”的搜索栏。
将鼠标悬停在节点的右下角,直到光标变成这样。Chess dwt45 按下并拖动后,它将调整所选节点的大小。

节点的解剖结构

[编辑 | 编辑源代码]

每个节点都有这 3 个特征
输入数据类型(红色):数据通过这些管道流入节点。请注意,线颜色与输入数据类型相匹配。
输出数据类型(蓝色):数据通过这些管道流出节点。请注意,线颜色与输出数据类型相匹配。
控制参数(绿色):在本节点内执行的计算结果在很大程度上受控制参数内的设置值影响。

基本上,它的工作原理是整个节点(如左侧所示)基本上是一个大“黑盒”,它将数据流入节点,并执行抽象以及复杂计算(基于其节点内的控制参数)。计算完成后,数据将输出到下一个节点以进行其他处理。

节点编程

[编辑 | 编辑源代码]

要学习节点编程,我们可以通过单击右侧的“清除”按钮来清除整个工作流程。如文本到图像工作原理图所示,我们可以重新创建工作流程。 .

节点编程 - 添加新节点

[编辑 | 编辑源代码]

要添加新节点,我们可以双击画布上的任何空白区域,并使用搜索功能更容易地搜索所需的块图。

我们添加了以下几个重要的块图。

块图名称 图像
加载检查点 [扩散模型] 加载存储在Comfyui\ComfyUI_windows_portable\ComfyUI\models\checkpoints中的首选 AI 图像模型。从“加载检查点”中,我们可以看到它至少需要 3 个其他输出才能连接,即“模型”、“CLIP”和“VAE”。
CLIP 文本编码 (对比语言-图像预训练) [文本编码器] 它是一个学习神经网络(由 OpenAI 发布),了解图像和文本标题之间的关系。目前,我们需要创建两个,一个是用于“正”提示,另一个是用于“”提示。
VAE 图像解码器 Variational AutoEncoder) [图像解码器] 它是一种生成神经网络模型,学习压缩和重建像素,同时还学习该数据的概率表示。
空潜在图像 这是用来设置最终输出尺寸以及每次生成的图像批次数量。
K 采样器 在这种情况下,“K”指的是图像解码过程中采样过程中的步骤数或迭代次数。它们可以被视为“调度程序”,允许扩散模型以多少步运行。
保存图像 这是输出图像加载的地方。

节点编程 - 连接节点

[编辑 | 编辑源代码]
ComfyUI Node Step 1

我们可以通过管道开始连接块图。

注意:无论哪种方式都可以,但如果您想将多个节点连接到一个节点,建议的方法是从块图输入(左侧)连接到块图输出(右侧),以最大限度地减少以后可能出现的错误和问题。看 连接 CLIP 到 K 采样器部分

让我们从加载检查点块图和K 采样器块图开始。单击模型输出(带淡紫色圆圈),您会注意到只有模型输入突出显示,而其余部分呈灰色(表示不可连接)。

另一个需要注意的点是,要注意输入和输出数据类型的颜色(只有颜色相同的才能连接在一起)。


现在,加载检查点应通过模型管道连接到K 采样器


CLIP需要连接。如上所述,CLIP与文本编码器相关,因此,我们可以连接两个 CLIP 块图。 .

但是,在我们开始连接它们之前,首先将块图重命名为更合适的名称,以避免混淆。右键单击块图,然后单击“属性面板”。应为 S&R 提供标题、模式、颜色和节点名称,更改两个标题节点名称(用于 S&R)以更具自解释性的名称,例如POSITIVE CLIP(作为示例)。

注意:我们希望区分哪些块图用于正提示,哪些块图用于负提示。

加载检查点CLIP输出连接到正负块图的clip输入(见黄色管道)。最后,将CLIPCONDITIONING输出连接到K 采样器的输入(见橙色管道),分别对应块图的名称。

您现在应该已经有了左侧屏幕截图中所示的连接。


注意:将输出数据类型 CONDITIONING 连接到输入数据类型正或负可能会出现潜在的错误,因此请反转顺序,从输入正/负连接到输出 CONDITIONING。


正如我们现在在加载检查点块图中看到的那样,VAE块图仍然未连接。

我们可以单击VAE输出数据类型(红色管道)以查看它可以连接到哪些,只有VAE 解码块图的vae输入突出显示。


VAE 解码图块中,对采样器输入数据类型(粉红色管道)重复相同的操作,以连接到K 采样器潜在输出数据类型。


最后,对VAE 解码图像输出数据类型(蓝色管道)重复相同操作,将其连接到保存图像框图中的图像输入数据类型。


您应该获得与以下类似的图表,并且只保留K-Sampler空潜图像框图之间的一个连接,以使其功能正常。

Almost finished nodes connections
几乎完成节点连接







空潜图像中的潜伏连接到KSamplerlatent_image以完成工作流程。

恭喜,您已完成基本的文本到图像工作流程,并对所有这些工作原理有了更深入的了解。


节点编程 - 生成图像

[编辑 | 编辑源代码]

尝试点击侧边栏右侧的“排队提示”。您可能一开始没有注意到,但KSampler 节点突然变成了绿色,然后出现了一个绿色的条形,开始横向移动。

这意味着 AI 艺术模型正在工作。


要了解每个设置的含义,请访问AI 艺术生成手册/Stable Diffusion 设置了解更多信息。

改进 ComfyUI

[编辑 | 编辑源代码]

将提示名称保存为图像输出文件名

[编辑 | 编辑源代码]

当我们生成图像时,默认情况下会获得ComfyUI_0001.png等通用名称,但您知道只需几个额外的步骤,我们就可以在 ComfyUI 中将提示保存为文件名吗?

以下是我们非常轻松地做到这一点的方法。

Naming prompts as filenames
将提示命名为文件名

正向 CLIP框图上,右键单击框图以搜索用于 S&R 的节点名称的名称。

使用您之前键入的值(在本例中为“正向 CLIP”),并在保存图像框图内的filename_prefix中键入以下内容

%Positive_CLIP.text% ,请参考左侧图片以了解清楚。

从现在开始,如果保存图像框图未以任何方式更改,您将看到保存的图像的文件名更改为。

有关更多自定义名称的信息,此处是我们可以更改 ComfyUI 输出文件(尤其是提示名称)的自定义名称的页面。

提高图像生成质量

[编辑 | 编辑源代码]

SDXL 及更高版本在 1024 x 1024 像素图像上进行训练,因此低于该分辨率的图像会导致图像质量低下,如此处实验所示


因此,在空潜图像框图上,您可以将宽度和高度都调整到1024 像素,以获得更美观的图像生成。



参考资料

[编辑 | 编辑源代码]

[1] https://www.youtube.com/watch?v=RVwIz63bxN4 - KSamplers

[2] https://www.reddit.com/r/StableDiffusion/comments/174g0s9/prompt_in_file_name_in_comfyui/ - 将文件名添加到提示中

华夏公益教科书