AI大模型教程
一起来学习

ComfyUI 插件教程:帮你完全掌握 ComfyUI Impact 节点(四)

前言:

学习 ComfyUI 是一场持久战,而 ComfyUI Impact 是一个庞大的模块节点库,内置许多非常实用且强大的功能节点 ,例如检测器、细节强化器、预览桥、通配符、Hook、图片发送器、图片接收器等等。通过这些节点的组合运用,我们可以实现的工作有很多,例如自动人脸检测和优化修复、区域增强、局部重绘、控制人群、发型设计、更换模特服饰等。在 ComfyUI 的进阶之路上,ComfyUI Impact 是每个人不可绕过的一条大河,所以本篇文章将带领大家理解并学会使用这些节点。祝大家学习顺利,早日成为 ComfyUI 的高手!

一、安装方式

方法一:通过 ComfyUI Manager 安装(推荐)

打开 Manager 界面

方法二:使用 git clone 命令安装

在 ComfyUI/custom_nodes 目录下输入 cmd 按回车进入电脑终端

在终端输入下面这行代码开始下载

git clone https://github.com/ltdrdata/ComfyUI-Impact-Pack

二、CLIPSegDetectorProvider 节点

此节点专注于使用 CLIPSeg 模型进行图像分割和对象检测。这一节点可以根据输入的图像和文本描述,在图像中分割出符合描述的对象或区域。

参数:

text → 输入要检测部位的名词,例如:手(hand)、脸(face)、翅膀(wing)等

blur → 表示模糊区域,决定每一个检测框检测对一些噪声的保留还是丢弃

threshold → 选择最终遮罩的阈值,检测模型检测时不仅仅只生成一张遮罩,而是有很多个检测框,模型最终会根据阈值从众多遮罩中选择一个最好的

dilation_factor → 膨胀因子,扩展边界使其完全覆盖检测目标

注意:blur 参数的选择范围为 0-15,超出会报错

输出:

BBOX_DETECTOR → 带有特定提示的边界框检测模型

注意:使用该节点时需要安装 ComfyUI-CLIPSeg 节点扩展,安装方法为:打开 manager 管理器,点击 Install Custom Nodes,在搜索框输入 CLIPSeg 安装即可。

示例:

注意事项

  1. 文本描述精度:确保输入的文本描述准确且清晰,以便 CLIPSeg 模型能够正确理解和处理。
  2. 模型参数配置:根据具体需求调整 CLIPSeg 模型的参数,以获得最佳的分割和检测效果。
  3. 处理性能:图像分割和检测可能需要较高的计算资源,确保系统性能足够支持处理需求。

通过使用 CLIPSegDetectorProvider 节点,可以在图像处理工作流程中实现基于自然语言描述的图像分割和检测,提升图像处理的智能化和精准度。

三、Decompose(SEGS)/ From_SEG_ELT 节点

SEGS 包含了很多目标检测后的数据,这两个节点则是方便我们取用其中一个数据。

输入:

segs → segs数据输入

输出:

SEGS_HEADER → segs数据的头部信息,包含诸如数据源、数据版本、数据生成时间等与数据相关的元信息

SEG_ELT → segs分离出头部信息的剩余数据,包含了segs数据的主要内容

cropped_image → 裁剪后的图像

cropped_mask → 裁剪图像的遮罩

crop_region → 原始图像中被裁剪出的区域的描述,指示分割元素在原始图像中的位置和大小信息

bbox → 检测框

control_net_wrapper → control_net数据

confidence → 检测的置信度

label → 检测目标的标签

示例:

注意事项

  1. 数据格式一致性:确保输入的分割数据和分割元素格式一致,以便各节点能够正确处理和传递数据。
  2. 提取参数配置:根据具体需求配置 From_SEG_ELT 节点的提取参数,以获得所需的特征和信息。
  3. 处理性能:分解和特征提取操作可能需要较高的计算资源,确保系统性能足够支持处理需求。

通过使用 Decompose(SEGS)和 From_SEG_ELT 节点,可以在图像处理工作流程中实现分割数据的细粒度解构和信息提取,提升图像处理和分析的精细度和准确性。

四、PixelKSample UpscalerProviderPipe 节点

此节点专注于使用 PixelKSample 算法进行图像上采样。通过上采样,图像可以从较低分辨率提升到较高分辨率,同时保持图像的质量和细节。

输入:

basic_pipe → 带有模型和提示词等信息的管道

upscale_model_opt → 放大模型

pk_hook_opt → hook的细节控制

参数:

scale_mothod → 放大的方式,有最近邻插值、双线性插值、Lanczos插值和区域插值

seed → 随机种子

control_after_generate → 控制每次执行后种子的变化

steps → 步数

cfg → 提示词引导系数,即提示词对结果产生影响的大小 **过高会产生负面影响**

sampler_name → 选择采样器

scheduler → 选择调度器

denoise → 去噪幅度 **值越大对图片产生的影响和变化越大**

use_tiled_vae → 选择是否采用分块处理 **分块处理通过将图像分成多个小块,并分别对每个小块进行编码和解码,来生成更高分辨率的图像,有助于处理大尺寸的图像,同时能够保留更多的细节和特征**

tile_size → 图像放大过程中使用的块大小 **当图像尺寸较大时,为了提高计算效率和降低内存消耗,可以将图像分成多个小块处理**

输出:

UPSCALER → 经过放大操作处理后的图像放大数据,可以进一步用于对图像进行后续处理或其他操作

注意事项

  1. 上采样倍率:根据具体需求选择适当的上采样倍率,以获得最佳的分辨率提升效果。
  2. 算法参数配置:调整 PixelKSample 算法的参数,确保上采样效果符合预期。
  3. 处理性能:上采样处理可能需要较高的计算资源,确保系统性能足够支持处理需求。
  4. 输入图像质量:上采样的效果依赖于输入图像的质量,确保输入图像清晰度尽可能高。

通过使用 PixelKSampleUpscalerProviderPipe 节点,可以在图像处理工作流程中实现高效的图像上采样,提升图像的分辨率和细节表现,满足各种图像优化和处理需求。

五、lterative Upscale (Latent/on Pixel Space)节点

此节点通过迭代上采样方法,在图像处理过程中逐步提高图像分辨率。这种方法可以在不同的空间中进行,具体取决于配置参数的设置。

输入:

samples → 潜空间图像

upscaler → 经过放大操作处理后的图像放大数据

参数:

upscale_factor → 放大系数,数字代表放大几倍

steps → 放大操作的重复次数

temp_prefix → 用于设置临时文件名前缀的参数

输出:

latent → 处理完成后的潜空间图像

vae → vae模型

该节点和第三个节点可以组合使用,并且可以多个这种组合连接,实现更好的放大效果。下面给出一个工作流,方便大家理解这两个节点:

注意事项

  1. 迭代次数:根据具体需求选择适当的迭代次数,迭代次数越多,上采样效果越明显,但计算资源消耗也会增加。
  2. 处理空间选择:根据具体应用场景选择在潜在空间或像素空间中进行上采样处理。潜在空间处理可能更适合深度学习模型,像素空间处理则适合传统图像处理方法。
  3. 算法参数配置:调整迭代上采样的参数,确保上采样效果符合预期。
  4. 处理性能:迭代上采样处理需要较高的计算资源,确保系统性能足够支持处理需求。
  5. 输入图像质量:上采样的效果依赖于输入图像的质量,确保输入图像清晰度尽可能高。

