ComfyUI-Arc2Face 插件超详细保姆级教程
1. 插件简介
插件地址:https://github.com/caleboleary/ComfyUI-Arc2Face
ComfyUI-Arc2Face 是一个基于 Arc2Face 模型的自定义节点库,它可以从图片中提取人脸特征,生成基于这些特征的图像,并执行图像到图像的转换。
简单来说,这个插件就像一个超级人脸魔法师,能够: - 从照片中"记住"人脸的样子(就像给人脸拍X光片,记录下所有细节) - 用这些记录的特征生成新的人脸图片 - 把一张图片的人脸特征"移植"到另一张图片上 - 同时处理多张人脸,把它们"融合"成一个平均脸
想象一下,你有一堆明星照片,这个插件能帮你创造一个"融合了所有明星特征"的新面孔,或者让一个人的脸出现在不同的场景中。
2. 如何安装
2.1 下载插件
- 打开你的 ComfyUI 文件夹
- 进入
custom_nodes文件夹 - 在命令行中运行:
git clone https://github.com/caleboleary/ComfyUI-Arc2Face.git
2.2 安装依赖
pip install -r requirements.txt
如果你用的是便携版:
python_embeded\python.exe -m pip install -r requirements.txt
2.3 下载模型文件
你需要下载以下文件并放到指定位置:
从 camenduru/Arc2Face 下载:
- scrfd_10g_bnkps.onnx(人脸检测器,就像一个能找到照片中所有人脸的放大镜)
- arcface.onnx(人脸特征提取器,就像给每个人脸做指纹)
从 FoivosPar/Arc2Face 下载:
- arc2face/config.json(配置文件)
- arc2face/diffusion_pytorch_model.safetensors(图像生成器)
- encoder/config.json(编码器配置)
- encoder/pytorch_model.bin(编码器模型)
文件夹结构:
ComfyUI/
└── models/
├── antelopev2/
│ ├── scrfd_10g_bnkps.onnx
│ └── arcface.onnx
└── arc2face_checkpoints/
├── config.json
├── diffusion_pytorch_model.safetensors
└── encoder/
├── config.json
└── pytorch_model.bin
3. 节点详细解析
3.1 Arc2Face Face Extractor(人脸特征提取器)
这个节点是干嘛的:就像一个超级聪明的"人脸扫描仪",能从一张图片中找到所有的人脸,然后把每个人脸的特征都"记录"下来。如果有多个人脸,它还能把这些特征"混合"成一个平均值。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 输入图像 | image | 图像 | - | 要分析的照片 | 输入的图像数据 | 拖入一张包含人脸的照片 |
| 平均方法 | averaging_method | mean/median/ensemble | median | 多个人脸时怎么"混合"它们 | 多个人脸嵌入的平均方式 | 有3个人脸时选median效果最好 |
| 异常值数量 | n_outliers | 整数 | 0 | 要去掉多少个"不像"的人脸 | 移除距离聚类中心最远的人脸数量 | 背景有路人脸时设为1可以去掉 |
3.2 Arc2Face UNet Loader(主模型加载器)
这个节点是干嘛的:就像启动一个"AI画家",专门负责根据人脸特征生成新图片。这是整个系统的"大脑"。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 模型路径 | model_path | 文件路径 | 自动检测 | 告诉系统模型文件在哪里 | UNet模型文件路径 | 通常自动找到,不用手动设置 |
3.3 Arc2Face Encoder Loader(编码器加载器)
这个节点是干嘛的:就像启动一个"翻译官",负责把人脸特征"翻译"成AI能理解的语言。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 编码器路径 | encoder_path | 文件路径 | 自动检测 | 告诉系统编码器文件在哪里 | 编码器模型文件路径 | 通常自动找到,不用手动设置 |
3.4 Arc2Face Generator(图像生成器)
这个节点是干嘛的:就像一个"AI画家",根据你提供的人脸特征,从零开始画出一张新的人脸照片。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 人脸嵌入 | face_embedding | 嵌入数据 | - | 人脸特征数据 | 从Face Extractor获得的人脸嵌入 | 连接Face Extractor的输出 |
| 模型 | model | 模型对象 | - | 生成器模型 | 从UNet Loader获得的模型 | 连接UNet Loader的输出 |
| 编码器 | encoder | 编码器对象 | - | 编码器模型 | 从Encoder Loader获得的编码器 | 连接Encoder Loader的输出 |
| 种子 | seed | 整数 | 随机 | 控制生成结果的"随机性" | 生成随机性的种子值 | 相同种子生成相同结果 |
| 宽度 | width | 整数 | 512 | 生成图片的宽度 | 输出图像宽度 | 建议512效果最好 |
| 高度 | height | 整数 | 512 | 生成图片的高度 | 输出图像高度 | 建议512效果最好 |
| 步数 | steps | 整数 | 20 | AI"画"多少遍 | 生成步数 | 越多越精细,但越慢 |
| 引导强度 | guidance_scale | 小数 | 3.5 | 让AI多"听话" | 引导缩放系数 | 太高会过度拟合,太低会偏离 |
3.5 Arc2Face Img2Img Generator(图像转图像生成器)
这个节点是干嘛的:就像一个"换脸大师",能在保持原图构图的基础上,把人脸换成你想要的样子。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 人脸嵌入 | face_embedding | 嵌入数据 | - | 目标人脸特征 | 从Face Extractor获得的人脸嵌入 | 连接Face Extractor的输出 |
| 初始图像 | init_image | 图像 | - | 要改变的原图 | 作为基础的输入图像 | 拖入要换脸的照片 |
| 模型 | model | 模型对象 | - | 生成器模型 | 从UNet Loader获得的模型 | 连接UNet Loader的输出 |
| 编码器 | encoder | 编码器对象 | - | 编码器模型 | 从Encoder Loader获得的编码器 | 连接Encoder Loader的输出 |
| 降噪强度 | denoise_strength | 小数 | 0.8 | 改变有多"彻底" | 去噪强度 | 1.0完全重画,0.0不变 |
| 种子 | seed | 整数 | 随机 | 控制生成结果的"随机性" | 生成随机性的种子值 | 相同种子生成相同结果 |
| 步数 | steps | 整数 | 20 | AI"画"多少遍 | 生成步数 | 越多越精细,但越慢 |
| 引导强度 | guidance_scale | 小数 | 3.5 | 让AI多"听话" | 引导缩放系数 | 太高会过度拟合,太低会偏离 |
3.6 Arc2Face Image Grid Generator(图像网格生成器)
这个节点是干嘛的:就像一个"照片拼图器",能把一个文件夹里的所有照片拼成一张大图,方便你一次性处理多张照片。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| 目录路径 | directory_path | 文件路径 | - | 照片文件夹的位置 | 包含图像文件的目录路径 | 选择装有多张照片的文件夹 |
| 网格列数 | grid_columns | 整数 | 4 | 一行放几张照片 | 网格布局的列数 | 根据照片数量调整 |
| 图像大小 | image_size | 整数 | 256 | 每张小图的大小 | 网格中每个图像的尺寸 | 太大会占用太多内存 |
4. 使用技巧和建议
4.1 最佳实践
-
图像尺寸:模型在512x512尺寸附近效果最好。如果需要其他尺寸,建议先生成512x512,然后再缩放。
-
平均方法选择:
- 少数人脸(2-3个):选择
median - 多个人脸:选择
ensemble -
单个人脸:选择
mean -
异常值处理:当你知道背景中有一些被错误识别的人脸时,可以设置n_outliers来移除最不像的人脸。
4.2 参数调优建议
- 引导强度:3.5是个不错的起点,太高会让结果过于僵硬,太低会偏离目标
- 步数:20步对大多数情况已经足够,追求高质量可以增加到30-50步
- 降噪强度:0.8能保持很好的平衡,0.9-1.0会有更大变化,0.5-0.7变化较小
5. 常见问题解答
5.1 安装问题
Q:安装insightface时遇到错误怎么办? A:可以参考reactor项目的故障排除步骤。
Q:模型文件放在哪里? A:必须严格按照文档中的文件夹结构放置,不能随意更改路径。
5.2 使用问题
Q:生成的图片质量不好怎么办? A:检查输入图片质量,确保人脸清晰可见,尝试调整参数获得更好效果。
Q:可以用于商业用途吗? A:使用此节点需要遵守法律和伦理使用准则,包括获得被使用者同意,不创建有害内容等。
5.3 技术问题
Q:为什么检测不到人脸? A:确保图片中的人脸足够清晰,角度不要太侧,光线充足。
Q:多个人脸效果不好怎么办? A:尝试调整平均方法,或者使用n_outliers参数移除不相关的人脸。
6. 使用注意事项
6.1 法律和伦理要求
使用此节点时,你同意遵守所有适用法律并道德地使用此技术,包括: - 在使用他人肖像前获得同意 - 不创建深度伪造、色情内容或骚扰诽谤他人的内容 - 在内容被修改时进行透明披露 - 尊重版权和其他知识产权 - 不用于欺诈性冒充。
6.2 技术限制
- 模型针对人脸嵌入进行了高度优化,在测试中,任何正面提示都会破坏输出效果
- 最适合512x512尺寸,其他尺寸可能效果不佳
- 需要足够的GPU内存来运行模型
6.3 未来改进
插件作者提到了一些未来可能的改进: - 支持相关的ControlNet模型 - 自动下载缺失的模型文件 - 合并两个生成器节点为一个 - 添加正面提示支持(如果技术允许)
这个插件为ComfyUI用户提供了强大的人脸生成和编辑能力,但请务必负责任地使用这些功能。