最近一段时间基于扩散模型的图像处理方法遍地开花,接下来为大家介绍一种风格化图像的方法InstantID,可以通过仅有一张人脸照片,几秒钟内生成不同风格的人物照片。与传统方法需要多张参考图像和复杂的微调过程不同,InstantID只需一张图像,而且无需复杂的训练或微调过程。这项技术能够生成高质量的个性化图像,保持个人特征的真实性,并且能够适应不同的视觉需求。
InstantID的操作流程非常简化,只需要提供一张照片,它就能根据这张照片生成很多不同风格的图片,同时保持这个人的面貌特征不变。与传统方法需要多张参考图像和复杂的微调过程不同,InstantID只需一张图像,无需复杂的训练或微调过程,并且能在几秒钟内生成图像。最重要的是它还能够作为一个通用插件与stable diffusion以及controlnet等进行无缝集成。简直是AIGC者的福音,据作者说一月底就会把模型和代码开源,大家也一起期待一波~
OK,接下来就进入真题,让我们一起来看一下InstantID可以做那些事情吧~
论文标题:《InstantID : Zero-shot Identity-Preserving Generation in Seconds》
Qixun Wang, Xu Bai, Haofan Wang(*),Zekui Qin,Anthony Chen, InstantX Team
论文链接:https://arxiv.org/abs/2401.07519
项目链接:https://github.com/InstantID/InstantID
InstantID模型支持高保真度的身份保持生成,只有一个参考图像在任何风格
摘要
现有的个性化生成方法,如文本反转、DreamBooth和LoRA,在自定义图像创建方面取得了重大进展。然而,这些工作需要昂贵的计算资源和时间进行微调,并且需要多个参考图像,这限制了它们在现实世界中的应用。InstantID通过利用即插即用模块解决了这些限制,使其能够熟练地处理任何风格的图像个性化,仅使用一个面部图像,同时保持高保真度。为了保持人脸的身份,引入了一种新的人脸编码器来保留参考图像的复杂细节。InstantID在各种场景下的性能和效率显示了它在各种实际应用中的潜力。并且InstantID可以与常见的预训练文本到图像扩散模型(如SD1.5和SDXL)作为插件兼容。
方法
给定一个参考ID图像,InstantID旨在从单个参考ID图像生成具有各种姿势或风格的自定义图像,同时确保高保真度。下图概述了InstantID方法。它包含三个关键组成部分:
(1)捕获鲁棒语义面部信息的ID嵌入;
(2)具有解耦交叉注意的轻量级自适应模块,便于使用图像作为视觉提示;
(3)对参考面部图像的细节特征进行编码并附加空间控制的IdentityNet。
InstantID与以往的工作有以下几个方面的不同:
-
不训练UNet,因此可以保留原始文本到图像模型的生成能力,并与社区现有的预训练模型和ControlNets兼容;
-
InstantID不需要测试时间调优,所以对于一个特定的字符不需要收集多幅图像进行微调,只需推断一张图像一次;
-
实现了更好的人脸保真度,同时保留了文本的可编辑性。
脸部风格变换
InstantID支持风格化和现实风格
可编辑性和多引用
参考图像数量的影响。对于多幅参考图像,InstantID取ID嵌入的平均值作为图像提示符。即使只有一张参考图像,InstantID也能取得很好的效果。
与之前工作比较
哈哈,上图全都是计算机界的大佬。比较了IP-Adapter (IPA), IP-Adapter- faceid和最近的PhotoMaker。其中,PhotoMaker需要训练UNet的LoRA参数。可以看出,PhotoMaker和IP-Adapter-FaceID都实现了很好的保真度,但文本控制能力有明显的下降。相比之下,InstantID实现了更好的保真度,并保留了良好的文本可编辑性(面部和样式更好地混合)。
InstantID与预训练字符lora的比较。可以在没有任何训练的情况下获得具有竞争力的结果。
InstantID与InsightFace Swapper(也称为ROOP或Refactor)的比较。而在非写实风格中,我们的作品在人脸与背景的融合上更加灵活。
ID和风格交互
再来看看,20%的杨幂+80%的泰勒长什么样?
还有,将身份属性添加到非人类角色中的效果怎么样?
据作者说一月底会放出开源代码,所以一起期待一下吧~
We are working with diffusers team and will release the code before the end of January. Starring our work will definitely speed up the process. No kidding!