通过使用 Iterative Upscale (Latent/on Pixel Space)节点,可以在图像处理工作流程中实现高效的迭代上采样,逐步提升图像的分辨率和细节表现,满足各种图像优化和处理需求。

六、Make Tile SEGS 节点

此节点的主要功能是将输入的分割图像分割成多个小块。这种方法有助于在处理大图像时减少内存消耗,并可以对每个小块进行更精细的处理和分析。

输入:

images → 遮罩图像

filter_in_segs_opt → 如果提供了这个输入,在创建图块时,每个图块的遮罩将通过与 filter_in_segs_opt的遮罩重叠而生成

filter_out_segs_opt → 如果提供了这个输入,在创建图块时,每个图块的遮罩将排除与 filter_in_segs_opt的遮罩重叠的部分

注意:遮罩为空的瓦片不会被创建成 SEGS

参数:

bbox_size → 图块的尺寸

crop_factor → 对图像进行裁剪时应用的裁剪因子或裁剪比例

min_overlap → 最小的重叠区域,与filter_in_segs_opt和filter_out_segs_opt两参数有关

filter_segs_dilation → 图像处理中对图像进行膨胀操作的参数

mask_irregularity → 图像处理中用于描述或度量遮罩的不规则程度的指标 **越大边界越不规则**

irregular_mask_mode → 生成不规则遮罩的方法模式,可选的有快速复用、质量复用、全随机快速和全随机质量

输出:

SEGS → 输出SEGS数据

示例:

注意事项

  1. 小块尺寸:根据具体需求选择适当的小块尺寸,确保每个小块既包含足够的信息,又不至于过大导致处理效率下降。
  2. 重叠部分:配置小块之间的重叠部分,可以避免在切分过程中丢失重要信息,特别是在边缘区域。
  3. 处理性能:切分操作可能需要较高的计算资源,确保系统性能足够支持处理需求。
  4. 拼接重组:如果后续需要将处理后的图像小块重组回完整图像,注意记录和维护每个小块的位置信息。

通过使用 Make Tile SEGS 节点,可以在图像处理工作流程中实现对大尺寸图像的高效切分和处理,提升图像处理的精细度和灵活性。

七、Picker(SEGS)节点

此节点专注于从图像分割结果中选择特定的分割区域或对象。通过配置选择条件,用户可以从分割掩码中提取出需要处理的部分。

输入:

segs → 包含多张图片的segs

fallback_image_opt → 备选图像,当存在备选图像时节点会将segs中的图像进行缩放,以匹配备选图像的大小或形状。这样做可以确保图像段与备选图像保持一致,以便在处理期间进行合适的操作。

参数:

picks → 选择图像

输出:

SEGS → 输出选择图像的segs数据

下面几张图说明了 Picker(SEGS)节点的用法:

注意事项

  1. 选择条件配置:根据具体需求配置选择条件,确保选择的分割区域符合预期。
  2. 数据格式一致性:确保输入的分割数据格式与选择条件兼容,以便节点能够正确处理和输出数据。
  3. 处理性能:选择操作可能涉及大量计算,确保系统性能足够支持处理需求。

通过使用 Picker (SEGS)节点,可以在图像处理工作流程中实现对分割结果的精准选择和提取,提升图像处理和分析的效率和精度。

由于本文基本上每个节点都给出了单独的工作流进行讲解,加上本文所讲的节点之间的关联性没那么强,所以这里就不提供囊括所有节点的工作流了,大家把上面每个节点对应的工作流学习理解即可。

文章来源于互联网:ComfyUI 插件教程:帮你完全掌握 ComfyUI Impact 节点(四)

相关推荐: 使用Claude 3.5 Sonnet和Stable Diffusion XL:如何通过Amazon Bedrock不断优化图像生成直到满足需求

在Amazon Bedrock的AI模型中,Anthropic Claude 3系列现在新增了图像识别功能。特别是最新的Anthropic Claude 3.5 Sonnet,图像识别能力得到了显著提升。我进行了一些简单的试验和比较,深入探索了这些Claude…

赞(0)
未经允许不得转载:5bei.cn大模型教程网 » ComfyUI 插件教程:帮你完全掌握 ComfyUI Impact 节点(四)

ComfyUI 插件教程:帮你完全掌握ComfyUI Impact 节点(一)

前言:

学习 ComfyUI 是一场持久战,而 ComfyUI Impact 是一个庞大的模块节点库,内置许多非常实用且强大的功能节点 ,例如检测器、细节强化器、预览桥、通配符、Hook、图片发送器、图片接收器等等。通过这些节点的组合运用,我们可以实现的工作有很多,例如自动人脸检测和优化修复、区域增强、局部重绘、控制人群、发型设计、更换模特服饰等。在 ComfyUI 的进阶之路上,ComfyUI Impact 是每个人不可绕过的一条大河,所以本篇文章将带领大家理解并学会使用这些节点。祝大家学习顺利,早日成为 ComfyUI 的高手!

一、安装方式

方法一:通过 ComfyUI Manager 安装(推荐)

打开 Manager 界面

方法二:使用 git clone 命令安装

在 ComfyUI/custom_nodes 目录下输入 cmd 按回车进入电脑终端

在终端输入下面这行代码开始下载

git clone https://github.com/ltdrdata/ComfyUI-Impact-Pack

二、SAMLoader 节点

加载和处理 SAM(Segment Anything Model)模型文件。该节点的主要功能是将预训练的 SAM 模型加载到内存中,以便在后续的节点中进行图像分割或其他相关操作。

输入:

SAM 模型的路径 **假如配置好了路径文件,模型可自行选择**

device_name → 设备模式,可以选择在GPU或CPU上运行,推荐选择自动即可

输出:

SAM_MODEL → 根据调用该模型的节点情况对目标进行分割,生成目标的轮廓

注意:该模型不能单独使用,需要其他模型为其指定分割区域,随后该模型可以做到精细的分割。如下图对比:

使用场景:

  1. 加载模型:SAMLoader 节点用于从指定路径加载预训练的 SAM 模型文件。通常,这些模型文件会存储在本地磁盘或其他存储介质上。
  2. 配置参数:节点会提供一些参数配置选项,让用户可以指定模型文件的路径和其他加载参数。
  3. 输出模型:一旦模型加载完成,SAMLoader 节点会输出一个表示该模型的对象,该对象可以传递给其他节点以执行具体的图像分割任务。

通过 SAMLoader 节点,可以方便地加载和使用预训练的 SAM 模型,进行各种图像分割任务,实现更高效的图像处理工作流程。

三、UltralyticsDetectorProvider 节点

提供一个基于 Ultralytics 的目标检测器,用于替换现有基于 mmdet 的检测器,可加载 BBOX_Model 和 SEGM_Model 两种模型之一。

输入:

目标检测模型的路径 **主流的模型有脸部检测、手部检测、身体检测等,假如配置好了路径文件,模型可自行选择**

输出:

BBOX_DETECTOR → 使用矩形框进行检测

SEGM_DETECTOR → 检测出目标的轮廓

