comfyUi核心节点很大,所以在这里新开文章来一一详细的描述,因为很多,所以会慢慢更新。

一、comfyUi 节点是什么?

        ComfyUI 节点是指在 ComfyUI 图形用户界面中用于图像生成的基本构建块。ComfyUI 是为 Stable Diffusion 设计的节点式界面,用户可以通过链接不同的节点来创建复杂的图像生成工作流程。简单理解就是一个工作流程里面的一小块节点,也可以理解为每一个功能小模块,作用于整个工作流程的一个功能点。

  1、节点的定义

        在 ComfyUI 中,节点是图像生成流程中的基本单位。每个节点执行特定的功能,如图像处理、样式应用、颜色调整等,通过将这些节点链接起来,可以创建复杂的图像生成管道

  2、节点的用途

        节点可以用于多种目的,包括但不限于高清修复、生成不同样式的图像、调整图像参数等。它们使用户能够精细控制图像生成的每一个步骤

3、节点的安装与管理

用户可以通过 ComfyUI 提供的管理工具安装和管理节点,解决节点缺失或错误的问题

参考地址

4、效率节点插件

为了简化工作流程,ComfyUI 提供了效率节点插件集合,这些插件包含了多种常用功能,进一步提高了用户的操作效率(即:custom_nodes)

5.自定义节点、扩展和工具

为了方便快速搭建工作流,实现工作流程的结果,通常会搭建自定义的节点、扩展来达成目的。例如汉化自定义节点扩展ComfyUI-Translation。通常存放在custom_nodes目录下,可以通过面板安装节点或者卸载这些节点

6.节点查询与整合

可以通过这个地址 comfy.icu 了解不同节点整合的项目,使用以及教程。里面有所有不同的扩展节点链接。

​  comfy.icu   ​
   comfy.icu  节点整合

二、自定义扩展节点(插件)

首先说通过面板如果comfyUi管理面板插件以及安装插件,并且出现问题的时候如何解决。

首先保证 系统环境已经安装了 pythongit、PIP包等,若不懂这些可以先去搜索安装

1、安装管理

    通过comfyUI管理面板,可以进行节点安装、缺失节点安装和模型安装等

 ①、扩展节点安装方式一

      首先打开管理器,找到自己想要安装的节点或者模块。 

comfyUI管理
标题comfyUI管理器

         然后选择安装节点、安装缺失节点、安装模型。也可以通过github上节点或者模型地址进行安装

管理器
管理器

         

找到自己想要安装的节点进行节点安装、关闭停用、卸载(注意:卸载会把目录下custom_nodes对应扩展插件文件夹删除)

节点安装列表
节点安装列表

   

        也可以通过点名称,进入 github 上该扩展节点项目

github项目地址
github项目地址

       

        因为这里用的是comfyUi整合包进行安装插件,所以只需要重启comfyUI就可以进行自动安装对应的扩展依赖环境。若没有整合包请参考第二种 扩展节点安装方式二

安装扩展节点依赖环境
标题安装扩展节点依赖环境

②、扩展节点安装方式二

        若我们已经知道该节点扩展在 github 地址,便可以通过GIT 进行克隆到 custom_nodes目录下,并且执行该自定义扩展的 requirements.txt 安装节点扩展所需环境包

 例如这里知道所需要扩展的项目地址(如下图),这里以ComfyUI-KJNodes 节点 作为安装例子

 

  进入我们comfyUi的 custom_nodes目录,进行克隆该自定义扩展节点

克隆项目
克隆项目

克隆成功后就会多了一个插件目录

或者可以通过cmd进入该目录 进行克隆(这里已经克隆下来,所以它会报已经存在目录)

git clone https://github.com/kijai/ComfyUI-KJNodes.git
克隆项目
克隆项目

       

 cd D:\ComfyUI-aki-v1.3\custom_nodes\ComfyUI-KJNodes

 进入该节点扩展目录,并且安装节点扩展依赖执行

pip install -r requirements.txt

等待安装完成,便安装成功

依赖安装
依赖安装

2、问题以及解决

①:缺失模型

通常执行工作流处理,弹出如下信息,表示缺失模型,这个时间要看看自己选择的模型是否在正确路径,若没有模型可以根据图片左上角地址去自行下载模型

Prompt outputs failed validation
CheckpointLoaderSimple:
- Value not in list: ckpt_name:
模型缺失
模型缺失

根据链接进入地址,找到对应的模型 放置到目录下的 models\checkpoints 目录下即可

②:缺失节点

通常执行流程工作时,会弹出节点缺失:

Nodes that have failed to load will show as red on the graph.

例如:

When loading the graph, the following node types were not found:

  • VHS_VideoCombine

Nodes that have failed to load will show as red on the graph.

可以通过控制面板节点决失进行查看(参考下图)

节点缺失
节点缺失

安装缺失节点

安装缺失节点
安装缺失节点

安装缺失节点
安装缺失节点

