在ComfyUI中用LoRA换脸,实现超高相似度
在之前的一篇文章中,我介绍了如何在WebUI中利用Adetailer插件和自己训练好的LoRA为图片中的人物换脸。本文将进一步展示如何在ComfyUI中执行类似操作。
如果你喜欢看视频教程,那么我非常欢迎你观看本文所对应的视频(B站同名帐号):
准备工作
首先,确保您拥有一个已经训练好的LoRA。如果你不知道如何训练LoRA,可以看看我之前的文章。
这个LoRA可以仅使用被训练人物的大头照。我们的目标是使用LoRA生成与被训练人物高度相似的脸部,然后将其换到任何身体上,实现真正意义上的AI摄影。
安装必要的自定义节点
在开始之前,需要安装两个关键的自定义节点:
1️⃣进入ComfyUI,打开ComfyUI管理器。
2️⃣点击“安装自定义节点”的按钮。
3️⃣搜索“efficiency”并安装“Efficiency Nodes”。
4️⃣继续搜索“impact pack”并下载“ComfyUI Impact Pack”。
5️⃣安装完毕后,重启ComfyUI以确保所有节点正确加载。
搭建基础工作流
设置工作流
1️⃣双击打开搜索栏,输入“eff.”,找到并点击“Eff. Loader SDXL”。此节点整合了加载Checkpoint、VAE、提示词、设置图片尺寸等功能。
2️⃣再次打开搜索栏,输入“eff.”,选择“KSampler SDXL”作为采样器。
3️⃣将这两个节点相连,并正确设置Checkpoint和提示词。
运行并测试图像
4️⃣现在,运行工作流并检查生成的图像,确保没有问题。
添加换脸模块
面部检测与分割
1️⃣双击打开搜索栏,输入“ultra”,选择“UltralysticsDetectorProvider”。它提供了一系列检测面部,手部,人体的模型。然后选择模型名称“bbox/face_yolov8m”进行面部检测。它用方形边界框来检测面部,比下面这几个检测面部的模型体积更大一些,因此效果更好一些。Bbox就是方形边界框”bounding box”的缩写。
2️⃣接下来,添加图像分割节点。打开搜索框,输入“samloader”,选择“SAMLoader”。这个”sam”就是”Segment Anything”的缩写,在WebUI里也有这个插件。它是Facebook的母公司Meta开发出来的图像分割的模型。接着选择模型名称包含字母“h”的模型。它是里面体积最大的,因此效果更好一些。
实现换脸
模型都准备好了,接下来还需要一个具体执行换脸的节点。
3️⃣搜索并添加“FaceDetailer”节点,类似于WebUI中的Adetailer。
4️⃣有了这3个节点还不够,因为我们还需要让这个”FaceDetailer”可以使用单独的模型以及提示词。还需要它可以使用我们训练好的LoRA进行换脸。所以,我们再添加一个支持SD1.5的效率加载器。
5️⃣我们需要对SDXL模型生成的图像进行换脸。所以采样器的图像输出端应该连上”FaceDetailer”的图像输入端。因为我们要”FaceDetailer”使用单独的模型,所以把效率加载器上的模型输出端连上”FaceDetailer”的输入端。下面的端口我们也连一下。然后把这两个处理面部的节点也连接一下。
设置并预览
6️⃣配置“FaceDetailer”所需的模型、LoRA和提示词。
7️⃣在“FaceDetailer”的输出端添加一个预览图像节点。
8️⃣添加一个“把蒙版转化为图像”的节点,连接相应的“mask”端口。
9️⃣添加另一个预览图像节点以便预览处理好的面部蒙版。
🔟在SDXL的采样器图像输出端也添加一个预览图像节点,以便比较换脸前后的效果。
接着再点击”添加提示词队列”按钮,稍等一会儿图片就出来了。
调整与优化
- 如果换脸效果存在问题,可调整“FaceDetailer”的参数,如增大“feather”以减少接缝,或调整“bbox_crop_factor”以增大裁剪区域。
结束语
至此,我们完成了在ComfyUI中使用LoRA进行人脸换脸的全过程。希望您能够利用这些技术,开启您的AI摄影创作之旅。如果您觉得这篇教程有帮助,请不吝点赞和关注,期待我们下次的分享。
另外,给大家推荐我正在跑SD的云平台:https://myaiforce.com.cn/lanrui/