注意:该节点只能加载 BBOX 和 SEGM 中的一种模型,并且要根据 model_name 中所选的模型类型进行连接,例如我的 bbox/face_yolov8m.pt 是一个 BBOX 类型的脸部检测模型,所以再连线时我就要选择 BBOX_DETECTOR 进行连线,这也是 SEGM_DETECTOR 会显示红叉的原因。

下面两张图片说明 BBOX 模型和 SEGM 模型的区别:

节点注意事项:

  1. 确保选择的模型文件路径正确,或者如果使用预定义模型,确保网络连接稳定以下载模型文件。
  2. 调整置信度阈值可以控制检测结果的精确度和召回率。较高的阈值会减少误报,但可能漏检,较低的阈值会增加召回率,但可能误报更多。

通过 UltralyticsDetectorProvider 节点,可以方便地利用 Ultralytics 提供的高效目标检测模型,进行各种目标检测任务,如物体识别、跟踪等,实现智能图像分析。

四、BBOX Detector(SEGS) / BBOX Detector(combined)节点

这两个节点用于目标检测任务,这些节点会输出检测到的对象的边界框(Bounding Box, BBOX)信息。它们的主要区别在于处理的输入类型和方法。

BBOX Detector(SEGS) 节点通常用于从分割结果中提取边界框。这种方法适用于图像分割模型的输出,其中每个对象的像素已经被分割出来,节点通过分析这些分割结果来确定每个对象的边界框。

BBOX Detector(combined) 节点用于直接处理输入图像,通过目标检测模型同时进行对象识别和边界框提取。这个节点适合使用预训练的目标检测模型,如 YOLO 等。

输入:

bbox_detector → BBOX类型的检测模型

image → 输入加载的图片

detailer_hook → impact库的一个特殊参数,用于在模型的不同阶段或特定事件发生时执行一些额外的操作

参数:

threshold → 阈值,仅检测已识别置信度高于此值的对象

dilation → 调整最终显示时,检测到的掩码区域的大小

crop_factor → 根据检测到的掩码区域,确定应将周围区域包含在细节修复过程中的次数 **如果此值较小,则修复可能无法正常工作,因为无法知道周围的上下文**

drop_size → 降低尺寸,用于控制细节增强过程中的图像降低尺寸的大小。

文本框 → 用于输入文本指定被允许检测的地方

输出:

SEGS → 包含每次检测的裁剪图像、掩码图案、裁剪位置和置信度

MASK → 所有检测到的矩形框组合而成的单个掩码

使用方法:

① BBOX Detector(SEGS) 节点

  1. 输入分割结果:节点接受图像分割模型的输出,通常是一个包含分割掩码的图像。
  2. 提取边界框:通过分析分割掩码,节点确定每个对象的边界框。
  3. 输出边界框:节点输出一个包含所有检测对象边界框的信息,包括每个边界框的位置和大小。

② BBOX Detector(combined) 节点

  1. 输入图像:节点接受一个输入图像。
  2. 目标检测:通过预训练的目标检测模型(如 YOLO)在图像中检测对象并提取边界框。
  3. 输出边界框:节点输出一个包含所有检测对象边界框的信息,包括每个边界框的位置、大小以及对象类别和置信度分数。

合理使用 BBOX Detector(SEGS)和 BBOX Detector(combined)节点,可以实现复杂的图像分析任务,包括对象检测、定位和分类,从而提升各种应用场景下的智能化水平。

五、SAMDetector(combined) / SAMDetector(segmented)节点

用于目标检测和图像分割任务。这俩节点利用 Segment Anything Model (SAM) 来进行高级的图像处理。

输入:

sam_model → 接收SAMLoader节点加载的SAM模型

segs → 接收UltralyticsDetectorProvider节点加载的目标检测模型

image → 接收加载的图片

参数:

detection_hint → 用来指定在分割时使用哪种类型的检测结果作为提示来帮助生成掩码

dilation → 膨胀分割结果的边界

threshold → 阈值,仅检测已识别置信度高于此值的对象

bbox_expansion → 控制在生成轮廓时扩展边界的大小,以确保更好地包含目标对象

mask_hint_threshold → 与mask_hint_use_nagative参数一起使用,用于指定detection_hint的阈值,将掩码区域中的掩码值等于或高于阈值的情况解释为正提示

注意:大于 0 但小于 mask_hint_threshold 的值不用作否定提示。

mask_hint_use_nagative → 控制是否使用负提示来辅助分割

输出:

combined_mask → 分割节点的深度信息,包含整个图像的分割结果

batch_masks → 分割节点的深度信息,包含批处理中每个样本的分割结果

MASK → 分割节点的深度信息,包含整个图像的分割结果

注意事项

  1. 模型选择:确保选择合适的 SAM 模型版本和配置参数,以获得最佳的检测和分割效果。
  2. 输入数据质量:无论是直接输入图像还是预先分割的结果,输入数据的质量都会影响最终的检测和分割效果。

合理使用 SAMDetector(combined)和 SAMDetector(segmented)节点,可以实现高效的图像检测和分割任务,满足多种应用场景的需求。

六、Simple Detector(SEGS) / Simple Detector(SEGS/pipe) / Simple Detector for AnimateDiff(SEGS)

与前面几个检测器的功能类似,都是接收模型->分割->输出分割结果,旨在处理不同类型的输入和工作流程,以满足特定应用需求。

输入:

bbox_detector → 接收BBOX模型

image_frames → 动画帧的输入图像序列

image → 接收待分割的图片

sam_model_opt → 接收SAM模型

segm_detector_opt → 接收SEGM模型

detailer_pipe → 输入细节调整的参数,使分割结果更加完美

参数:

bbox_threshold → BBOX模型的检测阈值

bbox_dilation → BBOX模型边界框的膨胀参数,用于扩展边界框的范围

crop_factor → 裁剪因子,用于裁剪图像

drop_size → 设置一个尺寸阈值,用于过滤较小目标的参数

sub_dilation → 子图的膨胀参数

sub_bbox_expansion → 子图BBOX模型的边界框扩展参数

sam_mask_hint_threshold → SAM模型的掩码提示阈值

masking_mode → 调节掩码模式

segs_pivot → 选择动画差异检测的基准点

post_dilation → 后期处理膨胀参数

输出:

SEGS → 分割结果的深度信息

注意事项

  1. 输入数据质量:无论是直接输入图像还是预先分割的结果,输入数据的质量都会影响最终的检测和分割效果。
  2. 工作流程配置:确保在复杂工作流程中,各节点的连接和数据流动顺畅,以获得最佳处理效果。

合理使用这三个节点,可以实现多种图像处理任务,包括目标检测、图像分割和动画处理,满足不同应用场景的需求。

七、DetailerDebug(SEGS)节点

放大图像并在内部利用 KSampler 对图像进行绘制。

输入:

image → 需要重绘的原始图像

segs → 输入分割模型得到的分割结果

model → checkpoints大模型

clip → 提示词编码模型

vae → vae模型

positive → 正向提示词

negative → 反向提示词

detailer_hook → 对模型进行更加精细调整的拓展接口

注意:这里的正向提示词和反向提示词都是针对重绘部分的,用于指导重绘后的图像。

参数:

guide_size → 参考尺寸 **小于的目标图像被放大以匹配,而大于的图像将被跳过,因为它们不需要细节处理**

