1. 插件简介
ComfyUI_FaceProcessor 是一个专门处理人脸的神奇插件,就像是给ComfyUI装上了一双会看脸的眼睛。这个插件的作用就像是一个专业的化妆师,能够:
- 找到脸部:就像人眼一样,能准确找到图片中的人脸位置
- 标记脸部特征:在脸上标出468个关键点,比如眼角、鼻尖、嘴角等等
- 调整脸型:能把脸拉长、压扁,或者左右移动
- 脸部变形:把一张脸的形状套用到另一张脸上
- 裁剪脸部:智能地把脸部单独切出来,就像用剪刀精确剪纸一样
插件原地址:https://github.com/SykkoAtHome/ComfyUI_FaceProcessor
2. 如何安装
第一步:下载插件
- 打开你的ComfyUI文件夹
- 找到
custom_nodes这个文件夹 - 在命令行中输入:
cd ComfyUI/custom_nodes
git clone https://github.com/SykkoAtHome/ComfyUI_FaceProcessor.git face_processor
第二步:安装依赖包
在命令行中输入:
pip install mediapipe opencv-python numpy pandas pillow torch
第三步:安装显卡加速(可选)
如果你想让处理速度更快,可以安装CUDA支持:
pip install cupy-cuda12x
3. 节点详细解析
3.1 Face Wrapper 节点 - 脸部万能处理器
这个节点就像是一个多功能的美颜相机,能够检测脸部、调整脸型、还能把脸部变形。
3.2 Face Wrapper 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| image | image | IMAGE类型 | 必填 | 要处理的图片,就像给理发师看的照片 | 输入的图像数据 | 连接一张包含人脸的图片 |
| mode | mode | Debug/Un-Wrap/Wrap | Debug | 工作模式,就像选择相机的拍照模式 | 选择节点的处理方式 | Debug用来看脸部特征点,Un-Wrap用来拉直脸型 |
| device | device | CPU/CUDA | CPU | 用什么来处理,CPU就像人脑,CUDA就像超级计算机 | 选择处理设备 | 有显卡选CUDA更快,没有就用CPU |
| show_detection | show_detection | True/False | True | 是否显示找到的脸部特征点,就像在脸上画小圆点 | 是否显示检测到的面部关键点 | 想看AI找到了哪些特征就选True |
| show_target | show_target | True/False | False | 是否显示目标脸部特征点,就像显示理想脸型 | 是否显示目标面部关键点 | 用来对比变形前后的差异 |
| landmark_size | landmark_size | 数字 | 4 | 特征点的大小,就像调节画笔粗细 | 显示关键点的像素大小 | 想看清楚特征点就调大一点 |
| show_labels | show_labels | True/False | True | 是否显示特征点编号,就像给每个点贴标签 | 是否显示关键点的数字标签 | 想知道每个点的位置编号就选True |
| x_scale | x_scale | 0.5到1.0 | 1.0 | 脸部左右拉伸程度,就像调节镜子的宽度 | 水平方向的缩放系数 | 0.5会让脸变窄,1.0保持原样 |
| y_transform | y_transform | -0.5到0.5 | 0.0 | 脸部上下移动,就像调节镜子的高度 | 垂直方向的平移量 | 负数向上移,正数向下移 |
| fp_pipe | fp_pipe | 字典类型 | 可选 | 存储脸部信息的小纸条,用来记住之前的处理结果 | 面部处理的设置参数字典 | 在Wrap模式下必须连接,用来恢复脸部 |
3.3 Face Cropper 节点 - 脸部裁剪专家
这个节点就像是一个智能的裁剪工具,能够精确地把脸部切出来,还能把处理后的脸部贴回原图。
3.4 Face Cropper 参数详解
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| mode | mode | Fit/Restore | Fit | 工作模式,Fit像剪刀切脸,Restore像胶水贴回去 | 选择裁剪或恢复模式 | Fit用来切出脸部,Restore用来贴回原图 |
| image | image | IMAGE类型 | 必填 | 要处理的图片,就像要剪的纸 | 输入的图像数据 | 连接包含脸部的图片 |
| padding_percent | padding_percent | 0.0到1.0 | 0.2 | 脸部周围要留多少空白,就像剪照片时留边 | 面部周围的额外填充比例 | 0.2表示脸部周围留20%的空白 |
| bbox_size | bbox_size | 512/1024/2048 | 1024 | 切出来的脸部图片大小,就像相框的尺寸 | 裁剪输出的图像尺寸 | 越大越清晰,但处理越慢 |
| fp_pipe | fp_pipe | 字典类型 | Restore时必填 | 存储脸部位置信息的小纸条 | 面部处理的设置参数字典 | 在Restore模式下必须连接,记住脸在哪里 |
4. 使用技巧和建议
基础脸部检测流程
- 先用Face Wrapper节点,模式选择"Debug"
- 连接一张有清晰人脸的图片
- 打开show_detection,看看AI能不能准确找到脸部特征
- 如果特征点不准确,可能是图片质量不好或者脸部被遮挡
脸部变形处理流程
- 第一步 - 提取脸型:用Face Wrapper,模式选"Un-Wrap"
- 第二步 - 处理脸部:用其他节点处理变形后的脸部
- 第三步 - 恢复脸部:用Face Wrapper,模式选"Wrap",记得连接fp_pipe
脸部裁剪处理流程
- 第一步 - 裁剪脸部:用Face Cropper,模式选"Fit"
- 第二步 - 处理脸部:对裁剪出的脸部进行美化等处理
- 第三步 - 贴回原图:用Face Cropper,模式选"Restore"
参数调节建议
- x_scale:想让脸看起来更瘦,就调小一点(0.8左右)
- y_transform:想让脸部居中,就慢慢调节直到满意
- padding_percent:一般设置0.1-0.3,太小会切掉脸部边缘,太大会包含太多背景
- bbox_size:一般选1024,既清晰又不会太慢
5. 常见问题解答
Q1: 为什么检测不到脸部?
A: 可能原因:
- 脸部被遮挡太多(戴口罩、帽子等)
- 脸部角度太侧面
- 图片分辨率太低
- 光线太暗
Q2: 处理速度太慢怎么办?
A: 解决方法:
- 把device改为CUDA(需要安装显卡驱动)
- 降低bbox_size参数
- 使用较小的输入图片
Q3: 脸部变形效果不自然怎么办?
A: 调节建议:
- x_scale不要调得太极端,保持在0.7-1.0之间
- y_transform小幅调节,不要超过±0.3
- 确保原图脸部清晰,特征点检测准确
Q4: fp_pipe连接错误怎么办?
A: 检查要点:
- 确保Un-Wrap和Wrap使用同一个fp_pipe输出
- Restore模式必须连接对应的fp_pipe
- 不要随意断开fp_pipe连接
Q5: 内存不足怎么办?
A: 解决方法:
- 使用较小的输入图片
- 选择较小的bbox_size
- 关闭不必要的可视化选项
6. 高级应用技巧
批量脸部处理
虽然这个插件主要处理单张图片,但你可以结合ComfyUI的其他节点实现批量处理:
- 使用Load Image Batch节点加载多张图片
- 配合Loop节点进行批量处理
结合其他插件使用
- 可以和美颜插件配合,先用FaceProcessor定位脸部,再进行美化
- 可以和换脸插件配合,实现更精确的脸部替换
- 可以和动画插件配合,制作脸部变形动画
调试技巧
- 遇到问题时,先用Debug模式查看脸部检测是否正确
- 使用show_labels可以帮助理解脸部特征点的编号
- 保存中间结果图片,方便排查问题
这个插件就像是给ComfyUI装上了一双专业的"美容师眼睛",能够精确地识别和处理人脸。掌握了这些基础知识,你就能创造出各种有趣的脸部效果了!