comfyui_face_parsing 人脸解析插件完全教程
1. 插件简介
插件地址: https://github.com/Ryuukeisyou/comfyui_face_parsing
这个插件就像一个超级智能的美颜相机,但比普通美颜相机厉害多了!它能够:
- 精准识别人脸各个部位:就像给人脸画地图一样,能分出哪里是皮肤、哪里是眼睛、哪里是嘴巴、哪里是头发等等
- 智能抠图:不用手动抠图,自动帮你把人脸从背景中分离出来
- 精细化处理:想只美化皮肤不动眼睛?想只换头发颜色?都能做到
- 批量处理:一次处理多张照片,省时省力
简单来说,这个插件就是把专业摄影师的修图技巧变成了自动化工具,让你轻松做出电影级别的人像效果。
2. 如何安装
方法一:直接下载(推荐新手)
- 打开你的 ComfyUI 安装文件夹
- 找到
custom_nodes文件夹 - 在这个文件夹里打开命令行(Windows按住Shift右键选择"在此处打开命令窗口")
- 输入命令:
git clone https://github.com/Ryuukeisyou/comfyui_face_parsing.git - 重启 ComfyUI
方法二:手动下载
- 访问 https://github.com/Ryuukeisyou/comfyui_face_parsing
- 点击绿色的 "Code" 按钮,选择 "Download ZIP"
- 解压到 ComfyUI 的
custom_nodes文件夹中 - 重启 ComfyUI
注意事项:
- 第一次运行时,插件会自动下载一些必要的模型文件(大约几百MB)
- 如果下载很慢,可以手动下载后放到指定文件夹
3. 节点详细解析
3.1 BBoxDetectorLoader 节点 - 人脸检测器加载器
这个节点就像是给你的电脑装上"眼睛",让它能够在照片中找到人脸的位置。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model_name | model_name | bbox/face_yolov8m.pt | bbox/face_yolov8m.pt | 选择用哪个"眼睛"来找人脸 | 选择人脸检测模型文件 | 就像选择用哪副眼镜看东西,默认的就很好用 |
3.2 BBoxDetect 节点 - 人脸位置检测器
这个节点就像是一个会画框的助手,在照片上把人脸用方框圈出来。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| bbox_detector | bbox_detector | BBOX_DETECTOR | - | 接收上面加载的"眼睛" | 人脸检测器对象 | 连接上面的检测器加载器 |
| image | image | IMAGE | - | 要检测人脸的照片 | 输入图像数据 | 把你的照片连接到这里 |
| threshold | threshold | 0-1之间的小数 | 0.3 | 多严格地判断是不是人脸 | 检测置信度阈值 | 0.3表示30%确定是人脸就算,数字越大越严格 |
| dilation | dilation | 整数 | 8 | 把检测框放大多少像素 | 边界框扩展像素数 | 8表示向外扩大8个像素,让框更大一些 |
| dilation_ratio | dilation_ratio | 0-1之间的小数 | 0.2 | 按比例放大检测框 | 边界框扩展比例 | 0.2表示放大20%,比固定像素更灵活 |
| by_ratio | by_ratio | True/False | False | 用比例还是固定像素放大 | 是否使用比例扩展 | False用固定像素,True用比例 |
3.3 BBoxListItemSelect 节点 - 人脸框选择器
当照片里有多个人脸时,这个节点帮你选择要处理哪一个。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| bbox_list | bbox_list | BBOX_LIST | - | 所有检测到的人脸框列表 | 边界框列表数据 | 连接检测器输出的人脸框列表 |
| index | index | 整数 | 0 | 选择第几个人脸 | 列表索引值 | 0是第一个人脸,1是第二个,以此类推 |
3.4 BBoxResize 节点 - 人脸框尺寸调整器
当你改变了照片大小,这个节点帮你同步调整人脸框的位置和大小。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| bbox | bbox | BBOX | - | 要调整的人脸框 | 边界框数据 | 连接需要调整的人脸框 |
| width_old | width_old | 整数 | - | 原来照片的宽度 | 原始图像宽度 | 比如原来是800像素宽 |
| height_old | height_old | 整数 | - | 原来照片的高度 | 原始图像高度 | 比如原来是600像素高 |
| width | width | 整数 | - | 现在照片的宽度 | 新图像宽度 | 比如现在是400像素宽 |
| height | height | 整数 | - | 现在照片的高度 | 新图像高度 | 比如现在是300像素高 |
3.5 BBoxDecompose 节点 - 人脸框信息分解器
这个节点把人脸框的位置信息拆分成具体的数字,方便其他节点使用。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| bbox | bbox | BBOX | - | 要分解的人脸框 | 边界框数据 | 连接人脸框,输出左上右下四个坐标 |
输出说明:
- l:左边界(距离照片左边多少像素)
- t:上边界(距离照片顶部多少像素)
- r:右边界(距离照片左边多少像素)
- b:下边界(距离照片顶部多少像素)
3.6 LatentCropWithBBox 节点 - 潜在空间人脸裁剪器
这个节点专门处理AI生成图片过程中的中间数据,按照人脸框进行裁剪。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| bbox | bbox | BBOX | - | 人脸框位置信息 | 边界框数据 | 连接检测到的人脸框 |
| samples | samples | LATENT | - | AI生成过程中的中间数据 | 潜在空间数据 | 连接VAE编码器或其他潜在空间数据 |
3.7 LatentInsertWithBBox 节点 - 潜在空间人脸插入器
把处理好的人脸数据重新插入到原图的潜在空间中。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| bbox | bbox | BBOX | - | 人脸框位置信息 | 边界框数据 | 指定插入位置 |
| samples_src | samples_src | LATENT | - | 原始图片的中间数据 | 源潜在空间数据 | 原图的潜在空间表示 |
| samples | samples | LATENT | - | 要插入的人脸数据 | 目标潜在空间数据 | 处理后的人脸潜在空间数据 |
3.8 LatentSize 节点 - 潜在空间尺寸获取器
获取AI中间数据的尺寸信息。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| samples | samples | LATENT | - | AI中间数据 | 潜在空间数据 | 连接潜在空间数据,输出宽度和高度 |
3.9 ImageCropWithBBox 节点 - 图片人脸裁剪器
这个节点就像剪刀,按照人脸框把人脸部分从整张照片中剪出来。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| bbox | bbox | BBOX | - | 人脸框位置信息 | 边界框数据 | 连接检测到的人脸框 |
| image | image | IMAGE | - | 要裁剪的照片 | 输入图像数据 | 连接原始照片 |
3.10 ImageCropWithBBoxList 节点 - 批量图片人脸裁剪器
一次性裁剪多个人脸,比如合影中的所有人脸。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| bbox_list | bbox_list | BBOX_LIST | - | 多个人脸框的列表 | 边界框列表数据 | 连接检测到的所有人脸框 |
| image | image | IMAGE | - | 要裁剪的照片 | 输入图像数据 | 连接原始照片 |
3.11 ImagePadWithBBox 节点 - 图片填充器
把小的人脸图片放到大画布上,周围用空白填充。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| bbox | bbox | BBOX | - | 人脸框位置信息 | 边界框数据 | 指定放置位置 |
| width | width | 整数 | - | 大画布的宽度 | 目标图像宽度 | 比如1024像素 |
| height | height | 整数 | - | 大画布的高度 | 目标图像高度 | 比如1024像素 |
| image | image | IMAGE | - | 要放置的小图片 | 输入图像数据 | 连接人脸图片 |
3.12 ImageInsertWithBBox 节点 - 图片人脸插入器
把处理好的人脸重新放回原图的指定位置。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| bbox | bbox | BBOX | - | 人脸框位置信息 | 边界框数据 | 指定插入位置 |
| image_src | image_src | IMAGE | - | 原始照片 | 源图像数据 | 连接原始照片 |
| image | image | IMAGE | - | 要插入的人脸图片 | 目标图像数据 | 连接处理后的人脸 |
3.13 ImageResizeWithBBox 节点 - 图片尺寸调整器
按照人脸框的大小来调整图片尺寸。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| bbox | bbox | BBOX | - | 人脸框位置信息 | 边界框数据 | 连接人脸框,自动调整图片到框的大小 |
| image | image | IMAGE | - | 要调整的图片 | 输入图像数据 | 连接需要调整尺寸的图片 |
3.14 ImageListSelect 节点 - 图片选择器
从多张图片中选择一张来处理。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| images | images | IMAGE | - | 多张图片的列表 | 图像列表数据 | 连接多张图片 |
| index | index | 整数 | 0 | 选择第几张图片 | 列表索引值 | 0是第一张,1是第二张,以此类推 |
3.15 ImageSize 节点 - 图片尺寸获取器
获取图片的宽度和高度信息。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE | - | 要测量的图片 | 输入图像数据 | 连接图片,输出宽度和高度数值 |
3.16 ImageResizeCalculator 节点 - 智能尺寸计算器
这个节点就像一个聪明的计算器,帮你算出最合适的图片尺寸。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE | - | 要计算的图片 | 输入图像数据 | 连接需要计算尺寸的图片 |
| target_size | target_size | 整数 | 512 | 目标尺寸大小 | 目标尺寸像素值 | 512表示长边调整到512像素 |
| force_8x | force_8x | True/False | True | 强制尺寸是8的倍数 | 是否强制8倍数对齐 | AI模型通常需要8的倍数尺寸 |
| force_64x | force_64x | True/False | False | 强制尺寸是64的倍数 | 是否强制64倍数对齐 | 某些高级模型需要64的倍数 |
3.17 FaceParsingModelLoader 节点 - 人脸解析模型加载器
这是插件的核心,加载专门用来分析人脸各部位的AI模型。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| device | device | cpu/cuda | cpu | 用CPU还是显卡运行 | 计算设备选择 | 有好显卡选cuda,没有选cpu |
3.18 FaceParsingProcessorLoader 节点 - 人脸解析处理器加载器
加载图片预处理工具,为人脸解析做准备。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 无参数 | - | - | - | 直接使用即可 | 自动加载预处理器 | 连接到人脸解析节点 |
3.19 FaceParse 节点 - 人脸解析器(核心节点)
这是整个插件最重要的节点,能把人脸分解成19个不同部位。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| model | model | FACE_PARSING_MODEL | - | 人脸解析AI模型 | 人脸分割模型对象 | 连接模型加载器 |
| processor | processor | FACE_PARSING_PROCESSOR | - | 图片预处理器 | 图像预处理器对象 | 连接处理器加载器 |
| image | image | IMAGE | - | 要解析的人脸图片 | 输入图像数据 | 连接人脸图片 |
3.20 FaceParsingResultsParser 节点 - 人脸解析结果处理器
把人脸解析的结果转换成可以使用的遮罩,这里有19个开关对应人脸的19个部位。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| result | result | FACE_PARSING_RESULT | - | 人脸解析结果 | 分割结果数据 | 连接人脸解析器输出 |
| background | background | True/False | False | 是否包含背景 | 背景区域选择 | True表示选中背景区域 |
| skin | skin | True/False | True | 是否包含皮肤 | 皮肤区域选择 | True表示选中皮肤区域 |
| nose | nose | True/False | True | 是否包含鼻子 | 鼻子区域选择 | True表示选中鼻子区域 |
| eye_g | eye_g | True/False | True | 是否包含眼镜 | 眼镜区域选择 | True表示选中眼镜区域 |
| r_eye | r_eye | True/False | True | 是否包含右眼 | 右眼区域选择 | True表示选中右眼区域 |
| l_eye | l_eye | True/False | True | 是否包含左眼 | 左眼区域选择 | True表示选中左眼区域 |
| r_brow | r_brow | True/False | True | 是否包含右眉毛 | 右眉毛区域选择 | True表示选中右眉毛区域 |
| l_brow | l_brow | True/False | True | 是否包含左眉毛 | 左眉毛区域选择 | True表示选中左眉毛区域 |
| r_ear | r_ear | True/False | True | 是否包含右耳 | 右耳区域选择 | True表示选中右耳区域 |
| l_ear | l_ear | True/False | True | 是否包含左耳 | 左耳区域选择 | True表示选中左耳区域 |
| mouth | mouth | True/False | True | 是否包含嘴巴 | 嘴巴区域选择 | True表示选中嘴巴区域 |
| u_lip | u_lip | True/False | True | 是否包含上嘴唇 | 上唇区域选择 | True表示选中上嘴唇区域 |
| l_lip | l_lip | True/False | True | 是否包含下嘴唇 | 下唇区域选择 | True表示选中下嘴唇区域 |
| hair | hair | True/False | True | 是否包含头发 | 头发区域选择 | True表示选中头发区域 |
| hat | hat | True/False | True | 是否包含帽子 | 帽子区域选择 | True表示选中帽子区域 |
| ear_r | ear_r | True/False | True | 是否包含耳环 | 耳环区域选择 | True表示选中耳环区域 |
| neck_l | neck_l | True/False | True | 是否包含项链 | 项链区域选择 | True表示选中项链区域 |
| neck | neck | True/False | True | 是否包含脖子 | 脖子区域选择 | True表示选中脖子区域 |
| cloth | cloth | True/False | True | 是否包含衣服 | 衣服区域选择 | True表示选中衣服区域 |
3.21 MaskBorderDissolve 节点 - 遮罩边缘溶解器
让遮罩的边缘变得柔和,避免生硬的边界。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| mask | mask | MASK | - | 要处理的遮罩 | 输入遮罩数据 | 连接需要柔化边缘的遮罩 |
| size | size | 整数 | 10 | 边缘溶解的范围 | 边缘处理像素范围 | 10表示边缘10像素范围内渐变 |
| kernel_size | kernel_size | 整数 | 5 | 模糊核心大小 | 高斯模糊核大小 | 5表示用5x5的模糊核,必须是奇数 |
| sigma | sigma | 小数 | 0 | 模糊强度 | 高斯模糊标准差 | 0表示自动计算,数值越大越模糊 |
3.22 MaskBorderDissolveAdvanced 节点 - 高级遮罩边缘溶解器
比普通溶解器更精细,可以分别控制上下左右四个方向的溶解程度。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| mask | mask | MASK | - | 要处理的遮罩 | 输入遮罩数据 | 连接需要柔化边缘的遮罩 |
| l | l | 整数 | 10 | 左边缘溶解范围 | 左边界处理像素数 | 10表示左边10像素范围内渐变 |
| t | t | 整数 | 10 | 上边缘溶解范围 | 上边界处理像素数 | 10表示上边10像素范围内渐变 |
| r | r | 整数 | 10 | 右边缘溶解范围 | 右边界处理像素数 | 10表示右边10像素范围内渐变 |
| b | b | 整数 | 10 | 下边缘溶解范围 | 下边界处理像素数 | 10表示下边10像素范围内渐变 |
| kernel_size | kernel_size | 整数 | 5 | 模糊核心大小 | 高斯模糊核大小 | 5表示用5x5的模糊核,必须是奇数 |
| sigma | sigma | 小数 | 0 | 模糊强度 | 高斯模糊标准差 | 0表示自动计算,数值越大越模糊 |
3.23 MaskBlackOut 节点 - 遮罩方向遮挡器
从指定方向开始把遮罩变黑,就像用黑布从一边开始遮挡。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| mask | mask | MASK | - | 要处理的遮罩 | 输入遮罩数据 | 连接需要遮挡的遮罩 |
| direction | direction | left/top/right/bottom | top | 从哪个方向开始遮挡 | 遮挡方向选择 | top表示从上往下遮挡 |
| position | position | 整数 | 10 | 遮挡到什么位置 | 遮挡位置像素值 | 10表示从边缘遮挡10像素 |
3.24 MaskCropWithBBox 节点 - 遮罩裁剪器
按照人脸框裁剪遮罩,只保留人脸区域的遮罩部分。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| bbox | bbox | BBOX | - | 人脸框位置信息 | 边界框数据 | 连接人脸框,按框裁剪遮罩 |
| mask | mask | MASK | - | 要裁剪的遮罩 | 输入遮罩数据 | 连接需要裁剪的遮罩 |
3.25 MaskComposite 节点 - 遮罩合成器
把两个遮罩按照不同方式合并成一个。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| destination | destination | MASK | - | 底层遮罩 | 目标遮罩数据 | 连接作为底层的遮罩 |
| source | source | MASK | - | 上层遮罩 | 源遮罩数据 | 连接要合并的遮罩 |
| operation | operation | 选项列表 | multiply | 合并方式 | 遮罩运算操作 | multiply相乘、add相加、subtract相减等 |
合并方式说明:
- multiply:相乘(重叠部分保留)
- add:相加(两个遮罩叠加)
- subtract:相减(从底层减去上层)
- and:与运算(只保留重叠部分)
- or:或运算(保留所有部分)
- xor:异或运算(只保留不重叠部分)
3.26 MaskBatchComposite 节点 - 批量遮罩合成器
把多个遮罩一次性合并成一个。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| mask | mask | MASK | - | 多个遮罩的集合 | 遮罩批次数据 | 连接多个遮罩 |
| operation | operation | 选项列表 | multiply | 合并方式 | 批量运算操作 | 选择如何把多个遮罩合并 |
3.27 MaskListSelect 节点 - 遮罩选择器
从多个遮罩中选择一个来使用。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| mask | mask | MASK | - | 多个遮罩的集合 | 遮罩列表数据 | 连接多个遮罩 |
| index | index | 整数 | 0 | 选择第几个遮罩 | 列表索引值 | 0是第一个,1是第二个,以此类推 |
3.28 MaskToBBoxList 节点 - 遮罩转人脸框列表
把遮罩转换成人脸框,自动找出遮罩中的矩形区域。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| mask | mask | MASK | - | 要转换的遮罩 | 输入遮罩数据 | 连接遮罩,自动生成包围框 |
| pad | pad | 整数 | 0 | 框的扩展像素 | 边界框填充像素 | 0表示紧贴遮罩,正数表示向外扩展 |
3.29 MaskInsertWithBBox 节点 - 遮罩插入器
把小的遮罩插入到大图的指定位置。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| bbox | bbox | BBOX | - | 插入位置信息 | 边界框数据 | 指定遮罩插入的位置 |
| image_src | image_src | IMAGE | - | 目标图片 | 目标图像数据 | 连接要插入遮罩的图片 |
| mask | mask | MASK | - | 要插入的遮罩 | 输入遮罩数据 | 连接需要插入的遮罩 |
3.30 GuidedFilter 节点 - 引导滤波器(磨皮神器)
这是专业的磨皮工具,能让皮肤变得光滑自然,比普通模糊更智能。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE | - | 要磨皮的图片 | 输入图像数据 | 连接需要磨皮的人脸图片 |
| radius | radius | 整数 | 3 | 磨皮范围大小 | 滤波半径像素值 | 3表示3像素范围内磨皮,越大效果越强 |
| eps | eps | 小数 | 125 | 磨皮强度控制 | 正则化参数 | 125是中等强度,数值越小磨皮越强 |
| guide | guide | IMAGE | 可选 | 引导图片 | 引导图像数据 | 不连接则用原图作引导,连接则用指定图片 |
3.31 ColorAdjust 节点 - 颜色调整器
专业的颜色调整工具,可以调整亮度、对比度、饱和度等。
参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE | - | 要调整的图片 | 输入图像数据 | 连接需要调色的图片 |
| contrast | contrast | 小数 | 1.0 | 对比度调整 | 对比度系数 | 1.0是原始,大于1增强对比,小于1降低对比 |
| brightness | brightness | 小数 | 1.0 | 亮度调整 | 亮度系数 | 1.0是原始,大于1变亮,小于1变暗 |
| saturation | saturation | 小数 | 1.0 | 饱和度调整 | 饱和度系数 | 1.0是原始,大于1色彩更鲜艳,小于1更灰 |
| hue | hue | 小数 | 0 | 色相调整 | 色相偏移值 | 0是原始,正数偏暖色,负数偏冷色 |
| gamma | gamma | 小数 | 1.0 | 伽马校正 | 伽马系数 | 1.0是原始,调整中间调亮度 |
4. 使用技巧和建议
4.1 基础工作流程
- 人脸检测 → BBoxDetectorLoader + BBoxDetect
- 人脸解析 → FaceParsingModelLoader + FaceParsingProcessorLoader + FaceParse
- 选择部位 → FaceParsingResultsParser(选择要处理的部位)
- 应用效果 → 使用各种处理节点
- 合成结果 → 把处理后的结果合并回原图
4.2 常用组合
- 精准磨皮:人脸检测 → 裁剪皮肤区域 → 引导滤波 → 插入回原图
- 换发色:人脸解析 → 选择头发 → 颜色调整 → 合成
- 美白牙齿:解析嘴部 → 选择嘴唇 → 亮度调整 → 合成
4.3 参数调优建议
- 检测阈值:人多的照片用0.5以上,单人照片用0.3即可
- 磨皮强度:亚洲人皮肤用eps=100-150,欧美人用150-200
- 边缘溶解:size=5-15像素比较自然,太大会模糊
5. 常见问题解答
Q1:为什么检测不到人脸?
A:检查threshold参数,可能设置太高了,试试0.2-0.3
Q2:磨皮效果太假怎么办?
A:增大eps参数值,或者减小radius参数
Q3:处理速度很慢怎么办?
A:如果有显卡,在FaceParsingModelLoader中选择cuda
Q4:遮罩边缘太硬怎么办?
A:使用MaskBorderDissolve节点柔化边缘
Q5:多人照片怎么处理?
A:使用BBoxListItemSelect选择要处理的人脸,或用ImageCropWithBBoxList批量处理
6. 总结
这个插件包含了31个节点,本教程已经全部详解完毕。从基础的人脸检测到高级的颜色调整,每个节点都有其独特的作用。掌握这些节点的组合使用,你就能制作出专业级的人像处理效果。
记住:多实践、多尝试不同的参数组合,你会发现更多有趣的用法!