guide_size_for → 设置guide_size基于什么 **当设置为bbox时,它使用检测器检测到的bbox作为参考;当设置为crop_region时,它使用基于检测到的bbox所识别的裁剪区域作为参考**

注意:选择 BBOX 时,基于 crop_factor 的放大图像的大小可能比 guide_size 大几倍。

max_size → 最大尺寸 **将目标图像的最长边限制为小于max_size的安全措施,它解决了bbox可能变得过大的问题,特别是如果它有细长的形状**

seed → 内置KSampler的种子

contorl_after_generate → 控制种子的变更方式 **fixed为固定种子,increment为每次增加1,decrement为每次减少1,randomize为种子随机**

steps → 去噪步数(也可以理解成生成图片的步数)

cfg → 提示词引导系数,即提示词对结果产生影响的大小 **过高会产生负面影响**

sampler_name → 选择采样器

scheduler → 选择调度器

denoise → 去噪幅度 **值越大对图片产生的影响和变化越大**

feather → 羽化的大小

noise_mask → 控制在修复过程中是否使用噪声掩码 **虽然在不用噪声掩码的情况下,较低的去噪值有时会产生更自然的结果,但通常建议将该参数设置为enabled**

force_inpaint → 防止跳过基于guide_size的所有过程 **当目标是修复而不是细化时,这很有用。小于guide_size的SEGS不会通过减小去匹配guide_size;相反,它们会被修复为原来的大小**

文本框 → 输入通配符的规范,如果保持为空,此选项将被忽略

cycle → 采样的迭代次数 **当与Detailer_hook一起使用时,此选项允许添加间歇性噪声,也可用于逐渐减小去噪大小,最初建立基本结构,然后对其进行细化。

inpaint_model → 使用修复模型时,需要启用此选项,以确保在低于1.0的降噪值下进行正确的内补

noise_mask_feather → 控制羽化操作是否应用于修复过程的蒙版

注意:此选项不能保证图像更自然,同时它可能会在边缘产生伪影,大家按需设置!

输出:

image → 最终重绘后的图片

cropped → 调整图像的大小、去除不必要的部分、集中注意力于特定区域的效果图

cropped_refined → 经过剪裁和进一步处理的图像

cropped_refined_alpha → 经过裁剪和精细化处理后的alpha通道

cnet_images → 蒙版位置图

注意事项

  1. 输入数据质量:确保输入的分割结果准确无误,因为输入数据的质量会直接影响分析和调试的效果。
  2. 节点配置:根据具体需求调整 DetailerDebug(SEGS)节点的配置参数,以获得最佳的分析和调试效果。

通过使用 DetailerDebug(SEGS)节点,可以深入了解和优化图像分割模型的性能,确保分割结果满足实际应用的需求,同时提升模型的开发和调试效率。

八、示例工作流

熟练使用以上节点,你就可以搭建一个简单的“AI 换脸”的工作流了。

该工作流先是对加载的图片进行脸部的检测和分割,然后将分割的结果、原图、重绘的提示词输入细节修复器中,在细节修复器中,内置的采样器会根据提示词对图片的脸部进行重新扩散,最后输出换脸之后的图。原图和换脸后的图如下所示:

文章来源于互联网:ComfyUI 插件教程:帮你完全掌握ComfyUI Impact 节点(一)

相关推荐: 区分LLaMA、llama.cpp和Ollama

大模型本地部署和运行中,经常遇到这三个概念,llama,ollama,llama.cpp。 刚开始接触时,的确有些傻傻分不清楚。这里简单区分理解下,方便快速上手。 简单来讲,llama 是一个Meta公司开源的预训练大型语言模型,llama.cpp用于加载和运…

赞(0)
未经允许不得转载:5bei.cn大模型教程网 » ComfyUI 插件教程:帮你完全掌握ComfyUI Impact 节点(一)

ComfyUI 插件教程:帮你完全掌握 ComfyUI Impact 节点(二)

前言:

学习 ComfyUI 是一场持久战,而 ComfyUI Impact 是一个庞大的模块节点库,内置许多非常实用且强大的功能节点 ,例如检测器、细节强化器、预览桥、通配符、Hook、图片发送器、图片接收器等等。通过这些节点的组合运用,我们可以实现的工作有很多,例如自动人脸检测和优化修复、区域增强、局部重绘、控制人群、发型设计、更换模特服饰等。在 ComfyUI 的进阶之路上,ComfyUI Impact 是每个人不可绕过的一条大河,所以本篇文章将带领大家理解并学会使用这些节点。祝大家学习顺利,早日成为 ComfyUI 的高手!

一、安装方式

方法一:通过 ComfyUI Manager 安装(推荐)

打开 Manager 界面

方法二:使用 git clone 命令安装

在 ComfyUI/custom_nodes 目录下输入 cmd 按回车进入电脑终端

在终端输入下面这行代码开始下载

git clone https://github.com/ltdrdata/ComfyUI-Impact-Pack

先行提示:Pipe 节点是 Impact 为我们提供的一种非常方便的节点类型。当我们需要多次使用模型、clip、vae、提示词等元素时,UI 端会出现大量的线条,显得十分混乱。而 Pipe 节点解决了这个问题。我们只需在开始时使用 To 节点整合这些信息,然后通过一根线连接到需要使用这些信息的地方,再用 From 节点解析出来。在整个过程中,仅需一根线连接,大大提高了工作流的效率。这篇文章将主要讲解 Pipe 节点的使用,帮助大家掌握所有这类节点的操作,提高工作效率。

二、ToBasicPipe / FromBasicPipe / FromBasicPipe_V2 节点

ToBasicPipe 节点将构建工作流最基本的节点信息整合在一条管道(Pipe)中,FromBasicPipe 节点和 ToBasicPipe 节点是配套使用的,它可以将 ToBasicPipe 节点整合的信息解析成原来的样子,FromBasicPipe_V2 节点则是可以将灵活性再一次提升。

举个通俗一点的例子:ToBasicPipe 节点和 FromBasicPipe 节点类似于高铁的起始站和终点站,整合信息会从起始站走到终点站,而 FromBasicPipe_V2 节点是中间站,有了它整合信息就可以有不同的走向了,就形成了路网。

输入:

basic_pipe → 包含了model、clip、vae、positive、negative这些基本信息的管道

model → 要整合进管道的模型,可以是checkpoints模型、Lora模型、controlnet模型等等

clip → 要整合进管道的clip模型

vae → 要整合进管道的vae模型

positive → 要整合进管道的正向提示词

negative → 要整合进管道的反向提示词

输出:

basic_pipe → 包含了model、clip、vae、positive、negative这些基本信息的管道

model → 根据管道解析出来的模型,可以是checkpoints模型、Lora模型、controlnet模型等等

clip → 根据管道解析出来的clip模型

vae → 根据管道解析出来的vae模型

positive → 根据管道解析出来的正向提示词

negative → 根据管道解析出来的反向提示词

示例:

