ComfyUI Inpaint Nodes插件
这是一款用于 SDXL 的 Inpaint 插件。我们在使用内部重绘时,需要相应的 Inpaint 模型。但喜欢的模型并不一定有训练内部重绘版本,虽然融合 Inpaint 模型并不难,但一个 SDXL 就近 7 个G,太占用硬盘。而这个插件可以使用常规的文生图模型用于内部重绘,而不需要单独训练Inpaint版本。
插件
插件地址:https://github.com/Acly/comfyui-inpaint-nodes
路径:新建节点->局部重绘
特点:
仅支持SDXL模型。
已集成到了Krita中,可以在krita中使用。
说明:使用该插件的内部重绘与原生内部重绘不同之处在于,采样器的 denoise 要设置为 1。该插件可以让我们自由的选择模型来内部重绘,也节省了硬盘。但从使用经验看,它插件并不能明显提升重绘质量。
节点
一、VAE编码局部重绘条件(VAE Encode & Inpaint Conditioning)节点
节点功能:这个节点是ComfyUl原始库中VAE内补编码器(VAE Encode ForInpaint)的替代方案,并且比原始的inpaint更有效果,它与同时使用VAE内补编码器和内补模型条件(InpaintModelConditioning)相同,相当于两者的合并,但是对硬件资源的消耗更少。
输入:
positive: 正向条件信息
negative: 负面条件信息
vae:传入vae模型
pixels: 传入的图像信息
mask:重绘区域的蒙版信息
输出:
positive:正向条件信息
negative:负面条件信息
latent inpaint:修复图像的潜在向量,输出的是对原图初步的灰度填充,让重绘区域没有内容,需要配合我们下面的Apply Fooocus model一起使用,将我们的SDXL的模型集合成能够完成我们Inpaint功能的一种重绘模型。
latent_samples:潜在样本,输出的是需要重绘的那张底图,这样可以给重绘提供一定的参考价值
作用:
latent_inpaint需要传递给Apply Fooocus Inpaint节点用来将模型转换为inpaint模型,在github地址可以看到作者说"这不允许遮罩区域中存在现有内容",所以说需要对蒙版区域进行内容遮盖,否则会导致生图受原图内容的影响,latent_samples将用于传递给ksampler完成局部重绘保证边缘的融合程度。
二、应用Fooocus局部重绘(Apply Fooocus Inpaint)/加载Fooocus局部重绘(INPAINT_LoadFooocusInpaint)节点
应用Fooocus局部重绘
节点功能:这个节点用来将Fooocus模型应用到修复过程中。
输入:
model:大模型的数据流(必须是SDXL模型,且必须是未经加速的模型,否则会导致提示词不起作用)
patch:修复补丁
latent:潜变量
输出:
MODEL:大模型数据流
作用:
该节点会把patch结合到model上,然后将我们的model转化成拥有重绘功能,或者说重绘功能更强大的一款模型,然后最后进行一个输出。用于解决边缘不融合以及透视的关系。
加载Fooocus局部重绘
输出:局部重绘组件接入到上面节点的局部重绘组件(Patch)
参数:两者都固定加载 fooocus_inpaint_head.pth 和 inpaint_v26.fooocus.patch 模型。
三、遮罩填充(Fill Masked Area)节点
节点功能:这个节点是对蒙版区域进行预先填充,使用三种不同的填充方式。
输入:
image:图像
mask:掩码
输出:
IMAGE:图像
参数:
fill:填充方法,有三种
falloff:衰减
四、遮罩模糊(INPAINT_MaskedBlur)节点
节点功能:这个节点类似于imageblur节点,将蒙版区域进行模糊操作。
输入:
image:图像
mask:掩码
输出:
IMAGE:图像
参数:
blur:模糊数值
falloff:衰减数值(类似于羽化)
五、降噪到合成遮罩(Denoise to Compositing Mask)节点
节点功能:这个节点是对蒙版值得范围进行归一化处理(可以不必学)。
输入
mask:蒙版信息
输出
MASK:蒙版
参数
offset:偏移
threshold:阈值
注意: offset的值必须严格小于threshold,不然会报错
六、加载局部重绘模型(INPAINT_LoadInpaintModel)/ 使用模型局部重绘(INPAINT_InpaintWithModel)节点
节点功能:这两个节点,第一个节点是加在inpaint模型,注意选择big_lama,不要选择fooocus模型,inpaint(using Model)节点用来对图像进行填充,使用模型进行像素点计算然后填充。
输入:
inpaint_model:修复模型
image:图像
optional_upscale_model:可选的模型
参数:
mask:蒙版
seed:种子
输出:
IMAGE:图像