ComfyUI-BrushNet-Wrapper 插件完全教程
1. 插件简介
插件地址: https://github.com/kijai/ComfyUI-BrushNet-Wrapper
这个插件是什么呢?简单来说,它就像是给你的ComfyUI装了一个超级智能的"画笔修复工具"。想象一下,你有一张照片,想要修改其中的某个部分,比如给人物换个发型、去掉背景中的某个物体、或者给图片添加新的元素。传统的方法可能需要你手工一点点修改,但是有了BrushNet,你只需要用画笔在想要修改的地方涂一涂,然后告诉AI你想要什么效果,它就能智能地帮你完成修改。
这个插件能给我们带来什么效果:
- 智能修复:就像用魔法橡皮擦一样,可以去掉图片中不想要的东西
- 精准编辑:只修改你指定的区域,其他地方保持原样
- 创意添加:在指定位置添加新的物体或效果
- 风格转换:改变图片某个区域的风格,比如把白天变成夜晚
- 对象替换:把一个物体换成另一个物体
2. 如何安装
方法一:使用ComfyUI Manager(推荐)
- 打开ComfyUI Manager
- 点击"Install from Git URL"
- 输入:
https://github.com/kijai/ComfyUI-BrushNet-Wrapper - 点击安装
方法二:手动安装
- 进入你的ComfyUI安装目录
- 找到
custom_nodes文件夹 - 在命令行中运行:
cd custom_nodes
git clone https://github.com/kijai/ComfyUI-BrushNet-Wrapper.git
cd ComfyUI-BrushNet-Wrapper
pip install -r requirements.txt
方法三:便携版安装
如果你用的是ComfyUI便携版,在ComfyUI_windows_portable文件夹中运行:
python_embeded\python.exe -m pip install -r ComfyUI\custom_nodes\ComfyUI-BrushNet-Wrapper\requirements.txt
注意: 模型文件会自动从 https://huggingface.co/Kijai/BrushNet-fp16 下载到 ComfyUI/models/brushnet 文件夹中。
3. 节点详细解析
本插件总共包含 6 个节点,现在逐一详细解析:
3.1 BrushNet Model Loader(BrushNet模型加载器)
这个节点就像是一个"工具箱管理员",负责把所有需要的工具(模型)准备好,让后面的节点可以使用。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model | model | MODEL类型 | 必填 | 这是你的基础AI画图大脑,就像画家的基本技能 | 输入的Stable Diffusion模型 | 从CheckpointLoaderSimple节点连接过来 |
| clip | clip | CLIP类型 | 必填 | 这是理解文字描述的翻译官,把你的话翻译成AI能懂的语言 | CLIP文本编码器,用于理解提示词 | 从CheckpointLoaderSimple节点连接过来 |
| vae | vae | VAE类型 | 必填 | 这是图片的编码解码器,就像把图片变成数字再变回图片的转换器 | VAE编码器,用于图像编码解码 | 从CheckpointLoaderSimple节点连接过来 |
| brushnet_model | brushnet_model | 下拉选择 | brushnet_segmentation_mask | 选择不同的画笔工具类型,就像选择不同的画笔 | 选择BrushNet模型类型 | 根据任务选择:分割遮罩、随机遮罩或PowerPaint |
| ip_adapter | ip_adapter | DIFFUSERSIPADAPTER类型 | 可选 | 图片风格适配器,可以让生成的图片模仿参考图片的风格 | IP-Adapter用于图像风格控制 | 如果需要参考图片风格就连接,不需要就留空 |
brushnet_model 选项说明:
brushnet_segmentation_mask:分割遮罩模式,适合精确的物体编辑brushnet_random_mask:随机遮罩模式,适合创意性编辑powerpaint_v2_brushnet:PowerPaint模式,功能更强大,支持多种编辑任务
3.2 BrushNet Sampler(BrushNet采样器)
这个节点就是真正的"魔法画笔",它接收你的指令和遮罩,然后生成修改后的图片。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| brushnet | brushnet | BRUSHNET类型 | 必填 | 从模型加载器传来的工具箱 | BrushNet模型实例 | 连接BrushNet Model Loader的输出 |
| image | image | IMAGE类型 | 必填 | 要修改的原始图片,就像画家的画布 | 输入的原始图像 | 连接LoadImage节点或其他图像源 |
| mask | mask | MASK类型 | 必填 | 告诉AI哪里需要修改的"涂鸦区域" | 指定编辑区域的遮罩 | 用画笔工具画出需要修改的区域 |
| steps | steps | 1-200整数 | 25 | AI思考的步数,步数越多效果越精细但速度越慢 | 扩散模型的采样步数 | 质量要求高用30-50,速度要求高用15-25 |
| cfg | cfg | 0.0-20.0浮点数 | 7.5 | AI听话程度,数值越高越严格按照你的描述来画 | 分类器自由引导强度 | 想要严格按提示词生成用8-12,想要更自由用5-8 |
| cfg_brushnet | cfg_brushnet | 0.0-20.0浮点数 | 1.0 | BrushNet的影响强度,控制修改区域的变化程度 | BrushNet条件引导强度 | 想要大幅修改用1.5-2.0,微调用0.5-1.0 |
| control_guidance_start | control_guidance_start | 0.0-1.0浮点数 | 0.0 | 控制开始生效的时机,就像调节画笔开始工作的时间 | 控制引导开始的时间点 | 通常保持0.0,特殊情况下可以调到0.1-0.3 |
| control_guidance_end | control_guidance_end | 0.0-1.0浮点数 | 1.0 | 控制结束生效的时机,就像调节画笔停止工作的时间 | 控制引导结束的时间点 | 通常保持1.0,想要更自然融合可以调到0.8-0.9 |
| guess_mode | guess_mode | 布尔值 | False | 猜测模式,让AI自己猜测要画什么,不完全依赖提示词 | 启用猜测模式,减少对提示词的依赖 | 当提示词不够详细时可以开启 |
| clip_skip | clip_skip | 0-20整数 | 0 | 跳过CLIP的最后几层,有时能获得不同的风格效果 | CLIP编码器跳过的层数 | 通常保持0,某些模型可能需要设置为1-2 |
| seed | seed | 整数 | 0 | 随机种子,相同种子会产生相同结果 | 随机数生成种子 | 想要重现结果就固定数值,想要随机就用0 |
| scheduler | scheduler | 下拉选择 | UniPCMultistepScheduler | 选择AI的"思考方式",不同方式有不同效果 | 扩散模型的采样调度器 | 推荐UniPC或DPM++,速度快质量好 |
| prompt | prompt | 多行文本 | caption | 告诉AI你想要什么效果的描述 | 正向提示词 | 详细描述想要的效果,如"a beautiful sunset" |
| n_prompt | n_prompt | 多行文本 | caption | 告诉AI你不想要什么效果的描述 | 负向提示词 | 描述不想要的效果,如"blurry, low quality" |
scheduler 选项说明:
UniPCMultistepScheduler:速度快,质量好,推荐日常使用DPMSolverMultistepScheduler:质量高,速度中等EulerDiscreteScheduler:经典选择,效果稳定LCMScheduler:超快速度,适合快速预览TCDScheduler:新型调度器,平衡速度和质量
3.3 PowerPaint BrushNet Sampler(PowerPaint BrushNet采样器)
这个节点是BrushNet Sampler的升级版,就像从普通画笔升级到了多功能电子画笔,功能更强大。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| brushnet | brushnet | BRUSHNET类型 | 必填 | 从模型加载器传来的PowerPaint工具箱 | PowerPaint BrushNet模型实例 | 必须连接使用powerpaint_v2_brushnet的模型加载器 |
| image | image | IMAGE类型 | 必填 | 要修改的原始图片 | 输入的原始图像 | 连接LoadImage节点或其他图像源 |
| mask | mask | MASK类型 | 必填 | 指定编辑区域的遮罩 | 指定编辑区域的遮罩 | 用画笔工具画出需要修改的区域 |
| steps | steps | 1-200整数 | 25 | AI思考的步数 | 扩散模型的采样步数 | 质量要求高用30-50,速度要求高用15-25 |
| cfg | cfg | 0.0-20.0浮点数 | 7.5 | AI听话程度 | 分类器自由引导强度 | 想要严格按提示词生成用8-12,想要更自由用5-8 |
| cfg_brushnet | cfg_brushnet | 0.0-20.0浮点数 | 1.0 | BrushNet的影响强度 | BrushNet条件引导强度 | 想要大幅修改用1.5-2.0,微调用0.5-1.0 |
| control_guidance_start | control_guidance_start | 0.0-1.0浮点数 | 0.0 | 控制开始生效的时机 | 控制引导开始的时间点 | 通常保持0.0 |
| control_guidance_end | control_guidance_end | 0.0-1.0浮点数 | 1.0 | 控制结束生效的时机 | 控制引导结束的时间点 | 通常保持1.0 |
| guess_mode | guess_mode | 布尔值 | False | 猜测模式 | 启用猜测模式 | 当提示词不够详细时可以开启 |
| clip_skip | clip_skip | 0-20整数 | 0 | 跳过CLIP的最后几层 | CLIP编码器跳过的层数 | 通常保持0 |
| seed | seed | 整数 | 0 | 随机种子 | 随机数生成种子 | 想要重现结果就固定数值 |
| scheduler | scheduler | 下拉选择 | UniPCMultistepScheduler | 选择AI的"思考方式" | 扩散模型的采样调度器 | 推荐UniPC或DPM++ |
| task | task | 下拉选择 | text-guided | 选择编辑任务类型,就像选择不同的画笔模式 | PowerPaint的任务类型 | 根据需要选择对应的编辑模式 |
| fitting_degree | fitting_degree | 0.3-1.0浮点数 | 1.0 | 拟合程度,控制新内容与原图的融合度 | 控制生成内容与原图的适配程度 | 想要更自然融合用0.7-0.9,想要明显变化用1.0 |
| prompt | prompt | 多行文本 | caption | 正向提示词 | 正向提示词 | 详细描述想要的效果 |
| n_prompt | n_prompt | 多行文本 | caption | 负向提示词 | 负向提示词 | 描述不想要的效果 |
task 选项详细说明:
text-guided:文本引导模式,根据你的描述来修改object-removal:物体移除模式,专门用来去掉不想要的东西context-aware:上下文感知模式,智能填充空白区域shape-guided:形状引导模式,根据形状来生成内容image-outpainting:图像外绘模式,扩展图片边界
3.4 BrushNet ELLA Loader(BrushNet ELLA加载器)
这个节点就像给你的AI装了一个"语言理解增强器",让它能更好地理解复杂的文字描述。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| brushnet | brushnet | BRUSHNET类型 | 必填 | 要增强的BrushNet工具箱 | 输入的BrushNet模型 | 连接BrushNet Model Loader的输出 |
输出:
brushnet:增强后的BrushNet模型,理解能力更强
3.5 BrushNet Sampler (ELLA)(BrushNet ELLA采样器)
这是配合ELLA增强器使用的特殊采样器,需要特殊的文本编码输入。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| brushnet | brushnet | BRUSHNET类型 | 必填 | 经过ELLA增强的BrushNet工具箱 | ELLA增强的BrushNet模型 | 连接BrushNet ELLA Loader的输出 |
| ella_embeds | ella_embeds | ELLAEMBEDS类型 | 必填 | ELLA处理过的文字编码,就像翻译得更准确的指令 | ELLA编码的文本嵌入 | 需要专门的ELLA文本编码节点 |
| image | image | IMAGE类型 | 必填 | 要修改的原始图片 | 输入的原始图像 | 连接LoadImage节点或其他图像源 |
| mask | mask | MASK类型 | 必填 | 指定编辑区域的遮罩 | 指定编辑区域的遮罩 | 用画笔工具画出需要修改的区域 |
| steps | steps | 1-200整数 | 25 | AI思考的步数 | 扩散模型的采样步数 | 质量要求高用30-50 |
| cfg | cfg | 0.0-20.0浮点数 | 7.5 | AI听话程度 | 分类器自由引导强度 | 推荐7.5-10.0 |
| cfg_brushnet | cfg_brushnet | 0.0-20.0浮点数 | 1.0 | BrushNet的影响强度 | BrushNet条件引导强度 | 推荐0.8-1.2 |
| control_guidance_start | control_guidance_start | 0.0-1.0浮点数 | 0.0 | 控制开始生效的时机 | 控制引导开始的时间点 | 通常保持0.0 |
| control_guidance_end | control_guidance_end | 0.0-1.0浮点数 | 1.0 | 控制结束生效的时机 | 控制引导结束的时间点 | 通常保持1.0 |
| guess_mode | guess_mode | 布尔值 | False | 猜测模式 | 启用猜测模式 | 通常保持False |
| clip_skip | clip_skip | 0-20整数 | 0 | 跳过CLIP的最后几层 | CLIP编码器跳过的层数 | 通常保持0 |
| seed | seed | 整数 | 0 | 随机种子 | 随机数生成种子 | 固定数值可重现结果 |
| scheduler | scheduler | 下拉选择 | UniPCMultistepScheduler | AI的思考方式 | 扩散模型的采样调度器 | 推荐UniPC |
3.6 BrushNet IP Adapter (Matteo)(BrushNet IP适配器)
这个节点就像一个"风格模仿器",可以让生成的图片模仿参考图片的风格。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE类型 | 必填 | 参考图片,AI会模仿这张图的风格 | 用于风格参考的图像 | 上传你想要模仿风格的图片 |
| ipadapter | ipadapter | 下拉选择 | 必选 | IP适配器模型文件,就像不同的风格模仿工具 | IP-Adapter模型文件 | 选择对应的IP-Adapter模型 |
| clip_vision | clip_vision | 下拉选择 | 必选 | 视觉理解模型,帮助AI理解图片内容 | CLIP视觉编码器模型 | 选择对应的CLIP视觉模型 |
| weight | weight | 0.0-10.0浮点数 | 1.0 | 风格影响强度,数值越高风格越明显 | IP-Adapter的权重强度 | 想要明显风格用1.5-2.0,微妙风格用0.5-1.0 |
4. 使用技巧和建议
4.1 基础使用流程
- 准备素材:加载你要编辑的图片
- 创建遮罩:用画笔工具标记要修改的区域
- 加载模型:使用BrushNet Model Loader加载所需模型
- 设置参数:根据需求调整采样器参数
- 运行生成:执行工作流获得结果
4.2 参数调优建议
- 新手推荐设置:steps=25, cfg=7.5, cfg_brushnet=1.0
- 高质量设置:steps=40, cfg=9.0, cfg_brushnet=1.2
- 快速预览设置:steps=15, cfg=6.0, scheduler=LCMScheduler
4.3 不同任务的最佳实践
- 物体移除:使用PowerPaint的object-removal模式
- 风格转换:结合IP Adapter使用参考图片
- 精细编辑:使用较高的steps和cfg值
- 创意生成:开启guess_mode,降低cfg值
5. 常见问题解答
Q1: 为什么生成的图片质量不好?
A: 尝试以下解决方案:
- 增加steps数值(推荐25-40)
- 调整cfg值(推荐7.5-10.0)
- 检查遮罩是否准确
- 优化提示词描述
Q2: 模型下载失败怎么办?
A:
- 检查网络连接
- 手动从Hugging Face下载模型文件
- 确保有足够的磁盘空间
Q3: 生成速度太慢怎么办?
A:
- 降低steps数值
- 使用LCMScheduler或TCDScheduler
- 减小图片分辨率
- 关闭不必要的功能
Q4: 编辑效果不自然怎么办?
A:
- 调整control_guidance_end到0.8-0.9
- 降低cfg_brushnet值
- 优化遮罩边缘的羽化效果
- 使用更详细的提示词
Q5: PowerPaint和普通BrushNet有什么区别?
A:
- PowerPaint功能更强大,支持多种专门的编辑模式
- 普通BrushNet更通用,适合基础编辑任务
- PowerPaint需要使用专门的采样器节点
6. 总结
ComfyUI-BrushNet-Wrapper插件为我们提供了强大的图像编辑能力,通过6个不同的节点,我们可以实现从基础的图像修复到高级的风格转换等各种功能。掌握这些节点的使用方法和参数调节技巧,你就能像专业的数字艺术家一样,轻松地对图像进行精确而自然的编辑。
记住,好的结果需要耐心的调试和实践。建议从简单的编辑任务开始,逐步掌握各个参数的作用,然后再尝试更复杂的创作任务。随着经验的积累,你会发现这个插件的强大之处,它能帮你实现许多以前难以想象的图像编辑效果。