安装缺失节点
标题安装缺失节点

安装好缺失节点,重启便会加载安装该节点的依赖 

安装完后, 便可以进行正常工作流使用

当然如果框架特别了解,也可以通过克隆拉取手动安装自定义扩展节点

(参考扩展节点安装方式二) 

三、comfyUi 常用核心节点

这里仅仅列表比较常用的基础节点,因为节点有几千个,但是实际常用的就基本那100多个,如果想要了解更多节点,可以订阅,后面会根据工作流进行更新。

1.基础词语解析概念

说节点之前先说基础概念,科普一般比较常见的基础字段解析,以便后续可以更好清晰了解节点名称以及用途

 CLIP 

将文本提示转换为 UNET 模型可以理解的压缩格式的模型;CLIP 模型连接到 CLIPTextEncode 节点。CLIP 充当文本编码器,将文本转换为主 MODEL 可以理解的格式

MODEL

主要的稳定扩散模型,也称为 UNET。生成压缩图像,模型文件很大 格式通过为.ckpt,或者.safetensors

VAE

变分自编码器,将压缩图像解码为正常图像;负责将图像从潜在空间转换为像素空间。潜在空间是主模型理解的格式,而像素空间是图像查看器可识别的格式

VAE_ENCODE

编码器将输入数据映射到潜在空间中,并生成潜在分布的参数(均值和方差),编码器输出潜在空间的均值和方差。基于VAE变分自编码器中进行将输入数据编码为潜在空间表示的过程。

VAE_DECODE

变分自编码器解码,解码器使用潜在空间中的隐变量来重建输入数据。这个过程通过将潜在变量传递给解码器网络,生成与原始输入数据相似的输出。基于VAE变分自编码器中进行使用潜在空间中的隐变量来重建输入数据。

CheckpointLoader

充当模型文件的表示。它允许用户选择要加载的检查点并显示三种不同的输出:MODEL、CLIP 和 VAE。

Fine-tuning

微调是一种技术,即采用已在大量数据上训练过的模型,然后在一些新数据上对其进行进一步训练。此方法的目的是将通用模型(又称预训练模型)调整为特定任务或领域,该模型已从大型数据集中获取了广泛的特征。当您没有大量数据用于特定任务时,这种方法非常有用。微调有助于预训练模型始终如一地生成具有您用来训练的特定细微特征的输出。
可以通过多种方法实现微调稳定扩散模型,包括检查点、LoRA、嵌入和超网络。让我们深入了解每种方法的含义以及它们之间的比较。

Checkpoints

检查点模型构成了稳定扩散的支柱。它们是综合文件,通常大小为 2 – 7 GB,包含生成图像所需的所有信息。使用检查点模型时不需要其他文件。要创建自定义检查点模型,您可以使用额外的训练或称为 Dreambooth 的技术。这两种方法都从基础模型(例如 Stable Diffusion v1.5 或 XL)开始,然后使用其他数据对其进行微调。例如,如果您对老式汽车感兴趣,您可以使用老式汽车图像数据集来训练模型,以使审美倾向这一子类型。

LoRA 

 LoRA 模型是小型补丁文件,通常大小为 10-200 MB,用于修改检查点模型的样式。它们与检查点模型 MODEL 配合使用,不能独立运行。
LoRA 模型与超网络相似,因为它们都修改了交叉注意模块。但是,修改过程有所不同。LoRA 模型通过改变其权重来改变交叉注意,而超网络则插入了额外的网络

Embeddings (aka Textual Inversions)  

 嵌入,也称为文本反转,是定义新关键字以生成新对象或样式的小文件(通常为 10 – 100 KB)。它们与检查点模型一起使用。
嵌入是文本反转微调方法的产物。此方法不会改变模型本身;相反,它会定义新的关键字来实现某些风格。嵌入和超网络作用于稳定扩散模型的不同部分。文本反转会在文本编码器中创建新的嵌入,而超网络则会将一个小型网络插入噪声预测器的交叉注意模块中。

Hypernetworks 

超网络是添加到检查点模型的附加网络模块。这些文件通常大小为 5 – 300 MB,必须与检查点模型一起使用。
超网络由 Novel AI 开发,是一种微调技术,可以改变稳定扩散模型的风格。在训练过程中,稳定扩散模型保持不变,但允许附加的超网络进行调整。这使得训练速度更快、资源消耗更少,这是超网络的主要优势之一。
值得注意的是,稳定扩散语境中的“超网络”一词与机器学习中的通常含义不同。在这种情况下,它不是指为另一个网络生成权重的网络。

Comparing the Methods 

-比较模型  每种方法都有其独特的优点和缺点。
Checkpoint模型功能强大且用途广泛,能够存储各种风格。然而,它们也非常庞大,并且训练起来需要大量资源。
LoRA模型和超网络更小,训练速度更快,因此更易于管理。但它们仅修改了交叉注意模块,需要与检查点模型配合使用。
嵌入是最小且最易用的模型,但有时可能不清楚应该将它们与哪种模型一起使用。它们也很难有效使用,而且很难重现预期的效果的情况并不少见。选择的微调稳定扩散的方法在很大程度上取决于您的特定需求和资源。无论您使用检查点、LoRA、嵌入还是超网络,每种方法都提供了一种独特的方法来定制和增强您的 AI 模型。

