【ComfyUI插件】comfyui-reactor-node节点
前言:
__comfyui-reactor-node__插件作为鼻祖级__换脸工具__已经获得了不错的反响,其换脸后接近完美的脸部融合度以及相对较好的相似度都值得大家去尝试,今天将通过本篇文章将该插件内的节点进行描述整理,希望大家看完文章之后进行自我尝试,探索该插件更高级,更合适的用法。
目录:
先行:安装方法
一、ReActorFaceSwap节点
二、ReActorFaceSwapOpt节点
三、ReActorMaskHelper节点
四、ReActorSaveFaceModel节点
五、ReActorRestoreFace节点
六、ImageRGBA2RGB节点
七、ReActorOptions节点
安装方法:
在ComfyUI主目录里面输入CMD回车。
在弹出的CMD命令行输入git clone xxx,即可开始下载。
github项目地址:https://github.com/Gourieff/comfyui-reactor-node.git
一、ReActorFaceSwap节点
节点功能:该节点通过输入参考面部图像和原始图像进行脸部更换,并可以设置一些详细的控制方法以及精细的控制面部修复程度。
参数:
input_image -> 输入图像 ***需要进行处理的图像***
source_image -> 输入的人脸图像
face_model -> 人脸预训练模型 ***可以通过该库中的节点进行保存
face_boost -> 模型相关的设置 ***下文会讲到使用的节点
enabled -> 启用标志 ***用于开启或关闭功能模块***
swap_model -> 人脸交换模型 ***可选的人脸交换模型列表***
facedetection -> 人脸检测模型 ***可选的人脸检测模型,如retinaface_resnet50、retinaface_mobile0.25、YOLOv5l、YOLOv5n***
face_restore_model -> 人脸修复模型 ***可选的人脸修复模型***
face_restore_visibility -> 人脸修复可见性 ***设置人脸修复的可见度,范围从0.1到1.0,默认值为1.0,可以理解为人脸的修复清晰程度***
codeformer_weight -> 修复模型权重 ***人脸修复模型的权重,影响修复效果,范围从0.0到1.0,默认值为0.5***
detect_gender_input -> 输入性别检测 ***输入图像的性别检测选项,如无、女性、男性,默认值为无***
detect_gender_source -> 源性别检测 ***源图像的性别检测选项,如无、女性、男性,默认值为无***
input_faces_index -> 输入人脸索引 ***输入图像中选定的人脸索引,默认值为0***
source_faces_index -> 源人脸索引 ***源图像中选定的人脸索引,默认值为0***
console_log_level -> 控制台日志级别 ***日志级别选项:0(无日志)、1(信息)、2(详细),默认值为1***
face_restore_model可以在此下载:https://huggingface.co/datasets/Gourieff/ReActor/tree/main/models/facerestore_models
注意:如下图所示输入原始图像和参考面部图像,通过在input_faces_index中选择“1”表示更换第二张脸部进行更换,最终出图可以看出换脸成功。
注意:face_restore_visibility控制换脸后人物面部的清晰程度,值越低表示人物脸部像素值也就越低。
注意:如下图所示,当我们选择“0”时,他会将第一张图像中靠左边的人脸进行更换,所以通过模型检测到的人脸是从左到右的顺序来进行编号的。
二、ReActorFaceSwapOpt节点
节点功能:这个节点是脸部修复节点的简单版本,将一些可选项进行了分离。
参数:
options -> 与后面讲到的ReActorOptions设置节点配合使用,用来控制识别到的脸部
注意:如下图所示使用方式与基础核心节点一致,灰色的输入参数为可选参数,可以不做输入。
三、ReActorMaskHelper节点
节点功能:这个节点用来做脸部的同位置替换,或者蒙版区域的对应替换,不是换脸节点。
输入:
image -> 输入图像 ***用于处理的输入图像***
swapped_image -> 替换的人脸图像
mask_optional -> 可以输入人脸蒙版 ***可选参数***
bbox_model_name -> 边界框探测器模型 ***选择要使用的边界框模型***
bbox_threshold -> 边界框探测阈值 ***用于边界框检测的阈值,默认值为 0.5,范围为 0.0 至 1.0,检测不精准可以调整该参数***
bbox_dilation -> 边界框膨胀扩充 ***边界框的膨胀值,默认值为 10,范围为 -512 至 512***
bbox_crop_factor -> 边界框裁剪系数 ***边界框的裁剪系数,默认值为 3.0,范围为 1.0 至 100***
bbox_drop_size -> 边界框丢弃大小 ***边界框的丢弃大小,默认值为 10,小于该值的检测框无效***
sam_model_name -> SAM 模型名称 ***选择要使用的 SAM 模型***
sam_dilation -> SAM 膨胀值 ***SAM 的膨胀值,默认值为 0,范围为 -512 至 512***
sam_threshold -> SAM 阈值 ***SAM 的阈值,默认值为 0.93,范围为 0.0 至 1.0***
bbox_expansion -> 边界框扩展值 ***边界框的扩展值,默认值为 0,范围为 0 至 1000***
mask_hint_threshold -> 掩码提示阈值 ***掩码提示的阈值,默认值为 0.7,范围为 0.0 至 1.0***
mask_hint_use_negative -> 使用负提示掩码 ***是否使用负提示掩码,选项为“False”,“Small”,“Outter”***
morphology_operation -> 形态学操作,修改图像的形状结构,比如填充空白点,消除小物体等 ***形态学操作类型,选项为“dilate”,“erode”,“open”,“close”***
morphology_distance -> 形态学操作选择对象 ***形态学操作的距离,默认值为 0,范围为 0 至 128***
blur_radius -> 模糊半径 ***模糊操作的半径,默认值为 9,范围为 0 至 48***
sigma_factor -> 高斯模糊系数,设置边缘模糊 ***高斯模糊的系数,默认值为 1.0,范围为 0.01 至 3.0***
注意:如下图所示我们可以将换脸后的图像与原图像进行人物脸部的更换,该节点更好的用法可能是搭配一些其他脸部节点,比如instantID先生成指定脸部位置和姿势的人物图像,然后通过该节点进行人物脸部的更换。
四、ReActorSaveFaceModel节点
节点功能:该节点用来生成棋盘网格状的图案。
注意:如下图所示,输入一张图像,会根据人物的面部生成轻量的人物面部模型,保存位置如下图所示。
注意:如下图所示,可以通过loadfacemodel进行模型的加载,就不需要使用图像了。
五、ReActorRestoreFace节点
节点功能:这个节点用来进行人物的面部修复,增加面部细节。
注意:如下图所示,通过修复节点以及相应的设置可以恢复人物面部的清晰度。
六、ImageRGBA2RGB节点
节点功能:这个节点用来转换RGBA的image到RGB。
注意:如下图所示,将原图的带透明背景通道的RGBA图像转换成RGB图像。‘A’代表透明通道图像。
七、ReActorOptions节点
节点功能:这个节点用来设置探测人物的脸部,选择自己想要选择的脸部进行替换。
参数:
input_faces_order -> 选择输入图像中人脸的排序顺序 ***从左到右、从右到左、从上到下、从下到上、从小到大、从大到小排序***
input_faces_index -> 指定输入图像中人脸的索引 ***选择要处理的特定人脸,默认值为"0"***
detect_gender_input -> 指定是否检测输入图像中的人脸性别 ***选项包括不检测(no)、仅检测女性(female)、仅检测男性(male)***
source_faces_order -> 选择源图像中人脸的排序顺序 ***从左到右、从右到左、从上到下、从下到上、从小到大、从大到小排序***
source_faces_index -> 指定源图像中人脸的索引 ***选择要处理的特定人脸,默认值为"0"***
detect_gender_source -> 指定是否检测源图像中的人脸性别 ***选项包括不检测(no)、仅检测女性(female)、仅检测男性(male)***
console_log_level -> 控制台日志级别 ***日志级别选项:0(无日志)、1(信息)、2(详细),默认值为1***
注意:如下图所示,当我们设置图像中的脸部用从大到小的排序顺序之后,索引值为0替换的是最大的脸部,索引值为4就替换了最后的人物脸部,其他的方法可自行尝试。
孜孜不倦,方能登峰造极。坚持不懈,乃是成功关键。