【ComfyUI插件】ComfyUI Essentials插件(二)
前言:
该插件由cubiq大佬进行开发出来的(这个大佬也是Ipadapter和InstandID和Pulid的Comfyui插件的开发作者),此插件主要在图片处理、蒙版处理、采样器、文本编码器等多个方面提供了辅助节点帮助我们更好解决一些问题。本节中主要是针对图片的处理,如分割,分块,去除背景等方法。
目录
先行:安装方法
一、Image Composite From Mask Batch节点
二、Image Resize节点
三、RemBG Session/Image Remove Background节点
四、InSPyReNet TransparentBG节点
五、Image Seam Carving节点
六、Image Tile节点
七、Image UnTile节点
八、Image Remove Alpha节点
九、Image To Device节点
十、Get Image Size节点
十一、Image Posterize节点
十二、Image Desaturate节点
十三、Noise From Image节点
十四、Image Contrast Adaptive Sharpening节点
十五、Image Preview From Latent节点
__ComfyUI Essentials插件(一): __https://articles.zsxq.com/essentials/1.html
__ComfyUI Essentials插件(三): __https://articles.zsxq.com/essentials/3.html
__ComfyUI Essentials插件(四): __https://articles.zsxq.com/essentials/4.html
__ComfyUI Essentials插件(五): __https://articles.zsxq.com/essentials/5.html
__ComfyUI Essentials插件(六): __https://articles.zsxq.com/essentials/6.html
本期使用的示例工作流在网盘:小黄瓜知识星球资料分享/插件节点讲解视频/Essentials/第二期文件夹中
安装方法
安装方法,一共有2种
1、在manager里搜索ComfyUI Essentials,然后点击安装第一个即可
__2、在custom_nodes目录下调用cmd,然后输入git clone __https://github.com/cubiq/ComfyUI_essentials.git
项目地址:https://github.com/cubiq/ComfyUI_essentials.git
一、Image Composite From Mask Batch节点
节点功能:该节点是将image_from作为底层图片,image_to作为顶层图片再加上作用于顶层图片的蒙版进行图层组合形成新的图片
输入:
image_from -> 传入的底层图片
image_to -> 传入的顶层图片,在传入后会进行裁剪缩放变成和底层图片相同大小
mask -> 作用于顶层图片的蒙版,在传入后会进行裁剪缩放变成和底层图片相同大小
输出:
IMAGE -> 输出图层重叠合成形成的新图片
如下图,蒙版区域覆盖到了原图上。
二、Image Resize节点
节点功能:该节点是将输入图片进行缩放操作形成新的输出图片
输入:
image -> 输入图片
参数:
width -> 设置输出图片的宽
height -> 设置输出图片的高
interpolation -> 图片缩放使用的插值方法
method -> 图片缩放过程使用的方法
condition -> 条件设置,一共5种条件(always、 downscale if bigger、 upscale if smaller、 if bigger area、 if smaller area),在满足设置条件时图片才会按照前面设置的方法进行放大,否则会直接输出原图,所以一般默认选always,让其自动选中满足条件即可
multiple_of -> 设置输出图片的宽高需要整除的数字,使最终输出的图片宽高可以整除该设置数字,设置0,则不触发此功能,除此之外,一般设置为8,因为图片经过vae编码会缩小8倍,所以设置为8能使输入图片精准缩小编码
输出:
IMAGE -> 输出图片
width -> 输出图片的宽
height -> 输出图片的高
缩放插值方法:
关于详细的缩放插值方法,可跳转ComfyUI Essentials插件(一)
缩放方法:
以下是不同的缩放方法__method__效果展示。
以下是不同的__Condition__效果展示。其中需要注意比较原图大小以及输入尺寸大小。
三、Image Remove Background/RemBG Session节点
节点1功能:加载分割模型,与Image Remove Background连用的功能是通过分割模型去除图片的背景,并生成去除背景后的图片和蒙版。注:这个作为去除背景节点不特别好用,如果要去除背景还是推荐使用下面的InSPyReNet TransparentBG节点
__
节点2功能:实现去除背景功能,与RemBG Session或InSPyReNet TransparentBG连用的功能是通过分割模型去除图片的背景,并生成去除背景后的图片和蒙版__
节点1参数:
model -> 加载分割模型
providers -> 选中加载的分割模型到cpu还是到显存,注:sam:general purpose模型加载不可用
节点1输出:
REMBG_SESSION -> 输出去除背景模块
节点2输入:
rembg_session -> 加载去除背景模块
image -> 输入图片
节点2参数:
IMAGE -> 输出去除背景的图片
MASK -> 输出蒙版
分割效果如下图所示__,__其中__sam__分割时报错。
四、InSPyReNet TransparentBG节点
节点功能:加载分割模型InSpyReNet,与Image Remove Background连用的功能是通过分割模型去去除图片的背景,并生成去除背景后的图片和蒙版。
参数:
mode -> 选择模式,
- base: 需要高质量的背景去除,具有较高的分割精度。
- fast: 适合对实时性要求较高但对精度要求较低的场景。
- base-nightly: 最新的测试模式,可能带有未稳定的功能。
use_jit -> 是否使用Just In time编译来优化模型以获得更快的执行,对于base模式一般选择是,对于base-nightly模式有时选择否会更好
REMBG_SESSION -> 输出去除背景模块
可以看出,__base__模式分割最纯净,__base-nightly__模式分割稍差。
五、Image Seam Carving节点
节点功能:对输入图片使用基于内容感知的缝合切割算法从而形成一张新的图片,它允许用户保留或删除特定区域,支持精细控制图像的裁剪方式。
输入:
image -> 输入图片
keep_mask -> 指定需要优先保留的图像区域。
drop_mask -> 指定优先裁剪的图像区域。
参数:
width -> 生成图片的宽
height -> 生成图片的高
energy -> 用于计算源图像能量的策略,分为backward和forward,如果是backward,则计算能量为每个像素处的渐变。如果是forward,则将能量计算为删除每个像素后相邻像素之间的距离。一般使用我个人更倾向于forward。
order -> 进行水平和垂直分割和插入的顺序,分为width-first 和 height-first,如果是width-first, 优先调整宽度,再调整高度,如果是height-first模式,优先调整高度,再调整宽度
输出:
IMAGE -> 输出的处理后的图片
如下图,__keep_mask__中狗的主体区域更大,而__drop_mask__后,狗被移出区域了。
六、Image Tile节点
节点功能:对输入图片通过设置分块参数完成分割成多块图片
输入:
image -> 输入图片
参数:
rows -> 设置水平分割成几块
cols -> 设置垂直分割成几块
overlap -> 设置重叠比例,默认0,最大0.5即和原始分割区域最大重合一半
overlap_x -> 设置宽度重合像素
overlap_y -> 设置高度重合像素
输出:
IMAGE -> 最终输出的分块图片
tile_width -> 最终分块图片的宽度,计算公式为
min(((w// rows)* overlap)+overlap_x), (w//rows)//2) + w// rows
tile_height -> 最终分块图片的高度,计算公式为
min(((h // cols)* overlap)+overlap_y), (h//rows)//2) + h// rows
overlap_x -> 分块图片之间宽度重合的像素值,计算公式为min(((w// rows)* overlap)+overlap_x), (w//rows)//2)
overlap_y -> 分块图片之间高度重合的像素值,计算公式为min(((h // cols)* overlap)+overlap_y), (h//rows)//2)
当__overlap__=0,4块区域完全没有重合的部分,当__overlap__=0.5,4块区域有一半是重合的。
七、Image UnTile节点
节点功能:对输入的分块图片通过还原分块参数合成为1张图片,一般和Image Tile节点连用
输入:
tiles -> 输入分块图片
参数:
overlap_x -> 分块图片重合的宽度像素值
overlap_y -> 分块图片重合的高度像素值
row -> 分块图片的行数
cols -> 分块图片的列数
输出:
IMAGE -> 输出还原后的整张图片
如下图,可将__Image Tile节点__中参数__overlap_x__和__overlap_y__作为__Image UnTile节点__的输入,便于计算。
八、Image Remove Alpha节点
节点功能:剥离图片的alpha通道,这个通常在处理使用分割模型后的图片使用,避免后续图片处理发生通道数不符的问题
输入:
image -> 输入图片
输出:
IMAGE -> 输出剥离alpha通道后的图片
如下图,以下完成了__人物背景替换__的功能。首先对图片移除它的背景,从而再移除它的alpha通道,再添加一个背景替换掉原来的背景。
九、Image To Device节点
节点功能:选择将图片加载到cpu或gpu中
参数:
device -> 选择设备,分为auto,gpu,cpu,选择auto则计算机会自行判断加载到cpu或gpu,选择gpu则会加载到显存,选择cpu则会加载到内存中
十、Get Image Size节点
节点功能:获取输入图片的宽高和数量
输入:
image -> 输入图片,可以输入单张图片,也可以输入image list或者image batch
参数:
width -> 输出图片的宽
height -> 输出图片的高
count -> 输出图片的计数,如果是image batch会输出batch内图片总数,如果是image list,则会输出等于图片数量的1
关于更多__Image List__和__Image Batch__的区别可跳转ComfyUI Essentials插件(一)
十一、Image Posterize节点
节点功能:将输入图片从彩色图片转为灰度图像
参数:
threshold -> 设置从彩色图像转为灰度图像的过滤阈值,其中设置0是几乎纯白,1是纯黑,一般设置在0.2到0.6区间内较为合适
十二、Image Desaturate节点
节点功能:将输入图片去饱和度, 并输出去饱和度的图片
输入:
image -> 输入图片
参数:
factor -> 作用效果强度,0代表不起作用,1代表起到100%的作用,0.5代表起到50%作用
method -> 去除图片饱和度的方法,分为luminance(Rec.709)、luminance(Rec.601)、average、lightness;其中luminance(Rec.709)和luminance(Rec.601)是根据Rec.709和Rec.601标准对rgb三通道进行加权计算灰度值来调节饱和度,average是对rgb三通道取平均值计算灰度值来调节饱和度,对于lightness,灰度值是颜色通道最大值与最小值的平均值
输出:
IMAGE -> 输出调节饱和度后的图片
具体的去饱和度效果如下
十三、Noise From Image节点
节点功能:将输入图片变成带有噪声的图像
输入:
image -> 输入图像
noise_mask -> 输入图像的蒙版图片,可选项,如果输入蒙版图片则只对蒙版区域进行添加噪声,不输入则对整张图片添加噪声
参数:
noise_strenght -> 噪声强度,范围从0到1,设置0为不起作用,设置1则是强度最大,一般设置1即可
noise_size -> 噪声大小,控制图片在弹性变换过程的噪声强度,一般默认1即可
color_noise -> 颜色噪声,将颜色噪声添加到图片张量中,一般默认0.2即可
mask_strength -> 蒙版强度,强度越低,越模糊,一般默认1即可
mask_scale_diff -> 蒙版尺寸调节,等于0不起作用,当大于0会通过设置的尺寸调节进行缩放微调的噪声张量,然后将缩放的噪声张量放大到原有图片尺寸再进行噪声添加,从画面效果看就是噪声会相对减少。一般设置0即可。
mask_contrast -> 蒙版对比度,默认1,蒙版对比度越低,图片越模糊
saturation -> 饱和度,调节最终生成图片的饱和度
contrast -> 对比度,调节最终生成图片的对比度
blur -> 模糊程度,对最终输出图片进行模糊处理
输出:
IMAGE -> 输出调节后的噪声图片
具体的一些噪声结果图如下:
十四、Image Contrast Adaptive Sharpening节点
节点功能:将输入图片进行图片对比度自适应锐化处理
输入:
image -> 输入图片
参数:
amount -> 控制锐化效果强度,默认0.8,选择合适的即可
输出:
IMAGE -> 输出调节后的图片
十五、Image Preview From Latent节点
节点功能:将潜空间图像转为像素空间图像进行预览
输入:
latent -> 输入的潜空间图像
vae -> 输入的vae模型
参数:
tile_size -> 设置分块解码的块的大小
image -> 这个无法输入
输入:
IMAGE -> 输出解码后的预览图像
MASK -> 如果图片有alpha通道会输出其alpha通道图像作为蒙版,否则就会输出一个64X64黑色像素蒙版
width -> 输出图像的宽
height -> 输出图像的高
如下图,可以在__latent__上直接预览生成的图片。
__ComfyUI Essentials插件(一): __https://articles.zsxq.com/essentials/1.html
__ComfyUI Essentials插件(三): __https://articles.zsxq.com/essentials/3.html
__ComfyUI Essentials插件(四): __https://articles.zsxq.com/essentials/4.html
__ComfyUI Essentials插件(五): __https://articles.zsxq.com/essentials/5.html
__ComfyUI Essentials插件(六): __https://articles.zsxq.com/essentials/6.html