ComfyUI-brushNet插件

admin2024-09-22944

ComfyUI 中非常实用的局部重绘插件:BrushNet。用它你可以轻松实现一键换衣、一键换背景等功能。简单来说,就是想换哪里换哪里!ComfyUI-BrushNet包含BrushNet和Powerpaint两个主要节点,其中BrushNet有SD1.5和SDXL两个版本,PowerPaint只有1.5的模型可以使用,学会该插件,你可以完成对图片的局部重绘以及产品换背景等多个工作流。

安装方法

一、插件安装:用管理器正常安装下载即可。

插件地址:https://github.com/nullquant/ComfyUI-BrushNet

二、模型安装:

  1. 下载地址:https://drive.google.com/drive/folders/1fqmS1CEOvXCxNWFrsSYd_jHYXxrydh1n

  2. 下载“segmentation_mask_brushnet_ckpt” and “random_mask_brushnet_ckpt contains” 放在 models/inpaint/brushnet目录,brushnet目录是为了方便识别自己新建;

  3. 下载“segmentation_mask_brushnet_ckpt_sdxl_v0”and “random_mask_brushnet_ckpt_sdxl_v0” 放在 models/inpaint/brushnet_xl目录,brushnet_xl目录是为了方便识别自己新建;

  4. “segmentation_mask_brushnet_ckpt_sdxl_v1”是“segmentation_mask_brushnet_ckpt_sdxl_v0”的升级版,选择一个使用即可,放在同一个目录。

三、下载地址: https://huggingface.co/JunhaoZhuang/PowerPaint-v2-1/tree/main/PowerPaint_Brushnet

  1. 下载“diffusion_pytorch_model.safetensors”改名为“powerpaint_v2-1_brushnet.safetensors”;下载“pytorch_model.bin”改名为“powerpaint_clip.bin”;都放在models/inpaint/powerpaint目录,powerpaint目录是为了方便识别自己新建;

  2. “powerpaint_v2-1_brushnet.safetensors”还有一个旧版“powerpaint_v2_brushnet.safetensors”,下载地址:https://huggingface.co/JunhaoZhuang/PowerPaint_v2/tree/main/PowerPaint_Brushnet,用新版效果好,若用旧版下载后改名为“powerpaint_v2_brushnet.safetensors”,也放在models/inpaint/powerpaint目录。

节点

  • BrushNet加载器(BrushNetLoader)

  • BrushNet

  • 混合局部重绘(BlendInpaint)

  • Cut For Inpaint节点

  • PowerPaint节点

基础用法

BrushNet 有两个功能模式:random 和 segmentation。两者的功能差不多,经过多次测试总结,两者的区别主要在于图像分割的处理方式不同。

  1. random模型相当干在预设遮罩范围内参考原图随机生成新的遮罩形状重绘,灵活性高。

  2. Segm模型仅根据固定遮罩范围重绘,重绘部分基本充满遮罩范围,精确度高。

  3. SCALE值以0.5为临界点,以下基本无相关性以上数値越高越原图的权重越高,相关性越大超过1以上会过度饱和。

一、BrushNet Loader节点

这一节点专注于加载BrushNet模型,以便在后续的图像处理工作流中使用。通过加载BrushNet模型,可以利用其强大的图像处理能力来执行各种细致的编辑和增强任务。

1

重要参数:

dtype → 这个参数设置模型的运行数据类型

注意:建议设置dtype为float32进行运行,假如这是为float16,那么当CUDA显存不足时会将一部分的数据放入CPU执行模型计算,但是CPU不支持float16精度的数据,会产生报错信息。

该节点目前有三种模型提供加载

第一种是PowerPaint模型:如图所示,使用PowerPaint模型时必须搭配1.5版的SD大模型,并加载PowerPaint所需的clip模型。该模型的功能是去除图像中被蒙版覆盖的区域。

2

第二种是BrushNet模型,它使用了random_mask模型。在实验中,我使用的是SDXL大模型。下图展示了使用random_mask模型进行局部修复的效果。可以看出,最终修复后的图像并未严格按照蒙版的内容进行填充,例如,瓶子的尺寸明显小于蒙版。因此,该模型主要用于随机选择蒙版进行修复。

3

第三种是BrushNet使用的segmentation模型。从图中可以看出,最终生成的图像严格按照蒙版的区域进行绘制,瓶子的大小完全与蒙版相符。然而,在BrushNet的原论文中提到,segmentation模型在插值操作方面可能会引入潜在的不准确性,因为将蒙版调整大小以匹配潜在空间的操作可能会导致潜在的不准确性"。也就是说,当蒙版信息通过VAE编误差。4

使用场景:

· 图像编辑:利用BrushNet模型进行细致的图像编辑任务,如去噪、修复、增强等。

· 图像增强:通过BrushNet模型增强图像的细节和质量,改善视觉效果。

