BrushNet是一款基于扩散模型的图像修复工具,它采用了独特的双分支结构来处理被遮挡的图像特征和噪声潜变量,极大地减轻了模型的学习负担。此外,BrushNet能够在任何预训练的扩散模型上即插即用,提供了密集的像素级控制,使其非常适合图像修复任务。
1. 功能与方法概览
BrushNet主要通过以下方法实现高效的图像修复:
- 双分支结构:通过分离遮挡图像特征和噪声潜变量来降低学习难度。
- 密集像素控制:利用预训练模型的密集像素级控制优化图像修复效果。
插件安装
插件官网:https://github.com/nullquant/ComfyUI-BrushNet (节点管理器里面搜索 Brushnet即可)
2.2 模型安装
BrushNet:刷子网络模型,目前支持SD15和SDXL两种模型。
SD15支持模型:
- random_mask_brushnet_ckpt
- segmentation_mask_brushnet_ckpt
SDXL支持模型:
- random_mask_brushnet_ckpt_sdxl_v0
- segmentation_mask_brushnet_ckpt_sdxl_v0
- segmentation_mask_brushnet_ckpt_sdxl_v1
模型存放位置:modelsinpaint
BrushNet模型的选择取决于大模型的选择:
- random 和 segmentation 的功能都差不多,主要是训练集和处理掩码的方式不同。
- segmentation 主要针对特定形状的图像分割,而 random 则更通用一些,可以针对各种形状的图像分割。
- 如果大模型选择的是sd15的,那么对应的BrushNet模型可以选择random_mask_brushnet_ckpt或segmentation_mask_brushnet_ckpt
- 如果选择的大模型是sdxl的,那么BrushNet模型可以选择random_mask_brushnet_ckpt_sdxl_v0,segmentation_mask_brushnet_ckpt_sdxl_v0,segmentation_mask_brushnet_ckpt_sdxl_v1其中之一
另外,还要再下载个model.fp16.safetensors
模型,放在models/clip
目录下
流程使用
这里列一下Brushnet可以干的事情:
- 基础使用 SD 1.5和 SDXL
- Controlnet、Lora、IPAdapter混合使用
- 混合修补
- 图片扩图
- 局部对象删除
- 添加背景
- 大图修复
- 图片批量处理
核心节点是BrushNet,然后BrushNet加载器选择SD 1.5或者SDXL的模型即可。
BrushNet节点参数属性说明:
模型:连接大模型
VAE:连接vae
图像:连接初始图片
遮罩:连接遮罩,这样就只重绘遮罩范围
brushnet:选择模型,有4种
正面条件:正面提示词
负面条件:负面提示词
缩放:BrushNet 的"强度",默认是 1,越大,BrushNet 对最终出图的影响也就越大;越小就影响越小。
开始引导步数:就是从哪一步开始影响图片的生成。
结束引导步数:就是从哪一步结束影响图片的生成。