前言:

ComfyUI_InstantID是常用来做换脸,这个节点目前测试下来是除了lora之外效果较好的一个插件,并且该节点可以通过多张图像的参考来生成与原图更为相似的图像,这篇文章就将__针对InstantID相关节点进行详细的讲解和描述__,并且会配上相关的案例和工作流供大家参考。

目录:

一、InstantID Face Analysis节点

二、Load InstantID Model节点

三、Face Keypoints Preprocessor节点

四、Apply InstantID节点

五、Apply InstantID Advanced节点

六、InstantID Patch Attention节点

七、InstantID Apply ControlNet节点

"人物写真简单"示例工作流

安装方法:※※看这里※※

一、InstantID Face Analysis节点

节点功能:这个节点用来加载硬件设备去分析人物脸部信息,输出对应模型信息。image

参数:

provider -> 提供程序 ***用于面部分析的提供程序***

输出:

FACEANALYSIS -> 面部分析 ***输出的面部分析模型***

二、Load InstantID Model节点

节点功能:这个节点用来加载instantID的ipadapter模型。image

参数:

instantid_file -> InstantID文件 ***InstantID模型文件的路径***

输出:

INSTANTID -> InstantID模型 ***加载的InstantID模型***

三、Face Keypoints Preprocessor节点

节点功能:这个节点对输入的图片进行脸部识别,并且输出keypoints图像。image

输入:

faceanalysis -> FaceAnalysis对象 ***用于分析人脸的FaceAnalysis***

image -> 图像 ***待处理的图像***

输出:

IMAGE -> Keypoints图像 ***处理后脸部关键点的图像***

注意:如下图所示,对输入图像使用CUDA进行脸部分析,分析后输出最终的分析结果,识别出人物脸部的关键点信息。image

四、Apply InstantID节点

节点功能:这个节点将instantID的信息注入到工作流当中,让其对我们最终产生的图像产生影响。image

输入:

instantid -> 提供instantID模型 ***InstantID模型***

insightface -> 提供insightface模型,指定选择硬件 ***人脸分析模型***

control_net -> 加载controlnet模型,instantID指定的模型

image -> 参考的脸部图像

model -> 大模型输入 ***待应用InstantID的模型***

positive -> 正面条件信息 ***正面输入的条件***

negative -> 负面条件信息 ***负面输入的条件***

image_kps -> 参考人物脸部姿势的图像 ***关键点图像,默认为None***

mask -> 蒙版,指示参考信息 ***蒙版,默认为None***

参数:

weight -> 模型的权重值 ***权重,默认为0.8***

start_at -> 开始作用的百分比 ***开始位置,默认为0.0***

end_at -> 结束起作用的百分比 ***结束位置,默认为1.0**

输出:

MODEL -> MODEL对象 ***应用InstantID后的模型***

positive -> 输出正面条件信息

negative -> 输出负面条件信息

注意:如下图所示,在传统的文生图工作流中加入instantID,提供instantID的参考图像去生成符合我们提示词的图像,可以看到最终人物的面部与我们给出的参考面部相似度很高,请注意这里的image可以批量输入,多个角度的参考图像可以增加最终生成图像的相似程度。

image

五、Apply InstantID Advanced节点

节点功能:这个节点是上个节点的高级版本,增加了几个控制方法,对controlnet加上了参数控制,并且加入了噪声控制节点。image

输入:

参数同上个节点

参数:

cn_stength -> 用来调整controlnet的强度

noise -> 调整注入噪声的大小

combine_embeds -> 组合嵌入 ***组合嵌入,默认为’average’***

输出:

同上个节点

注意:如下图所示,对比了instantID和instantID advanced节点,高级节点的参数在cn选择为1,其他参数为默认,保持工作流的随机数种子不变,结果如下,从图中可以看出高级节点突出的细节更多,而且在图像出现晕镜,人物肤色更偏白。

image

注意:如下图所示,从上到下一次是instantID、instantID advanced、instantID advanced noise=1,从结果来看,instantID advanced noise=1效果最好不仅细节更多,比如对光影的处理特别好,人物头发已经出现明显的光晕,照片也有柔光的效果,而且人物细节更多,没有那种假白的感觉,并且在图中并没有出现水印。

image

注意:如下图所示,instantID advanced的combine_embeds三个不同的参数进行了实验,从实验结果来看concat结果最好,生成的人物脸部相似程度高,而且人物身材较为合理,average的人物身材偏瘦有点不太符合现实情况,而norm average的人物差别就很大,而且面部相似程度也很低。image

六、InstantID Patch Attention节点

节点功能:这个节点是将图像中的脸部信息作为信息潜入到模型的参数当中去影响最终生成的图像,加上注意力机制去影响最终的图像生成。image

输入:

instantid -> InstantID模型 ***选择要应用的InstantID模型***

insightface -> 人脸分析模型对象 ***选择要使用的人脸分析模型***

image -> 图像 ***包含一个或多个人脸的待处理图像***

model -> InstantID模型对象 ***需要修正和补丁的InstantID模型对象***

mask -> 蒙版 ***控制修正和补丁的作用区域的遮罩,可选参数***

参数:

weight -> 修正和补丁的权重 ***控制修正和补丁的程度,默认为1.0***

start_at -> 修正和补丁开始位置百分比 ***修正和补丁的起始位置百分比,默认为0.0***

end_at -> 修正和补丁结束位置百分比 ***修正和补丁的结束位置百分比,默认为1.0***

noise -> 噪声强度 ***嵌入向量中的噪声强度,默认为0.0***

输出:

MODEL -> 嵌入图像信息后的模型

注意:如下图所示,对原图中的人物给出面部蒙版然后将原图传入该节点,该节点去识别出脸部,并且将脸部信息作用与model进行输出。image

七、InstantID Apply ControlNet节点

节点功能:这个节点是接收传入的脸部嵌入信息,并将其作用到条件信息当中。image

输入:

face_embeds -> 人脸嵌入信息 ***包含条件和无条件提示嵌入的信息***

control_net -> 控制网络 ***用于修正和补丁的控制网络***

image_kps -> 关键点图像 ***包含人脸关键点的图像***

positive -> 正面条件 ***要应用的正面条件***

negative -> 负面条件 ***要应用的负面条件***

mask -> 遮罩 ***控制修正和补丁的作用区域的遮罩,可选参数***

参数:

strength -> 控制网络强度 ***控制网络的强度,默认为1.0***

start_at -> 控制网络应用起始位置百分比 ***控制网络应用的起始位置百分比,默认为0.0***

end_at -> 控制网络应用结束位置百分比 ***控制网络应用的结束位置百分比,默认为1.0***

输出:

positive -> 正面条件 ***经过控制网络修正后的正面条件***

negative -> 负面条件 ***经过控制网络修正后的负面条件***

注意:如下图所示,该节点配合上述节点进行使用,InstantID Patch Attention节点将我们输入的图像信息嵌入模型并且作为嵌入信息输出同时将其作用到conditioning当中,而conditioning的使用就需要用到controlnet去进行操作,也就是该结点的作用。

image

"人物写真简单"示例工作流:

学习完以上节点,您就可以搭建“人物写真简单”示例工作流了

注意:该工作流的要点就是多张图像参考,使用instantID advanced节点,添加噪声进行扩散。image

工作流:https://pan.quark.cn/s/6bcb8343cee1

孜孜不倦,方能登峰造极。坚持不懈,乃是成功关键。