最近AI人像生成技术非常火爆,本文介绍InstantID,它能够在保持高保真度身份保留的同时,仅使用单张面部图像参考就可以实现个性化图像合成,并且支持各种不同的风格。
项目主页:https://instantid.github.io/
代码地址: https://github.com/InstantID/InstantID
体验地址:https://huggingface.co/spaces/InstantX/InstantID
一. InstantID介绍
在论文中介绍InstantID:"Zero-shot Identity-Preserving Generation in Seconds",翻译过来就是"几秒内零次身份保存生成"。
InstantID是一种基于扩散模型的强大解决方案。设计的即插即用模块仅使用单个面部图像就能熟练地处理各种风格的图像个性化,同时确保高保真度。它的核心是设计了一个新颖的 IdentityNet,通过强加语义和弱空间条件,将面部和地标图像与文本提示相结合来引导图像生成。
仅给定一张参考 ID 图像,InstantID 的目标是从单个参考 ID 图像生成具有各种姿势或风格的定制图像,同时确保高保真度。它包含三个关键组成部分:
(1)捕获语义人脸信息的 ID 嵌入;
(2)具有解耦交叉注意力的轻量级适配模块,方便使用图像作为视觉提示
(3) IdentityNet,通过额外的空间控制对参考面部图像的详细特征进行编码。
二. InstantID功能介绍
功能1:一张人脸生成任意风格的图片
功能2:可编辑性
通过文本提示词来编辑生成的图片,比如改变图像中人物的表情、背景或其他元素。也可以借助 ControlNet插件更加精准地控制图像的生成细节,实现个性化定制。
功能3:多重参考
允许使用多张参考图像来生成一个新图像,从而增强生成图像的丰富性和多样性。
对于多个参考图像,取 ID 嵌入的平均平均值作为图像提示。即使只有一张参考图像,InstantID 也能取得良好的结果。
InstantID 也可以灵活支持将身份属性添加到非人类角色中。
三. InstantID与同类产品比较
比较1:InstantID 与 IP-Adapter/IP-Adapter-FaceID/PhotoMaker
与 IP-Adapter (IPA)、IP-Adapter-FaceID 和最新的 PhotoMaker 进行比较。其中,PhotoMaker需要训练UNet的LoRA参数。可以看到,PhotoMaker和IP-Adapter-FaceID都实现了良好的保真度,但文本控制能力有明显的退化。相比之下,InstantID 实现了更好的保真度并保留了良好的文本可编辑性(面孔和样式更好地融合)。
比较2:InstantID与LORA
InstantID无需任何训练就可以像 LoRA 一样取得有竞争力的效果。
比较3:InstantID与InsightFace Swapper
在非写实风格中,InstantID在面部和背景的融合上更加灵活。
四. InstantID使用体验
下面我们在huggingface网站上面使用体验一下。
在最上面有操作步数说明,核心操作只需要4步。
【第一步】:个人图片的上传
对于多人图像,我们将只检测最大的脸。确保脸部不要太小,没有明显的遮挡或模糊。
比如我们这里上传一张紫霞仙子的照片。
【第二步】: (可选) 上传另一个人的图像作为参考姿势
如果没有上传,我们将使用第一人称图像提取地标。如果在步骤1中使用裁剪过的脸,建议上传它来提取一个新的姿势。
【第三步】:提示词的编写
提示词:A beautiful woman was sitting on the grass in the park
【第四步】:图片的生成
我们先选择不同的风格,然后点击"Submit"按钮,就可以生成图片了。我们这里看一下不同风格的图片效果。
风格1:WaterColor(水彩)
风格2:Film Noir(黑白电影)
风格3:Neon(霓虹灯)
风格4:Jungle(丛林)
风格5:Mars(火星)
风格6:Vibrant Color(充满活力的颜色)
风格7:Snow(雪)
风格8:Line art(线条艺术)
从生产图片效果来看,人物图像保持得非常统一,和原图片的相似度非常高。
五. 相关说明
(1)如果对相似度不满意,可以适当增加controlnet_conditioning_scale (IdentityNet)和ip_adapter_scale (Adapter)的权重。
(2)如果生成的图像过度饱和,请减小 ip_adapter_scale的权重。如果不起作用,请减小controlnet_conditioning_scale的权重。
(3)如果文本提示词不符合预期,减小ip_adapter_scale的权重。
(4)选择一个好的基本模型是很重要的。
好了,今天的分享就到这里了,感兴趣的小伙伴快去体验一下吧。