使用场景:

  1. 数据标准化:在复杂工作流程中,确保数据格式统一,以便后续节点可以正确处理。
  2. 跨阶段数据传递:在多个处理阶段之间传递数据,确保各阶段的处理结果可以无缝衔接。
  3. 数据重新格式化:在数据处理流程中,将标准化的数据重新格式化为特定处理节点所需的格式。
  4. 后续处理:在后续处理阶段中,使用提取的数据进行进一步的分析和处理。
  5. 复杂数据处理:在复杂数据处理流程中,处理更多的数据类型和格式,提供更高的灵活性和控制。
  6. 高级数据转换:提供更高级的数据转换功能,满足更复杂的应用需求。

通过使用 ToBasicPipe、FromBasicPipe 和 FromBasicPipe_V2 节点,可以在复杂的工作流程中实现数据的标准化、传递和重新格式化,确保各处理阶段之间的数据流动顺畅,提高工作流程的灵活性和效率。

三、ToDetailerPipe / ToDetailerPipeSDXL / FromDetailerPipe / FromDetailerPipe_V2 / FromDetailer(SDXL/pipe)节点

用于处理图像分割和细化处理工作流中的数据传递和格式转换,帮助在复杂的图像处理管道中管理和传递数据。简单的讲,这些节点也是让线路更加整洁美观,但是整合的信息更多。

输入:

model → 要整合进管道的模型,可以是checkpoints模型、Lora模型、controlnet模型等等

clip → 要整合进管道的clip模型

vae → 要整合进管道的vae模型

positive → 要整合进管道的正向提示词

negative → 要整合进管道的反向提示词

bbox_detector → 要整合进管道的BBOX模型

sam_model_opt → 要整合进管道的SAM模型

segm_detector_opt → 要整合进管道的SEGM模型

detailer_hook → 要整合进管道的定制的细节处理信息

文本框 → 通配符规范,如果保持为空,此选项将被忽略

Select to add LoRA → 选择要加载的LoRA模型

Selert to add Wildcard → 选择要添加的通配符

refiner_model → 要整合进管道的refiner大模型

refiner_clip → 要整合进管道的refiner模型的clip模型

refiner_positive → 要整合进管道的refiner模型连接的正向提升词

refiner_negative → 要整合进管道的refiner模型连接的反向提升词

detailer_pipe → 整合上面所有参数信息后的管道

输出:

model → 从管道分离出的base模型,可以是checkpoints模型、Lora模型、controlnet模型等等

clip → 从管道分离出的clip模型

vae → 从管道分离出的vae模型

positive → 从管道分离出的base模型的正向提示词

negative → 从管道分离出的base模型的反向提示词

bbox_detector → 从管道分离出的BBOX模型

sam_model_opt → 从管道分离出的SAM模型

segm_detector_opt → 从管道分离出的SEGM模型

detailer_hook → 从管道分离出的定制的细节处理信息

refiner_model → 从管道分离出的refiner模型,可以是checkpoints模型、Lora模型、controlnet模型等等

refiner_clip → 从管道分离出的refiner模型中的clip模型

refiner_positive → 从管道分离出的refiner模型的正向提示词

refiner_negative → 从管道分离出的refiner模型的反向提示词

detailer_pipe → 整合了所有参数信息的管道

注意:refiner_model, refiner_clip, refiner_positive, refiner_negative 这些节点都是 refiner 模型对应的参数,ToDetailerPipeSDXL 节点的一个优势就是可以将 base 模型和 refiner 模型结合起来。如下图所示:

Detailer 类型的节点整合的管道可以分离出来连接 Basic 类型的节点。如下图所示:将 FromDetailer(SDXL/pipe)节点中的 base 模型和 refiner 模型的 model、clip、positive、nagetive 等信息分别连接到两个 ToBasicPipe 节点中,可以单独使用某个模型的信息,后面也可以使用 BasicPipe->DetailerPipe(SDXL)节点合并起来。

使用场景:

  1. 数据标准化:在复杂工作流程中,确保数据格式统一,以便后续节点可以正确处理。
  2. 跨阶段数据传递:在多个处理阶段之间传递数据,确保各阶段的处理结果可以无缝衔接。
  3. 高分辨率图像处理:适用于高分辨率图像的细化处理,确保数据格式适合后续处理步骤。
  4. 数据重新格式化:在数据处理流程中,将标准化的数据重新格式化为特定处理节点所需的格式。
  5. 后续处理:在后续处理阶段中,使用提取的数据进行进一步的分析和处理。
  6. 复杂数据处理:在复杂数据处理流程中,处理更多的数据类型和格式,提供更高的灵活性和控制。
  7. 高级数据转换:提供更高级的数据转换功能,满足更复杂的应用需求。
  8. 细化处理后的数据提取:从细化处理结果中提取高分辨率数据,以便进一步处理或分析。

通过使用这些节点,可以在复杂的图像处理工作流程中实现数据的标准化、传递和重新格式化,确保各处理阶段之间的数据流动顺畅,提高工作流程的灵活性和效率。

四、Edit BasicPipe/Edit DetailerPipe / Edit DetailerPipe(SDXL) 节点

这些节点用于在处理管道中对数据进行编辑和调整,允许在数据传递过程中对数据进行必要的修改,以满足特定的处理需求。

由于关于 Pipe 类型节点的所有参数在前面都全部讲过了,这里就不浪费篇幅继续说参数了,如果有不懂的参数往上翻翻都能找到。下面附一张使用图帮助理解:

注意事项

  1. 数据一致性:确保输入数据格式与期望的一致,以便各节点可以正确处理和传递数据。
  2. 节点配置:根据具体需求调整节点的配置参数,以获得最佳的数据处理效果。
  3. 编辑谨慎:在编辑过程中,注意保存原始数据副本,以防止误操作导致的数据丢失或错误。

五、BasicPipe->DetailerPipe / BasicPipe->DetailerPipe(SDXL) / DetailerPipe->BasicPipe 节点

这些节点用于在不同数据管道格式之间进行转换,以便在复杂的图像处理工作流程中实现数据的无缝传递和处理。

关于 Pipe 类型节点的所有参数在前面都全部讲过了,这里也是不凑字数继续说参数了,如果有不懂的参数往上翻翻都能找到。下面附上每个节点的使用图帮助理解:

注意事项

  1. 数据一致性:确保输入数据格式与期望的一致,以便各节点可以正确处理和传递数据。
  2. 节点配置:根据具体需求调整节点的配置参数,以获得最佳的数据处理效果。
  3. 转换精度:在转换过程中,确保数据的完整性和精度不受影响,以便后续处理步骤能够正确使用转换后的数据。

通过使用这些转换节点,可以在复杂的图像处理工作流程中实现数据格式的无缝转换和传递,确保各处理阶段之间的数据流动顺畅,提高工作流程的灵活性和效率。

六、Image Sender / Image Receiver 节点

图片发送器和图片接收器,这两者组合使用可以实现不用连线将图片传送到工作流的任意位置。

输入:

image → 需要传输的图像

参数:

filename_prefix → 设置图片名的前缀 **在传输过程中节点都会为所传图片起个图片名**

link_id → 设置发送器或接收器的id**只要id一样,一个发送器可以同时发送给多个接收器**

image → 图片名

save_to_workflow → 选择是否将图片保存到工作流中

image_data → 当选择将图片保存到工作流中时,把图片转成文本信息储存在这(该信息会随着工作流一起保存)

trigger_always → 控制接收器是否一直触发