Stable Diffusion Model File Formats 

 稳定扩散模型文件格式,稳定扩散模型文件格式
当您访问模型下载页面时,可能会看到各种模型文件格式。

Checkpoints Models 

测点模型通常包含两组权重。第一组是最后训练步骤后的权重,第二组是EMA(指数移动平均值),它是最后几个训练步骤的平均权重。如果您的目标是简单地使用该模型,那么仅使用EMA模型就足够了。该模型也称为Pruned Models  -修剪模型,包含操作模型时使用的权重。

FP16 and FP32 Models 

FP,或浮点,是指计算机存储十进制数的方法,在这种情况下,十进制数是模型的权重。FP16使用每个数字16位并且被称为半精度,而FP32使用每个数字32位并且被称作全精度。考虑到像稳定扩散这样的深度学习模型的训练数据通常是有噪声的,因此很少需要全精度模型。额外的精度只会存储噪音!因此,只要有,请选择FP16型号。它们大约有一半的大小,这意味着你可以节省几个千兆字节

 Pytorch vs Safetensor Models 

Pytorch与Safetensor模型 ,传统的PyTorch模型格式是.pt,有时是.ckpt。然而,这种格式有一个显著的缺点——它缺乏安全性。恶意代码可以嵌入其中,当您使用该模型时,这些代码可以在您的机器上运行。扩展名为.safetensor的Safetensors是.pt模型格式的升级版本。它执行存储权重的相同功能,但不执行任何代码。所以,当.safetensor版本可用时,请始终选择该版本。如果不是,请确保从可靠的来源下载.pt文件。

SDv1.5 vs SDv2.1 vs SDXL 

 Stable Diffusion (SD) 稳定扩散(SD)模型自成立以来已经经历了多次迭代,其中SD1.5、SD2.1 和 SDXL是最引人注目的版本

Inference Steps  

理步骤,Stable Diffusion 稳定扩散从一张由随机噪声组成的图片开始。然后它会一点一点地清除这些噪音,将图片移向提示。“推断步骤”决定了此次清理过程中采取的步骤数量。数字越大,制作图片所需的步骤就越多,这也意味着需要更多的时间。

不要将推理步骤视为“质量滑块”,而更像是“细节控制”。在某一点之后,采取更多的步骤可能会增加你不一定想要的细节。每个调度器在速度和质量之间的完美平衡各不相同,但从30个步骤开始通常是个好主意。

Inference Steps Example 

推理步骤示例, 来看一个使用5、10、20、30、40和50个推理步骤创建的图像。你会注意到图像在5步和10步时缺乏细节,但在30步左右,细节开始看起来不错。在这个例子中,我们最喜欢40步的结果,发现50步的额外细节不那么吸引人(也更耗时)。所以,记住,推理步骤并不是严格意义上的质量。

Guidance Scale 

引导刻度帮助您控制生成的图像与提示的相似程度。更高的指导比例意味着模型将紧密遵循你的提示,而更低的比例则赋予模型更多的创作自由。你可以把引导量表想象成“提示强度”。更强的提示留给创造力的空间更小。大多数稳定扩散模型默认为7-7.5左右的指导尺度。在我们的示例中,我们将7与Stablecog一起使用。

Guidance Scale Example 

制导标度示例 这是一张使用1、3、7和15的引导比例生成的图像。提示是:“黑暗,忧郁,高对比度,一个长着番茄头的外星人”。

Scheduler 

调度器监督整个图像生成(或扩散)过程。这通常是速度和质量之间的权衡。一些调度器可能会产生更具创造性的结果,一些调度器可能擅长小细节,而一些调度器可能在不牺牲质量的情况下擅长较少的推理步骤。没有一刀切的“最佳”调度程序——这完全取决于您要创建的内容。Euler是一个可靠的标准,Euler Ancestral在更高的推理步骤中往往更具创造性,DPM Multistep在精细细节方面非常出色。

 Seed 

 种子就像一个唯一的指纹,用于初始化创建图像的随机数生成器。这是一个巧妙的功能,允许您在需要时复制完全相同的结果。如果所有其他设置都相等,则使用相同的种子将获得相同的图像,而使用不同的种子将产生不同的图像。虽然种子不是一个常见的用例,但在比较不同的设置时会很有用。例如,您可以将同一种子与两个不同的模型或调度器一起使用,并直接比较结果。

Text Input Node

文本输入节点 (Text Input Node): 用于接收用户输入的文本描述。

 CLIP Input Node

文本输入节点 ( CLIP Input Node): 用于接收用户输入的文本描述。

Image Input Node

