ComfyUI插件:ComfyUI-BrushNet节点

news/2025/3/16 18:48:03/文章来源:https://www.cnblogs.com/LIU-QiuXue/p/18342957

前言:

学习ComfyUI是一场持久战,而ComfyUI-BrushNet是最近的局部重绘节点,其包含BrushNet和Powerpaint两个主要节点,其中BrushNet有SD1.5和SDXL两个版本,PowerPaint只有1.5的模型可以使用,学会该插件,你可以完成对图片的局部重绘以及产品换背景等多个工作流。祝大家学习顺利,早日成为ComfyUI的高手!

目录

一、BrushNet Loader节点

二、BrushNet节点

三、Blend Inpaint节点

四、Cut For Inpaint节点

五、PowerPaint节点

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

**孜孜以求,方能超越自我。坚持不懈,乃是成功关键。**

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/778082.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[学习笔记]后缀数组(Suffix Array)

后缀数组(suffix array)是一个通过对字符串的所有后缀经过排序后得到的数组。后缀数组被 Manber 和 Myers 于1990年提出, 作为对后缀树的一种替代, 更简单以及节省空间。它们也被Gaston Gonnet 于1987年独立发现, 并命名为“PAT数组”。 后缀数组有很多奇妙的性质, 这些性质可以…

2023 福建省第三届工业互联网创新大赛CTF Misc-Covertchannel2

2023 福建省第三届工业互联网创新大赛CTF Misc-Covertchannel2题目:近日,公司Windows服务器被入侵,黑客使用了一个比较隐蔽的信道将机密凭据传输了出去,但是蛛丝马迹还是被流量采集设备捕获了,你能从中找回丢失的flag吗?分析: 分析该流量包发现了有一个 rsa.key,并且在…

mybatis 源码环境搭建

参考 从头到尾手把手教你搭建阅读Mybatis源码的环境(程序员必备技能) Cannot enable lazy loading because Javassist is not available. Add Javassist to your classpath. 下载源码 https://github.com/mybatis/mybatis-3/ https://github.com/mybatis/parent/tree/mybatis-p…

05、Pod网络

4.1 Pod网络 在K8s集群中,多个节点上的Pod相互通信,要通过网络插件来完成,比如Calico网络插件。 使用kubeadm初始化K8s集群时,有指定一个参数 --pod-network-cidr=10.18.0.0/16 它是用来定义Pod的网段。 而我们在配置Calico的时候,同样也定义了一个CALICO_IPV4POOL_CIDR的…

Ros2 Moveit2 之 围绕对象进行规划 - 添加障碍物

本教程将向您介绍如何将对象插入规划场景并围绕它们进行规划。 先决条件 如果您还没有这样做,请确保您已完成RViz 中的可视化hello_moveit中的步骤。本项目假设您从上一个教程结束的地方开始。如果您只想运行本教程,您可以按照Docker 指南启动一个包含已完成教程的容器。 步骤…

使用 clearError 清除已处理的错误

title: 使用 clearError 清除已处理的错误 date: 2024/8/5 updated: 2024/8/5 author: cmdragon excerpt: 摘要:“文章介绍了clearError函数的作用与用法,用于清除已处理的错误并可实现页面重定向,提升用户体验。通过示例展示了在表单提交场景中如何应用此函数进行错误处理…

破局SAP实施难题、降低开发难度,定制化需求怎样快速上线?

前言 SAP 是全球领先的业务流程管理软件供应商之一,其提供广泛的模块化解决方案和套件,所开发的软件解决方案面向各种规模的企业,帮助客户规划和设计业务流程、分析并高效设计整个价值链,以更好的了解和响应客户需求。ERP 是企业资源规划的简称,ERP 软件涵盖所有核心业务领…

ComplatebleFuture异步调用方法,喝茶你也可以很快

ComplatebleFuture的异步用法: ComplateFuture.supplyAsync()方法会将方法体里面的方法进行异步调用,不用一直等待; ComplateFuture.allof()方法用于等待所有complatebleFutrue方法执行完毕。

若依框架导入阿里OSS报错问题解决方案

1、首先使用终端查看java JDK版本号 java -version 输出结果: java version "1.8.0_361" Java(TM) SE Runtime Environment (build 1.8.0_361-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.361-b09, mixed mode) javac-version 输出结果: javac 1.8.0_361 如…

php---空合并运算符

在做PHP开发的过程中,在引入SDK做项目开发的时候,经常会遇到一些不常见的运算符,正好自己也学习一下。运行的结果:就比如上面看到的运算符 ?: 和 ?? 运算符和我们常见的三目运算符不同,但是也有点类似。 三目运算符是这样的:$abs = !empty($list) ? a : b;而空合并运…

玄机

第一章 应急响应-webshell查杀 靶机账号密码 root xjwebshell 1.黑客webshell里面的flag flag{xxxxx-xxxx-xxxx-xxxx-xxxx} 2.黑客使用的什么工具的shell github地址的md5 flag{md5} 3.黑客隐藏shell的完整路径的md5 flag{md5} 注 : /xxx/xxx/xxx/xxx/xxx.xxx 4.黑客免杀马完整…