注意:通常我们使用 LoadImage 加载的图像无法在另外一台电脑中使用,因为这张图片是本地的,而 save_to_workflow 就是解决了这个问题。它将图片转成文本信息保存到工作流中,其他人下载该工作流时,其中的图片也随工作流一起被下载并可以使用。但是由于将图像转换成文本的效率很低,所以对于高分辨率的复杂图像应谨慎使用!同时上述过程会显著增加工作流的大小,建议对 MASK 图像等简单图像使用这个功能。

输出:

IMAGE → 接收到的图像

MASK → 接收到的图像MASK数据输出口

示例:

注意事项

  1. 数据一致性:确保发送和接收的图像数据格式一致,以便各节点可以正确处理和传递数据。
  2. 节点配置:根据具体需求配置节点的发送目标和接收源,以实现正确的数据传输。
  3. 网络连接:如果涉及远程处理,确保网络连接稳定,以便数据能够顺利传输。

七、FaceDetailer / FaceDetailer(Pipe)节点

专门针对脸部进行细节优化,内置一个独立的采样器,用于对脸部进行重新扩散。pipe 版的 FaceDetailer 可以将 base 模型和 refiner 模型结合使用,做到更细节的修复。

输入:

image → 需要重绘的原始图像

model → 加载大模型

clip → 加载clip模型

vae → 加载vae模型

positive → 导入正向提示词

negative → 导入反向提示词

bbox_detector → 加载BBOX模型

sam_model_opt → 加载SAM模型

segm_detector_opt → 加载SEGM模型

detailer_hook → 对模型进行更加精细调整的拓展接口

detailer_pipe → Detailer管道,在Basic管道的基础上加入了检测功能

参数:

guide_size → 参考尺寸 **小于的目标图像被放大以匹配,而大于的图像将被跳过,因为它们不需要细节处理**

guide_size_for → 设置guide_size基于什么 **当设置为bbox时,它使用检测器检测到的bbox作为参考;当设置为crop_region时,它使用基于检测到的bbox所识别的裁剪区域作为参考**

注意:选择 BBOX 时,基于 crop_factor 的放大图像的大小可能比 guide_size 大几倍。

max_size → 最大尺寸 **将目标图像的最长边限制为小于max_size的安全措施,它解决了bbox可能变得过大的问题,特别是如果它有细长的形状**

seed → 内置KSampler的种子

control_after_generate → 控制种子的变更方式 **fixed为固定种子,increment为每次增加1,decrement为每次减少1,randomize为种子随机**

steps → 去噪步数(也可以理解成生成图片的步数)

cfg → 提示词引导系数,即提示词对结果产生影响的大小 **过高会产生负面影响**

sampler_name → 选择采样器

scheduler → 选择调度器

denoise → 去噪幅度 **值越大对图片产生的影响和变化越大**

feather → 羽化的大小

noise_mask → 控制在修复过程中是否使用噪声掩码 **虽然在不用噪声掩码的情况下,较低的去噪值有时会产生更自然的结果,但通常建议将该参数设置为enabled**

force_inpaint → 防止跳过基于guide_size的所有过程 **当目标是修复而不是细化时,这很有用。小于guide_size的SEGS不会通过减小去匹配guide_size;相反,它们会被修复为原来的大小**

bbox_threshold → BBOX模型的检测阈值

bbox_dilation → BBOX模型边界框的膨胀参数,用于扩展边界框的范围

bbox_crop_factor → BBOX模型根据检测到的掩码区域,确定应将周围区域包含在细节修复过程中的次数 **如果此值较小,则修复可能无法正常工作,因为无法知道周围的上下文**

sam_detection_hint → SAM模型中用来指定在分割时使用哪种类型的检测结果作为提示来帮助生成掩码

sam_dilation → SAM模型边界框的膨胀参数,用于扩展边界框的范围

sam_threshold → SAM模型的检测阈值

sam_bbox_expansion → SAM模型在生成轮廓时扩展边界的大小,以确保更好地包含目标对象

sam_mask_hint_threshold → SAM模型中,与sam_mask_hint_use_nagative参数一起使用,用于指定detection_hint的阈值,将掩码区域中的掩码值等于或高于阈值的情况解释为正提示

sam_mask_hint_use_negative → 用于控制SAM模型是否使用负提示来辅助分割 **设置为True时,非常小的点被解释为掩码点中的负面提示,而掩码值为0的一些区域被解释为掩码区域中的负面提示**

drop_size → 设置一个尺寸阈值,用于过滤较小目标的参数 **去除噪声或不相关的小目标,使得检测结果更加可靠和准确**

文本框 → 输入通配符,如果为空,该选项会被忽略

refiner_ratio → 使用SDXL时,设置要refiner模型的功能在总进程中所占的比例。

cycle → 采样的迭代次数 **当与Detailer_hook一起使用时,此选项允许添加间歇性噪声,也可用于逐渐减小去噪大小,最初建立基本结构,然后对其进行细化。

inpaint_model → 使用修复模型时,需要启用此选项,以确保在低于1.0的降噪值下进行正确的内补

noise_mask_feather → 控制羽化操作是否应用于修复过程的蒙版、

注意:noise_mask_feather 不能保证图像更自然,同时它可能会在边缘产生伪影,大家按需设置!

输出:

image → 最终重绘后的图片

cropped_refined → 经过剪裁和进一步处理的图像

cropped_enhanced_alpha → 经过裁剪和精细化处理后的alpha通道

mask → 重绘后图片的mask信息

detailer_pipe → Detailer管道,在Basic管道的基础上加入了检测功能

cent_images → 蒙版位置图

注意:在 ComfyUI Impact 节点(一)中讲过 cent_images 这个参数,请大家谨慎吸收!!

主要功能和使用方法:

  1. 输入人脸图像:节点接受包含人脸的图像数据,通常是从前置的检测或分割节点获取的。
  2. 细化处理:对输入的人脸图像进行细化处理,如增强细节、去除噪声、调整光照等。
  3. 管道集成:支持与其他节点的无缝集成,适合用于复杂的图像处理管道。
  4. 输出优化图像:输出经过细化处理后的高质量人脸图像。

注意事项

  1. 输入数据质量:确保输入的图像数据包含清晰的人脸信息,以获得最佳的细化处理效果。
  2. 节点配置:根据具体需求调整细化处理参数,以实现最佳的图像质量提升效果。
  3. 处理性能:细化处理可能需要较高的计算资源,确保系统性能足够支持处理需求。

八、示例工作流

熟练使用以上节点,你就可以搭建一个简单的“脸部修复”的工作流了。

该工作流囊括了这篇文章学习的所有节点,将该工作流学习一遍,会对上面所学的节点有一个更深层次的理解。主要思路就是使用了三个 FaceDetailer,然后通过添加、修改、拆分管道的信息生成每个 FaceDetailer 所需的输入信息,随后 FaceDetailer 内部的采样器根据检测模型检测的脸部蒙板以及提示词对脸部进行细节修复。上图正下方的四张图分别是原图、只使用 Base 模型的 FaceDetailer 结果图、结合使用 Base 模型和 Refiner 模型的 FaceDetailer 结果图、结合使用 Base 模型和 Refiner 模型并引入 SEGS 的 FaceDetailer 结果图,分别如下所示:

文章来源于互联网:ComfyUI 插件教程:帮你完全掌握 ComfyUI Impact 节点(二)