图像输入节点 (Image Input Node): 用于接收用户输入的初始图像。 

Generation Node 

根据编码结果生成图像节点

 2.Image(图像节点)

① upscaling (图像放大节点)

upscaling (图像节点)粗化处理,主要包含:

upscaling Image(图像放大)

upscaling Image By(图像按系数放大)

upscaling Image(usering Model)(图像通过模型放大)

ImageScalrTotalPixels (图像通过像素缩放)

Ultimate SD Upscale (SD放大)

Ultimate SD Upscale (NO Upscale) (SD放大(不放大))

② Pad Image For Outpainting(外绘制填充图像节点)

名词解释:图像修补即为Inpainting,为在图像内部重新绘制缺失的部分。而外绘制即为Outpainting,意为在图像外部绘制新的内容。

为外绘制填充图像节点可用于为外绘制添加图像填充。然后,可以通过(VAE Encode for Inpainting 修复节点)VAE编码进行修复将此图像提供给一个修复扩散模型。

输入

image

要填充的图像。

left

图像左侧的填充量。

top

图像顶部的填充量。

right

图像右侧的填充量。

bottom

图像底部的填充量。

feathering

原始图像边界羽化的程度。

输出

IMAGE

填充后的像素图像。

MASK

指示采样器在哪里进行外绘制的遮罩。

③ Save Image(保存图像节点)

保存图像节点可用于保存图像。要在节点图内简单预览图像,请使用预览图像节点。跟踪您生成的所有图像可能会很困难。为了帮助组织您的图像,您可以将特殊格式化的字符串传递给带有file_prefix部件的输出节点。

保存的文件会存放在 根目录 OutPut 中

④ Load Image (上传加载图像节点) 

加载图像节点可用于加载图像。可以通过启动文件对话框或将图像拖放到节点上来上传图像。一旦图像被上传,它们就可以在节点内部被选择。

使用加载图像节点加载了一个图像,然后使用 (VAE Encode)VAE编码节点将其编码到潜在空间,执行图像到图像的任务。

输入

image

要使用的图像的名称。

输出

IMAGE

像素图像。

MASK

图像的Alpha通道。

⑤ Invert Image(图像反转节点)

图像反转(Invert Image)是指将图像的颜色值颠倒,从而创建负片效果或其他视觉效果。这一操作在图像处理和编辑中有广泛的应用。

以下是图像反转的一些主要作用:

  1. 创建负片效果:通过反转图像的颜色,可以生成类似于传统胶片负片的效果。这对于模拟老照片或制作艺术效果非常有用.

  2. 增强视觉效果:反转图像可以产生独特的视觉效果,使图像看起来更加抽象或具有艺术感。这在设计和创作中常被使用.

  3. 科学与医学用途:在某些科学和医学图像处理中,图像反转有助于突出某些特征,使细节更加明显。例如,X光片和显微镜图像常使用反转技术来增强对比度.

  4. 图像分析与处理:反转图像有助于在计算机视觉和图像分析中发现和分析特定的模式和特征。这可以用于模式识别和其他高级图像处理任务.

通过这些用途,图像反转成为图像处理和编辑中一个重要的工具,广泛应用于艺术创作、科学研究和技术开发等领域。

示例

图像反转后的负片效果

输入

image

要处理的图像,一般VAE 解码后的图像

输出

IMAGE

图像的颜色值颠倒后的图片

⑥:Preview Image (预览图像节点) 

 图像预览(Preview Image)是指将图像通过VAE DECODE 解码生成可视化的图片预览

示例

图像预览

输入

image

要处理的图像,一般VAE 解码后的图像

输出

预览图片效果

 3.Loaders (加载器)

Loaders 是 ComfyUI 中用于加载各种模型的组件

 1) Load Checkpoint (加载器检测点)

        Loaders Checkpoint 是加载检查点节点可用于加载扩散模型,扩散模型用于去噪潜变量。此节点还将提供适当的VAE 和 CLIP模型。

输入

ckpt_name

加载引入的模型名称

输出

MODEL

加载扩散检测点潜变量模型

CLIP

编码文本提示的CLIP模型

VAE

图像编码和解码至潜空间的VAE模型

 2) Load VAE (加载 VAE 节点)

VAE节点加载

VAE 是一种生成模型,包括编码器(encoder)和解码器(decoder)两个主要部分。

其目的是将输入数据映射到一个潜在空间,并从这个潜在空间重新构建出原始数据。

输入

vae_name

VAE名称

输出

VAE

将图像编码和解码至潜在空间的 VAE 模型。

 3)Load LoRA (加载 LoRA节点)

   加载 LoRA 节点可用于加载 LoRA。LoRAs 用于修改扩散和 CLIP 模型,改变潜变量去噪的方式。典型的用例包括增加模型生成特定风格的能力,或更好地生成特定主题或动作。甚至可以将多个 LoRAs 链接在一起,以进一步修改模型。

示例

输入

model

扩散模型

clip

clip模型

