WebUI利用InstantID实现AI换脸技术:完美解决方案探究

随着AI绘画技术的不断迭代,AI换脸也日臻完美。

从路线上看,主要有两条路线,一是一张图换脸,优点是操作简便,缺点是换个姿势的时候,往往不太像,roop等插件是基于这个思路;二是炼制专属LoRA,用目标的5-20张甚至更多脸部照片,训练一个LoRA,从而生成满意的换脸画面,妙鸭相机、EasyPhoto等工具都是基于这个思路。

如今,又冒出来第三条路线。

小红书 InstantX 团队公开了论文《 InstantID: Zero-shot Identity-Preserving Generation in Seconds 》和推理代码,他们表示:

InstantID 巧妙地避免了对文生图模型 UNet 部分的训练,仅通过训练一个轻量级的可插拔模块,实现了在推理过程中无需 test-time tuning,同时保持了文本控制的灵活性,确保了面部特征的高保真度。

InstantID 的工作原理可分为三个关键部分:

ID Embedding:团队利用预训练的面部识别模型代替 CLIP 来提取语义人脸特征,并使用可训练的投影层,将这些特征映射到文本特征空间,形成 Face Embedding,具有丰富的语义信息,包括如面部特征、表情、年龄等,为后续的图像生成提供了坚实的基础。

Image Adapter:引入一个轻量级的适配模块,将提取的身份信息与文本提示结合起来。这个模块通过解耦的交叉注意力机制,使得图像和文本能够独立地影响生成过程,从而在保持身份信息的同时,允许用户对图像风格进行精细控制,实现「双赢」。

IdentityNet:小红书提出了一个名为 IdentityNet 的网络,是 InstantID 的核心部分。它通过强语义条件(如面部特征的详细描述)和弱空间条件(如面部关键点的位置)来编码参考面部图像的复杂特征。在 IdentityNet 中,生成过程完全由 Face Embedding 引导,无需任何文本信息。仅更新新添加的模块,而预先训练的文本到图像模型保持冻结以确保灵活性。

在实际的图像生成过程中,InstantID 首先会接收到用户的文本提示和面部图像。然后通过 ID Embedding 提取关键信息,接着 Image Adapter 将这些信息与文本提示融合。IdentityNet 会根据这些融合后的信息生成图像。

整个过程是自动化的,用户不需要进行任何额外的微调或训练,只需等待二十几秒,就能得到一个既符合文本描述又保留个人身份特征的定制图像。

这个工具有独立安装版,有comfyUI版,今天我来介绍下WebUI版如何使用。

1、升级ControlNet,至少要到1.1.440版。

2、下载ControlNet使用的模型,模型分两大类。

https://www.123pan.com/s/ueDeVv-v1uI.html

(1)ControlNet模型

分别是ip-adapter_instant_id_sdxl.bin和control_instant_id_sdxl.safetensors。

下载后拷贝至extensions\sd-webui-controlnet\models,比如我的WebUI安装在E:\sd-webui,就需要拷贝至:

E:\sd-webui\extensions\sd-webui-controlnet\models

PS,也可以拷贝至

E:\sd-webui\models\ControlNet

(2)面部识别模型

共计5个,拷贝至以下目录(我的WebUI在E:\sd-webui)

E:\sd-webui\extensions\sd-webui-controlnet\annotator\downloads\insightface\models\antelopev2

3、配置界面

在ControlNet的配置界面,我们需要配置两个页面。

第一个页面:

先上传需要输出的脸型原型,比如一个非常熟悉的美少女。

IMG_256

注意相关参数。

(1)选择启用。

(2)类型选择Instant_ID

(3)预处理器选择instant_id_face_embedding

(4)模型选择ip-adapter_instant_id_sdxl,如果模型这里为空或者报错,则需要检查是否将下载好的模型拷贝到指定位置。

第二个页面:

这里上传想要摆拍的姿势,可以不是需要换脸的画面。instantID会分析这张照片的姿势,然后把第一张的脸型按照这个姿势适配,但不是简单的换脸,除了姿势外,完全不同,相当于重新生成。

IMG_257

(1)注意如果你的显存不足16G,那么这里要选择低显存优化,否则会爆显存。

(2)和第一个页面一样,选择Instant_ID。

(3)预处理器选择instant_id_face_keypoints,模型选择control_instant_id_sdxl。

4、输入提示词,然后点击“生成”。

需要注意的是,提示词不要太复杂,过于复杂的提示词容易使Instant_ID失效。

比如,我输入提示词:

a girl,HDR,UHD,8K,best quality,masterpiece,ultra-fine painting,extreme detail description,Professional,summer dress,light_smile,

IMG_258

是不是很面熟?

再换一张姿势参考图:

IMG_259

提示词不变,生成如下:

IMG_260

然而我觉得,似乎不像传说中的那么像,大家觉得呢?

IMG_261

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容