· 自动化处理:在自动化图像处理流程中,使用BrushNet模型实现高效、准确的图像处理。

通过使用BrushNet Loader节点,可以在图像处理工作流程中实现高效的BrushNet模型加载和应用,提升图像处理的精度和效果。

二、BrushNet节点

这一节点专注于使用BrushNet模型对图像进行各种处理,包括去噪、修复、增强等。通过配置和使用BrushNet模型,可以实现高质量的图像处理效果。

5

重要参数:

mask → 表示你要上传的蒙版 **如果蒙版和图像不对齐,结果可能会很差**

scale → 直译是尺度的意思,也就是控制大小的阈值,模型把原始数据编码后加入unet之前与scale相乘, 去控制模型的作用强度。

示例:下图所示为BrushNet批量重绘方式

6

示例:下图为BrushNet的基础重绘方式

7

使用场景:

· 图像去噪:使用BrushNet模型去除图像中的噪点,提高图像质量。

· 图像修复:通过BrushNet模型修复图像中的瑕疵和损坏区域。

· 图像增强:增强图像的细节和视觉效果,使图像更加清晰和吸引人。

· 自动化处理:在自动化图像处理流程中,使用BrushNet模型实现高效、准确的图像处理。

通过使用BrushNet节点,可以在图像处理工作流程中实现高效的BrushNet模型应用,提升图像处理的精度和效果。

三、Blend Inpaint节点

这一节点专注于图像的修复和填充。通过使用高级的图像修复算法,可以将缺失的图像部分进行填充,或将新的图像内容无缝地融合到现有图像中。

8

重要参数:

inpaint → 重绘后的局部图像

original → 原始图像

origin → 原图中裁剪后的数据

kernel → 设置粘贴图像的边缘融合度

sigma → 设置图像的透明度

使用场景:

图像修复:在图像处理中,修复损坏或缺失的图像部分。

图像填充:在需要将新的图像内容无缝融合到现有图像中的场景中使用。

自动化处理:在自动化图像处理流程中,通过图像修复和填充算法,实现高效的图像处理。

通过使用Blend Inpaint节点,可以在图像处理工作流程中实现高效的图像修复和填充,提升图像处理的精度和效果。

四、Cut For Inpaint节点

这一节点专注于准备图像数据,以便在后续的修复和填充任务中使用。通过切割和处理图像中的特定区域,可以生成需要修复或填充的图像部分及其相应的掩码。

9

重要参数:

image → 输入原始图像

mask → 输入重绘的蒙版区域

width → 设置裁剪宽度

height → 设置裁剪高度

示例:下图为Cut For Inpaint节点和Blend Inpaint节点的组合使用,主要是用在我们的原始图像很大,而我们要重绘的区域却又很小的情况,这种时候我们将对应的区域进行放大修复能够让模型更好的理解上下文,从而进行融合度更高的重绘。

10

使用场景:

· 图像修复准备:在图像处理中,准备需要修复或填充的图像部分,为后续处理节点提供合适的数据。

· 图像填充准备:在需要将新的图像内容无缝融合到现有图像中的场景中,准备需要填充的图像区域。

· 自动化处理:在自动化图像处理流程中,通过切割和处理图像区域,实现高效的区域准备和优化。

通过使用Cut For Inpaint节点,可以在图像处理工作流程中实现高效的图像区域准备,为后续的修复和填充任务提供合适的输入数据,从而提升图像处理的精度和效果,满足各种复杂图像处理需求。

五、PowerPaint节点

这一节点专注于复杂的图像修复和增强任务,通过使用先进的图像处理算法,实现高质量的图像编辑。

11

重要参数:

clip → PowerPaint有对应的CLIP模型

fitting → PowerPaint贴合度

function → PowerPaint功能

在function的功能中一共有五个选项,分别是text guided,shape guided,object removal,context aware和image outpainting,分别对应的功能为“使用文本作为引导”,“使用形状作为引导”,“物体移除”,“上下文感知”和“图像的扩充”。

示例:下图所示工作流为对原始图像进行扩充,选择image outpainting选项,在扩充前需要对图像进行pad操作。

12

使用场景:

· 图像修复:在图像处理中,修复损坏或缺失的图像部分。

· 图像增强:通过增强图像的细节和视觉效果,使图像更加清晰和吸引人。

· 图像填充:在需要将新的图像内容无缝融合到现有图像中的场景中使用。

· 自动化处理:在自动化图像处理流程中,通过图像修复和增强算法,实现高效的图像处理。

PowerPaint 节点是一个强大的图像编辑工具,专门用于复杂的图像修复和增强任务。这个节点的设计目的是通过提供高级的图像处理算法和灵活的配置选项,进行高精度的图像编辑。

参考

https://zhuanlan.zhihu.com/p/14325780412

网友评论