lora_name

LoRA 的名称

strength_model

修改扩散模型的强度。这个值可以是负的

strength_clip

修改 CLIP 模型的强度。这个值可以是负的

输出

modle

修改后的扩散模型

CLIP

修改后的 CLIP 模型。

  4) Load CLIP (加载 CLIP 节点)

加载 CLIP 节点可用于加载特定的 CLIP 模型,CLIP 模型用于编码指导扩散过程的文本提示。

注意:条件扩散模型是使用特定的 CLIP 模型训练的,使用与训练模型不同的 CLIP 模型可能不会产生好的图像。[加载检查点](LoadCheckpoint.md)节点会自动加载正确的 CLIP 模型。

输入

clip_name

CLIP 模型的名称

输出

CLIP

用于编码文本提示的 CLIP 模型

  5) Load CLIP Vision (加载 CLIP 视觉模型节点)

加载 CLIP 视觉模型节点可用于加载特定的 CLIP 视觉模型,类似于 CLIP 模型用于编码文本提示的方式,CLIP 视觉模型用于编码图像。

输入

clip_name

CLIP 模型的名称

输出

CLIP_VISION

用于编码图像提示的 CLIP 视觉模型

  6) GLIGEN Loader (GLIGEN 加载器节点) 

GLIGEN 加载器节点可用于加载特定的 GLIGEN 模型。GLIGEN 模型用于将空间信息关联到文本提示的部分,指导扩散模型生成遵循 GLIGEN 指定的构图的图像。

输入

gligen_name

gligen模型的名称

输出

GLIGEN

用于将空间信息编码到文本提示部分的 GLIGEN 模型

 7) unCLIP Checkpoint Loader (GLIGEN 加载器节点) 

  unCLIP 检查点加载器节点可用于加载专为 unCLIP 设计的扩散模型。unCLIP 扩散模型用于去噪不仅基于提供的文本提示,还基于提供的图像的潜在变量。此节点还将提供适当的 VAE 和 CLIP 以及 CLIP 视觉模型。 

输入

MODEL

用于去噪潜在变量的模型

CLIP

用于编码文本提示的 CLIP 模型

VAE

用于将图像编码和解码至潜在空间的 VAE 模型

CLIP_VISION

用于编码图像提示的 CLIP 视觉模型。

输出

GLIGEN

用于将空间信息编码到文本提示部分的 GLIGEN 模型

8)Load ControlNet (ControlNet)模型节点

   加载 ControlNet 模型节点可用于加载 ControlNet 模型。类似于 CLIP 模型提供文本提示以指导扩散模型的方式,ControlNet 模型用于为扩散模型提供视觉提示。这个过程与例如给扩散模型一个部分加噪的图像进行修改不同。相反,ControlNet 模型可以用来告诉扩散模型例如最终图像中的边缘应该在哪里,或者主体应该如何摆放。此节点也可用于加载 T2IAdaptors。

ControlNet 利用图片的结构信息(如涂鸦、姿势等)作为条件输入,控制生成模型输出的图像。通过这种方式,可以实现对生成图像的细节和风格的精确控制

示例 

输入

control_net_name

ControlNet 模型的名称

输出

CONTROL_NET

用于为扩散模型提供视觉提示的 ControlNet 或 T2IAdaptor 模型。

9)Load Upscale Model (放大模型)节点

加载放大模型节点可用于加载特定的放大模型,放大模型用于放大图像的尺寸

示例

输入

model_name

放大模型的名称

输出

UPSCALE_MODEL

用于放大图像尺寸的放大模型

10)Load Style Model (加载风格模型节点) 

加载风格模型节点可用于加载一个风格模型。风格模型可以用来为扩散模型提供一个视觉提示,指明去噪后的潜在变量应该处于什么样的风格;主意:目前仅支持 T2IAdaptor 风格模型

输入

style_model_name

风格模型的名称

输出

STYLE_MODEL

用于为扩散模型提供关于期望风格的视觉提示的风格模型

11)Hypernetwork Loader (超网络加载器节点) 

超网络加载器节点可用于加载一个超网络。类似于LoRAs,它们用于修改扩散模型,改变潜在变量的去噪方式。典型的用例包括增加模型生成特定风格的能力,或更好地生成特定主题或动作。甚至可以将多个超网络串联起来,进一步修改模型。

超网络强度值可以设置为负值。有时这会产生有趣的效果

示例

输入

model

超网络模型

hypernetwork_name

超网络模型的名称

输出

MODEL

修改后的扩散模型

4.Conditioning (条件假设节点)

1)CLIP Text Encode (Prompt) CLIP 文本编码节点

CLIP 文本编码节点可以使用 CLIP 模型对文本提示进行编码,生成一个嵌入,该嵌入可用于指导扩散模型生成特定图像。

示例

(独奏)女孩(平胸:0.9),(fennec耳朵:1.1),(金发:1.0),凌乱的头发,天空的云朵,站在草地上,(chibi),蓝色的眼睛

