在使用 ComfyUI 的 InstantID 进行人脸替换时,一个常见问题是该工具倾向于保留原始参考图的构图,即使用户的提示词与之不符。
例如,即使用户提供的是大头照并请求生成全身照,结果仍是大头照,没有显示出用户所期望的构图。
同样,从半身照生成全身照的工作流也会遇到同样的问题——生成的图像仍然是半身照。
为了克服这一挑战,设计了一种新的工作流程,该流程可以将参考图中的人脸替换到任意一张照片上,而不受原始构图的限制。这种方法不仅提高了创作的灵活性,还确保了生成的图像能更好地符合用户的实际需求。
基础工作流的搭建
首先,使用 SDXL 生成一张肖像照片。这张照片将作为换脸操作的基底图像。用于换脸的基底图像,你也可以用 Midjourney 生成,或者是你自己拍摄的照片。
生成肖像照片
1️⃣ 准备工作:确保在 ComfyUI 管理器中安装了 Efficiency Nodes 效率节点。
2️⃣ 设置 SDXL 节点:
- 加载
SDXL 的效率加载器和SDXL 的采样器。 - 连接这些节点,选择 checkpoint,并输入提示词。
- 运行基础工作流,生成一张肖像照片。
换脸操作
3️⃣ 加载所需节点:
-
确保在进行下一步之前,您的 ComfyUI 管理器中已安装 Impact Pack。
-
加载 FaceDetailer,这是一个专门用于面部重绘的节点,可以自动识别和处理脸部区域,有效解决脸部形态问题(俗称脸崩)。
-
添加检测面部区域的节点和分割面部的节点,这些节点将帮助更精确地处理面部特征。
-
将这些节点相连接。
-
通过点击'添加提示词队列'按钮,检查节点连接是否正确。
添加并配置 InstantID 以进行换脸操作
步骤 1: 安装和配置 InstantID
1️⃣ 安装 InstantID:在添加 InstantID 之前,您需要确保已经在 ComfyUI 管理器里安装了由 cubiq 开发的 InstantID 节点。这个节点是实现高质量面部替换的核心。
2️⃣ 配置节点:
- 选择
Apply InstantID节点并将其添加到您的工作流中。 - 连接
InstantID的模型输入端口,从instantid节点拖出所需模型。 - 添加
insightface模型,用于识别和处理面部特征。 - 添加
ControlNet模型节点以辅助 InstantID 的功能。
步骤 2: 准备参考图像
3️⃣ 上传参考图:
- 选择一张脸部的参考图像,如 Instagram 上的一个 AI 网红的图像,这将用于替换生成的肖像中的脸部。
- 连接图像输入端口至已加载图片的节点,以确保参考图被正确加载。
步骤 3: 调整参数并连接
4️⃣ 连接节点:
- 将 SDXL Tuple 节点的模型和提示词连接到 InstantID。
5️⃣ 连接输出端口:
- 确保 InstantID 的输出端口正确连接到 FaceDetailer 的输入端口,以便进行最终的面部细节处理。
开始换脸操作
6️⃣ 执行换脸:
-
检查所有连接是否正确无误后,执行换脸操作。