相关推荐: Stable Diffusion XL(SDXL)原理详解

😘关注公众号funNLPer畅读全文😘 技术报告:SDXL: Improving Latent Diffusion Models for High-Resolution Image Synthesis 官方代码:Stability-AI-generative-…

赞(0)
未经允许不得转载:5bei.cn大模型教程网 » ComfyUI 插件教程:帮你完全掌握 ComfyUI Impact 节点(二)

ComfyUI 插件教程:帮你完全掌握ComfyUI Impact 节点(一)

前言:

学习 ComfyUI 是一场持久战,而 ComfyUI Impact 是一个庞大的模块节点库,内置许多非常实用且强大的功能节点 ,例如检测器、细节强化器、预览桥、通配符、Hook、图片发送器、图片接收器等等。通过这些节点的组合运用,我们可以实现的工作有很多,例如自动人脸检测和优化修复、区域增强、局部重绘、控制人群、发型设计、更换模特服饰等。在 ComfyUI 的进阶之路上,ComfyUI Impact 是每个人不可绕过的一条大河,所以本篇文章将带领大家理解并学会使用这些节点。祝大家学习顺利,早日成为 ComfyUI 的高手!

一、安装方式

方法一:通过 ComfyUI Manager 安装(推荐)

打开 Manager 界面

方法二:使用 git clone 命令安装

在 ComfyUI/custom_nodes 目录下输入 cmd 按回车进入电脑终端

在终端输入下面这行代码开始下载

git clone https://github.com/ltdrdata/ComfyUI-Impact-Pack

二、SAMLoader 节点

加载和处理 SAM(Segment Anything Model)模型文件。该节点的主要功能是将预训练的 SAM 模型加载到内存中,以便在后续的节点中进行图像分割或其他相关操作。

输入:

SAM 模型的路径 **假如配置好了路径文件,模型可自行选择**

device_name → 设备模式,可以选择在GPU或CPU上运行,推荐选择自动即可

输出:

SAM_MODEL → 根据调用该模型的节点情况对目标进行分割,生成目标的轮廓

注意:该模型不能单独使用,需要其他模型为其指定分割区域,随后该模型可以做到精细的分割。如下图对比:

使用场景:

  1. 加载模型:SAMLoader 节点用于从指定路径加载预训练的 SAM 模型文件。通常,这些模型文件会存储在本地磁盘或其他存储介质上。
  2. 配置参数:节点会提供一些参数配置选项,让用户可以指定模型文件的路径和其他加载参数。
  3. 输出模型:一旦模型加载完成,SAMLoader 节点会输出一个表示该模型的对象,该对象可以传递给其他节点以执行具体的图像分割任务。

通过 SAMLoader 节点,可以方便地加载和使用预训练的 SAM 模型,进行各种图像分割任务,实现更高效的图像处理工作流程。

三、UltralyticsDetectorProvider 节点

提供一个基于 Ultralytics 的目标检测器,用于替换现有基于 mmdet 的检测器,可加载 BBOX_Model 和 SEGM_Model 两种模型之一。

输入:

目标检测模型的路径 **主流的模型有脸部检测、手部检测、身体检测等,假如配置好了路径文件,模型可自行选择**

输出:

BBOX_DETECTOR → 使用矩形框进行检测

SEGM_DETECTOR → 检测出目标的轮廓

注意:该节点只能加载 BBOX 和 SEGM 中的一种模型,并且要根据 model_name 中所选的模型类型进行连接,例如我的 bbox/face_yolov8m.pt 是一个 BBOX 类型的脸部检测模型,所以再连线时我就要选择 BBOX_DETECTOR 进行连线,这也是 SEGM_DETECTOR 会显示红叉的原因。

下面两张图片说明 BBOX 模型和 SEGM 模型的区别:

节点注意事项:

  1. 确保选择的模型文件路径正确,或者如果使用预定义模型,确保网络连接稳定以下载模型文件。
  2. 调整置信度阈值可以控制检测结果的精确度和召回率。较高的阈值会减少误报,但可能漏检,较低的阈值会增加召回率,但可能误报更多。

通过 UltralyticsDetectorProvider 节点,可以方便地利用 Ultralytics 提供的高效目标检测模型,进行各种目标检测任务,如物体识别、跟踪等,实现智能图像分析。

四、BBOX Detector(SEGS) / BBOX Detector(combined)节点

这两个节点用于目标检测任务,这些节点会输出检测到的对象的边界框(Bounding Box, BBOX)信息。它们的主要区别在于处理的输入类型和方法。

BBOX Detector(SEGS) 节点通常用于从分割结果中提取边界框。这种方法适用于图像分割模型的输出,其中每个对象的像素已经被分割出来,节点通过分析这些分割结果来确定每个对象的边界框。

BBOX Detector(combined) 节点用于直接处理输入图像,通过目标检测模型同时进行对象识别和边界框提取。这个节点适合使用预训练的目标检测模型,如 YOLO 等。

输入:

bbox_detector → BBOX类型的检测模型

image → 输入加载的图片

detailer_hook → impact库的一个特殊参数,用于在模型的不同阶段或特定事件发生时执行一些额外的操作

参数:

threshold → 阈值,仅检测已识别置信度高于此值的对象

dilation → 调整最终显示时,检测到的掩码区域的大小

crop_factor → 根据检测到的掩码区域,确定应将周围区域包含在细节修复过程中的次数 **如果此值较小,则修复可能无法正常工作,因为无法知道周围的上下文**

drop_size → 降低尺寸,用于控制细节增强过程中的图像降低尺寸的大小。

文本框 → 用于输入文本指定被允许检测的地方

输出:

SEGS → 包含每次检测的裁剪图像、掩码图案、裁剪位置和置信度

MASK → 所有检测到的矩形框组合而成的单个掩码

使用方法:

① BBOX Detector(SEGS) 节点

  1. 输入分割结果:节点接受图像分割模型的输出,通常是一个包含分割掩码的图像。
  2. 提取边界框:通过分析分割掩码,节点确定每个对象的边界框。
  3. 输出边界框:节点输出一个包含所有检测对象边界框的信息,包括每个边界框的位置和大小。

② BBOX Detector(combined) 节点

  1. 输入图像:节点接受一个输入图像。
  2. 目标检测:通过预训练的目标检测模型(如 YOLO)在图像中检测对象并提取边界框。
  3. 输出边界框:节点输出一个包含所有检测对象边界框的信息,包括每个边界框的位置、大小以及对象类别和置信度分数。

合理使用 BBOX Detector(SEGS)和 BBOX Detector(combined)节点,可以实现复杂的图像分析任务,包括对象检测、定位和分类,从而提升各种应用场景下的智能化水平。

五、SAMDetector(combined) / SAMDetector(segmented)节点

用于目标检测和图像分割任务。这俩节点利用 Segment Anything Model (SAM) 来进行高级的图像处理。

输入:

sam_model → 接收SAMLoader节点加载的SAM模型

segs → 接收UltralyticsDetectorProvider节点加载的目标检测模型

image → 接收加载的图片

参数:

detection_hint → 用来指定在分割时使用哪种类型的检测结果作为提示来帮助生成掩码

dilation → 膨胀分割结果的边界

threshold → 阈值,仅检测已识别置信度高于此值的对象