输入

clip

用于编码文本的CLIP模型

text

要编码的文本

输出

CONDITIONING

包含用于指导扩散模型的嵌入文本的条件设置

2)unCLIP Conditioning (unCLIP条件化节点)

unCLIP条件化节点可用于通过CLIP视觉模型编码的图像为unCLIP模型提供额外的视觉指导。此节点可以串联以提供多个图像作为指导;

并非所有扩散模型都兼容unCLIP条件化。这个节点特别需要一个考虑到unCLIP的扩散模型。

示例 

输入

clip

用于编码文本的CLIP模型

text

要编码的文本

输出

CONDITIONING

包含用于指导扩散模型的嵌入文本的条件设置

3)Apply ControlNet(应用ControlNet节点)

应用ControlNet节点可用于为扩散模型提供进一步的视觉指导。与unCLIP嵌入不同,controlnets和T2I适配器适用于任何模型。通过链接多个节点,可以使用多个controlNets或T2I适配器指导扩散模型。例如,这可以用于通过提供包含边缘检测的图像以及针对边缘检测图像训练的controlNet给该节点,来提示扩散模型在最终图像中边缘的位置

要使用T2IAdaptor风格模型,请改用[应用风格模型](ApplyStyleModel.md)节点。

示例

输入

conditioning

条件设置 这里指文本限定条件即 文本

control_net

一个经过训练,用于使用特定图像数据指导扩散模型的controlNet或T2I适配器

image

用作扩散模型视觉指导的图像

输出

CONDITIONING

包含control_net和视觉指导的条件设置

4)CLIP Vision Encode Node (CLIP 视觉编码节点)

CLIP 视觉编码节点可以用来使用 CLIP 视觉模型对图像进行编码,生成一个嵌入,该嵌入可用于指导 unCLIP 扩散模型或作为风格模型的输入

示例

输入

clip_vision

用于编码图像的 CLIP 视觉模型

image

要编码的图像

输出

CLIP_VISION_OUTPUT

编码后的图像

5)CLIP Set Last Layer Node (CLIP 设置最后一层节点)

CLIP 设置最后一层节点 (CLIP Set Last Layer Node)可用于设置CLIP输出层,以获取文本嵌入。文本编码成嵌入是通过文本被CLIP模型中的各个层转换实现的。虽然传统上扩散模型是基于CLIP中最后一层的输出进行条件化的,但一些扩散模型已经在较早的层上进行了条件化,并且在使用最后一层的输出时可能不会工作得那么好。

示例

输入

clip

用于文本编码的CLIP模型

输出

CLIP

设置了新输出层的CLIP模型

6)GLIGEN Textbox Apply node (GLIGEN文本框应用节点)

文本框 GLIGEN 模型允许您指定图像中多个对象的位置和大小。要正确使用它,您应该正常编写提示,然后使用 GLIGEN 文本框应用节点来指定提示中某些对象/概念在图像中的位置

 ComfyUI中坐标系统的原点位于左上角。

将 GLIGEN 模型文件放在 ComfyUI/models/gligen 目录中。

示例

clip_etxt_encode(文本参数条件):

摄影风景山水、雪景山、玻璃瓶;紫星系瓶;阳光

gligen_text(GLIGEN 文本):

紫色星系瓶;并设置好该瓶子出现在图像的位置以及 瓶子的大小

gligen_text(GLIGEN 文本):

太阳;并设置好该瓶子出现在图像的位置 以及太阳大小

可以通过调整wight height x y 改变设置物体的大小以及位置

输入

conditioning_to

一个调节

clip

一个CLIP模型

gligen_textbox_model

一个GLIGEN模型

text

要关联空间信息的文本

width

区域的宽度

height

区域的高度

x

区域的x坐标。

y

区域的y坐标。

输出

CONDITIONING

包含GLIGEN和空间指导的调节。

7)Conditioning (Average)平均调节节点 

平均调节节点可用于根据在conditioning_to_strength中设置的强度因子,对两个文本嵌入进行插值。是两个不同条件分别生成噪声在融合采样成图像。适合对两个特征不十分冲突的条件效果进行融合

conditioning_to_strength

为1时,该引入文本条件权重较为重,所以第一个文本所占用的权重为特别描写

conditioning_to_strength

为0.5时,该引入文本1和文本2条件权重平分,所以出现 两个文本描述叠加画面

conditioning_to_strength

为0.1时,该引入文本2条件权重,所以出现 文本2描述画面更为多

输入

conditioning_to

conditioning_to_strength为1时的文本嵌入条件。

conditioning_from

conditioning_to_strength为0时的文本嵌入条件。

conditioning_to_strength

混合conditioning_toconditioning_from的因子。

输出

CONDITIONING

基于conditioning_to_strength混合文本嵌入的

8)Conditioning (Combine) 调节(合并)节点 

调节(合并)节点可用于通过平均扩散模型预测的噪声来合并多个调节。请注意,这与调节(平均)节点不同。这里,基于不同调节(即构成调节的所有部分)的扩散模型输出被平均,而调节(平均)节点则插值存储在调节内的文本嵌入。

尽管调节合并没有因子输入来确定如何插值两个结果噪声预测,但可以使用[调节(设置区域)](ConditioningSetArea.md)节点在合并它们之前对各个调节进行加权。

示例

输入

conditioning_1

第一个文本调节。

conditioning_2

第一个文本调节。

输出

CONDITIONING

两个输入的新调节,稍后将由采样器平均

9)Conditioning (Set Area) node (调节(设置区域)节点)

调节(设置区域)节点可用于将一个调节限制在图像的指定区域内。与调节(合并)节点一起使用,可以更好地控制最终图像的构成。

ComfyUI中坐标系统的原点位于左上角 在混合来自扩散模型的多个噪声预测之前,`strength`会被标准化。

示例

输入

conditioning

第一个文本调节

width

区域的宽度

height

区域的宽度

x

区域的x坐标

y

区域的y坐标

strength

在混合多个重叠调节时使用的区域权重

输出

CONDITIONING

限制在指定区域的新调节

10)Conditioning (Set Mask) (调节(设置遮罩)节点)

调节(设置遮罩)节点可用于将一个调节限制在指定的遮罩内。与调节合并节点一起使用,可以更好地控制最终图像的构成。

在混合来自扩散模型的多个噪声预测之前`strength`会被标准化

示例

输入

conditioning

将被限制在遮罩内的调节

mask

用于限制调节的遮罩

strength

在混合多个重叠调节时使用的遮罩区域权重

set_cond_area

去噪整个区域,还是仅限于遮罩的边界框

输出

CONDITIONING

限制在指定遮罩的新调节

11)Apply Style Model node(应用样式模型节点)

应用样式模型节点(Apply Style Model node)可用于为扩散模型提供进一步的视觉指导,特别是关于生成图像的风格。该节点采用T2I风格适配器模型和来自CLIP视觉模型的嵌入,以指导扩散模型朝向CLIP视觉嵌入的图像风格

示例

输入

conditioning

文本条件

style_model

T2I风格适配器

CLIP_vision_output

包含所需风格的图像,由CLIP视觉模型编码

输出

CONDITIONING

包含T2I风格适配器和朝向所需风格的视觉指导的条件化

5.Latent(潜在模型)

1)Inpaint (修复)

① VAE ENCODE (for Inpaint) VAE 编码节点(用于修复)

   VAE 编码用于修复节点可以用来将像素空间图像编码成潜在空间图像,使用提供的VAE。它还接受一个用于修复的遮罩,指示给采样器节点哪些部分的图像应该去噪。可以使用 grow_mask_by 增加遮罩的面积,为修复过程提供一些额外的填充空间。

该节点专门用于训练用于修复的扩散模型,并将确保在编码之前遮罩下的像素被设置为灰色(0.5,0.5,0.5)。

 

示例指定区域重绘

说明 

选择我们加载的图片,并设置重绘区域,假设这里提示词不变,并且设置好花瓶下半部分需要重绘;右击图片并选择“open in MaskEdit (用重绘编辑器打开)”

设置重绘区域后,并得到如下图片

执行同样的提示词语,就会根据对应的区域进行重绘出不同的东西

若不满意可以自己更换提示词,指定生成该区域重绘的内容;

若非相同地图颜色或者背景 grow_mask_by值越小,效果差异化明显不大,且协调,值越大差异化大

输入

pixels

要编码的像素空间图像。

vae

用于编码像素图像的VAE。

mask

指示哪里需要修复的遮罩。

grow_mask_by

增加给定遮罩面积的大小。

输出

LATENT

遮罩和编码后的潜在图像。

② Set Latent Noise Mask (设置潜在噪声遮罩节点) 

设置潜在噪声遮罩节点可用于为潜在图像添加遮罩以进行修复。当设置噪声遮罩时,采样器节点将仅在被掩盖的区域操作。如果提供了单个遮罩,批次中的所有潜在图像将使用此遮罩。

示例

输入

samples

将被遮罩修复的潜在图像。

mask

指示哪里需要修复的遮罩。

输出

LATENT

被遮罩的潜在图像。

2)Transform (改变)

① Rotate Latent (旋转潜像节点)

旋转潜像节点可用于将潜像顺时针旋转x度的增量

 示例

 输入

samples

要旋转的潜像。

rotation

顺时针旋转。

输出

LATENT

旋转后的潜像

② Flip Latent (翻转潜像节点) 

翻转潜像节点可以用来水平或垂直翻转潜像

 示例

输入

samples

将要被翻转的潜像。

flip_method

潜像是水平翻转还是垂直翻转。

输出

LATENT

翻转后的潜像。

③:Crop Latent (裁剪潜像节点)

裁剪潜像节点可用于将潜在图像裁剪成新的形状