bbox_expansion → 控制在生成轮廓时扩展边界的大小,以确保更好地包含目标对象

mask_hint_threshold → 与mask_hint_use_nagative参数一起使用,用于指定detection_hint的阈值,将掩码区域中的掩码值等于或高于阈值的情况解释为正提示

注意:大于 0 但小于 mask_hint_threshold 的值不用作否定提示。

mask_hint_use_nagative → 控制是否使用负提示来辅助分割

输出:

combined_mask → 分割节点的深度信息,包含整个图像的分割结果

batch_masks → 分割节点的深度信息,包含批处理中每个样本的分割结果

MASK → 分割节点的深度信息,包含整个图像的分割结果

注意事项

  1. 模型选择:确保选择合适的 SAM 模型版本和配置参数,以获得最佳的检测和分割效果。
  2. 输入数据质量:无论是直接输入图像还是预先分割的结果,输入数据的质量都会影响最终的检测和分割效果。

合理使用 SAMDetector(combined)和 SAMDetector(segmented)节点,可以实现高效的图像检测和分割任务,满足多种应用场景的需求。

六、Simple Detector(SEGS) / Simple Detector(SEGS/pipe) / Simple Detector for AnimateDiff(SEGS)

与前面几个检测器的功能类似,都是接收模型->分割->输出分割结果,旨在处理不同类型的输入和工作流程,以满足特定应用需求。

输入:

bbox_detector → 接收BBOX模型

image_frames → 动画帧的输入图像序列

image → 接收待分割的图片

sam_model_opt → 接收SAM模型

segm_detector_opt → 接收SEGM模型

detailer_pipe → 输入细节调整的参数,使分割结果更加完美

参数:

bbox_threshold → BBOX模型的检测阈值

bbox_dilation → BBOX模型边界框的膨胀参数,用于扩展边界框的范围

crop_factor → 裁剪因子,用于裁剪图像

drop_size → 设置一个尺寸阈值,用于过滤较小目标的参数

sub_dilation → 子图的膨胀参数

sub_bbox_expansion → 子图BBOX模型的边界框扩展参数

sam_mask_hint_threshold → SAM模型的掩码提示阈值

masking_mode → 调节掩码模式

segs_pivot → 选择动画差异检测的基准点

post_dilation → 后期处理膨胀参数

输出:

SEGS → 分割结果的深度信息

注意事项

  1. 输入数据质量:无论是直接输入图像还是预先分割的结果,输入数据的质量都会影响最终的检测和分割效果。
  2. 工作流程配置:确保在复杂工作流程中,各节点的连接和数据流动顺畅,以获得最佳处理效果。

合理使用这三个节点,可以实现多种图像处理任务,包括目标检测、图像分割和动画处理,满足不同应用场景的需求。

七、DetailerDebug(SEGS)节点

放大图像并在内部利用 KSampler 对图像进行绘制。

输入:

image → 需要重绘的原始图像

segs → 输入分割模型得到的分割结果

model → checkpoints大模型

clip → 提示词编码模型

vae → vae模型

positive → 正向提示词

negative → 反向提示词

detailer_hook → 对模型进行更加精细调整的拓展接口

注意:这里的正向提示词和反向提示词都是针对重绘部分的,用于指导重绘后的图像。

参数:

guide_size → 参考尺寸 **小于的目标图像被放大以匹配,而大于的图像将被跳过,因为它们不需要细节处理**

guide_size_for → 设置guide_size基于什么 **当设置为bbox时,它使用检测器检测到的bbox作为参考;当设置为crop_region时,它使用基于检测到的bbox所识别的裁剪区域作为参考**

注意:选择 BBOX 时,基于 crop_factor 的放大图像的大小可能比 guide_size 大几倍。

max_size → 最大尺寸 **将目标图像的最长边限制为小于max_size的安全措施,它解决了bbox可能变得过大的问题,特别是如果它有细长的形状**

seed → 内置KSampler的种子

contorl_after_generate → 控制种子的变更方式 **fixed为固定种子,increment为每次增加1,decrement为每次减少1,randomize为种子随机**

steps → 去噪步数(也可以理解成生成图片的步数)

cfg → 提示词引导系数,即提示词对结果产生影响的大小 **过高会产生负面影响**

sampler_name → 选择采样器

scheduler → 选择调度器

denoise → 去噪幅度 **值越大对图片产生的影响和变化越大**

feather → 羽化的大小

noise_mask → 控制在修复过程中是否使用噪声掩码 **虽然在不用噪声掩码的情况下,较低的去噪值有时会产生更自然的结果,但通常建议将该参数设置为enabled**

force_inpaint → 防止跳过基于guide_size的所有过程 **当目标是修复而不是细化时,这很有用。小于guide_size的SEGS不会通过减小去匹配guide_size;相反,它们会被修复为原来的大小**

文本框 → 输入通配符的规范,如果保持为空,此选项将被忽略

cycle → 采样的迭代次数 **当与Detailer_hook一起使用时,此选项允许添加间歇性噪声,也可用于逐渐减小去噪大小,最初建立基本结构,然后对其进行细化。

inpaint_model → 使用修复模型时,需要启用此选项,以确保在低于1.0的降噪值下进行正确的内补

noise_mask_feather → 控制羽化操作是否应用于修复过程的蒙版

注意:此选项不能保证图像更自然,同时它可能会在边缘产生伪影,大家按需设置!

输出:

image → 最终重绘后的图片

cropped → 调整图像的大小、去除不必要的部分、集中注意力于特定区域的效果图

cropped_refined → 经过剪裁和进一步处理的图像

cropped_refined_alpha → 经过裁剪和精细化处理后的alpha通道

cnet_images → 蒙版位置图

注意事项

  1. 输入数据质量:确保输入的分割结果准确无误,因为输入数据的质量会直接影响分析和调试的效果。
  2. 节点配置:根据具体需求调整 DetailerDebug(SEGS)节点的配置参数,以获得最佳的分析和调试效果。

通过使用 DetailerDebug(SEGS)节点,可以深入了解和优化图像分割模型的性能,确保分割结果满足实际应用的需求,同时提升模型的开发和调试效率。

八、示例工作流

熟练使用以上节点,你就可以搭建一个简单的“AI 换脸”的工作流了。

该工作流先是对加载的图片进行脸部的检测和分割,然后将分割的结果、原图、重绘的提示词输入细节修复器中,在细节修复器中,内置的采样器会根据提示词对图片的脸部进行重新扩散,最后输出换脸之后的图。原图和换脸后的图如下所示:

文章来源于互联网:ComfyUI 插件教程:帮你完全掌握ComfyUI Impact 节点(一)

相关推荐: 一键进阶ComfyUI!懂AI的设计师现在都在用的节点式Stable Diffusion

推荐阅读 目前使用 Stable Diffusion 进行创作的工具主要有两个:WebUI 和 ComfyUI。而更晚出现的 ComfyUI 凭借超高的可定制性和复现性迅速火遍全球。有设计师表示 SD 发布了 XL1.0 后,ComfyUI 用它优秀的底层逻辑…

赞(0)
未经允许不得转载:5bei.cn大模型教程网 » ComfyUI 插件教程:帮你完全掌握ComfyUI Impact 节点(一)
分享到: 更多 (0)

AI大模型,我们的未来

小欢软考联系我们