ComfyUI中坐标系统的原点位于左上角。

 示例

width

输入

samples

将要被裁剪的潜在图像

width

区域的宽度,以像素为单位

height

区域的宽度,以像素为单位

x

区域X坐标

y

区域y坐标

输出

LATENT

翻转后的潜像。

 

 3.VAE Decode (VAE 编码节点)

VAE 解码节点可用于使用提供的VAE将潜在空间图像解码回像素空间图像

 示例

输入

samples

待解码的潜在图像

vae

用于编码像素图像的VAE

输出

IMAGE

解码后的图像

 

4.VAE Encode (VAE 解码节点)

VAE 编码节点可用于使用提供的VAE将像素空间图像编码成潜在空间图像

 

示例

vae

输入

pixels

待编码的像素空间图像

vae

用于编码像素图像的VAE

输出

LATENT

编码后的潜在图像

 

4.批处理节点

① Latent From Batch (批次中提取潜在图像)

批次中提取潜在图像节点可用于从一批潜在图像中提取一个片段。当需要在工作流中隔离批次内的特定潜在图像或多个图像时,这非常有用

示例

输入

samples

要从中提取片段的潜在图像批次。

batch_index

要提取的第一个潜在图像的索引。

length

要提取的潜在图像数量。

输出

LATENT

仅包含所提取片段的新潜在图像批次。

 

② Repeat Latent Batch(重复潜在图像批次处理节点)

重复潜在图像批处理节点可用于重复一批潜在图像。例如,这可以用于在图像到图像的工作流程中创建一个图像的多个变体

示例

 

输入

samples

将要重复的潜在图像批次

amount

重复的次数。

输出

LATENT

重复次数生成图片数量

② Repeat Latent Batch(重复潜在图像批次处理节点) 

重复潜在图像批处理节点可用于重复一批潜在图像。例如,这可以用于在图像到图像的工作流程中创建一个图像的多个变体

 

示例

amount

输入

samples

将要重复的潜在图像批次

amount

重复的次数。

输出

LATENT

重复次数生成图片数量

③ Rebatch Latents (重新批处理潜像节点) 

重新批处理潜像节点可用于拆分或合并潜像批次。当这导致多个批次时,节点将输出一个批次列表而不是单个批次。例如,当批次大小太大,无法全部放入VRAM中时,拆分批次非常有用,因为ComfyUI将为列表中的每个批次执行节点,而不是一次性执行所有批次。它也可以用于将批次列表合并回单个批次

该节点的输出是一个列表

 

示例

latents

 

输入

latents

将要重新批处理的潜像

batch_sixe

新的批次大小

输出

LATENT

一个潜像列表,其中每个批次不大于批次大小

5.Upscale Latent (放大潜在图像节点)

放大潜在图像节点可用于调整潜在图像的大小

调整潜在图像的大小与调整像素图像的大小不同。简单地调整潜在图像而不是像素会导致更多的失真。

 

示例 

输入

samples

要放大的潜在图像

upscale_method

用于调整大小的方法

Width

目标宽度,以像素为单位

height

目标高度,以像素为单位

crop

是否对图像进行中心裁剪以保持原始潜在图像的宽高比

输出

LATENT

调整大小后的潜在图像

 6.Latent Composite (潜在复合节点)

潜在复合节点可用于将一个潜在图像粘贴到另一个上

ComfyUI中坐标系统的原点位于左上角。

 

输入

samples_to

要粘贴进的潜在图像

samples_from

将要被粘贴的潜在图像

x

粘贴的潜在图像的x坐标,以像素为单位

y

粘贴的潜在图像的y坐标,以像素为单位

feather

被粘贴的潜在图像的羽化处理

输出

LATENT

包含将samples_from粘贴到samples_to中的新潜在复合图像

7.Latent Composite Masked (潜在复合遮罩节点)

潜在复合遮罩节点可用于将一个带遮罩的潜在图像粘贴到另一个上。 

ComfyUI中坐标系统的原点位于左上角。

 

输入

destination

要粘贴进的潜在图像

source

将要被粘贴的潜在图像

mask

用于被粘贴的源潜在图像的遮罩

x

粘贴的潜在图像的x坐标,以像素为单位

y

粘贴的潜在图像的y坐标,以像素为单位

输出

LATENT

包含将samples_from粘贴到samples_to中的新潜在复合图像

 7.Empty Latent Image (空潜在图像节点)

空潜在图像节点可用于创建一组新的空潜在图像。这些潜在图像随后可以在例如text2image工作流中通过使用采样节点对它们进行加噪和去噪来使用

 输入

width

潜在图像的宽度,以像素为单位

height

潜在图像的高度,以像素为单位

batch_size

潜在图像的数量

输出

LATENT

潜在图像

Logo

尧米是由西云算力与CSDN联合运营的AI算力和模型开源社区品牌,为基于DaModel智算平台的AI应用企业和泛AI开发者提供技术交流与成果转化平台。

更多推荐