type
status
date
slug
summary
tags
category
icon
password
paper | InstanceID: Zero-shot Identity-Preserving Generation in Seconds |
code | |
org | InstantX Team |
demo |
1 Motivation2 Method2.1 ID Embedding2.2 Adapted module2.3 IdentityNet2.4 模型训练3 Result4 SummaryReference
1 Motivation
目前基于
diffusion model
做定制生成主要有两类方法:inference before fine-tune和inference without fine-tune。inference before fine-tune方法每次有新的概念都需要训练模型,相对繁琐,但效果较好,代表工作有DreamBooth
, lora
, textual inversion
等。inference without fine-tune的方法需要预先在大量数据上训练一个鲁棒的object embedding提取模型,推理时无需再次训练,代表工作有AnyDoor
, IPAdapter
等。人脸的定制生成往往需要更加细粒度(fine-grain)的特征提取,现有的基于inference without fine-tune的方法做的都不是很好。本文提出了一种plug-and-play 定制人脸生成模型(Plugability),给定一张人脸照片,就能生成指定风格和pos的照片。InstantID不仅前期训练成本低(compatibility),还能实现inference without fine-tune (Tuning-free)和高保真图像的生成。(Superior performance)。取得了fidelity、efficiency、flexible三者很好的平衡。
ㅤ | 主要原理 | 代表方法 | 优点 | 缺点 |
inference before fine-tune | 需要搜集一些需要定制的概念的图片对diffusion model进行微调,使其能够学到新的概念 | DreamBooth , lora , textual inversion | 效果好
| 每有一个新的概念都需要重新训练。resource-intensive and time-consuming |
inference without fine-tune | 这类方法一般需要事先训练一个较为通用的object-level embedding提取模型。融入的方式有多种
- 取代text embedding在cross-attention融入 ( anydoor )
- 和text embedding拼接融入
- DM增加一个image-cross-attn单独融入image 特征 (IPAdapter ) | AnyDoor ,blip-diffusioin , IPAdapter | 推理较为便捷 | - 效果一般没有第一类方法好
- 前期的训练成本很大
- 有一些架构不是plug-and-play,导致无法适配社区开源的大量模型 |
2 Method
Given only one reference ID image, InstantID aims to generate customized images with various poses or styles from a single reference ID image while ensuring high fidelity.
为了实现上述目的,设计了3个模块
ID embedding
: 用于提取reference image的人脸特征。
Adapted modul
e:用于将人脸特征融入到diffusion model
中
IdentityNet
:用于将人脸的spatial 信息融入到diffusion model
中
2.1 ID Embedding
之前类似的工作大多采用
CLIP
的Image encoder,或DINOv2
扮演ID embedding角色。如IP-Adapter
[1]、PhotoMarker
[2]、FaceStudio
[3]用了CLIP的image encoder。Anydoor
[4]用了DINOv2
。作者认为CLIP
的训练用了大多数弱对齐的语料,这导致CLIP
image encoder提取的特征来自广泛模糊的语义信息,对于ID级别的特征提取的粒度是不够的。因此作者此处用了人脸领域的预训练模型提取Id embedding。提取完embedding,下一个任务就是如何将其融入到Diffusion model
中。2.2 Adapted module
文生图任务中,我们将文本转为embedding融入到
diffusion model
的cross-attention
中实现classifier-free
的图片生成。对于定制生成来说,除了text embedding,我们来有一个来自reference image的image embedding。需要同时将两个embedding融入到diffusion model
中(当然,如果不需要文本控制,只融入image embedding就好)。这篇paper参考了IP-Adapter
的方法,分别将image embedding和text embedding融入到decoupled cross-attention中。简单介绍一下
decoupled cross-attention
。decoupled cross-attention
相比文生图的cross attention多了两个训练参数,起始阶段用text分支的进行初始化。(下标代表第层cross-attention
)。注意在adapted module的训练中,Unet
的参数是固定的,只训练新增的。可以通过调整image embedding的权重来决定image condition的影响程度。
2.3 IdentityNet
ID Embedding
和Adapted module
这两个模块的引入能让diffusion model
生成特定概念的图片。IdentityNet
的核心目的是给diffusion model
增加spatial control的能力,来弥补损害的text edit能力。作者采用Controlnet
的思路来实现IdentityNet
。有所区别的是:1)
IdentityNet
的输入的关键点只有5个(眼睛2个,鼻子1个,嘴巴2个);(作者认为这样有两个好处,一是人脸区域一般比较小,只检测5个关键点比较简单,二是避免加入过强的spatial control导致损害edit能力,diversity和fidelity的权衡)2)
IdentityNet
融入的是ID embedding
,而原始的Controlnet
融入的是text embedding。(作者的motivation是IdentityNet
是为了做人脸的spatial control,融入ID embedding
能让模型对人脸区域更加“敏感”)。下图展示了不同pose的生成效果。
2.4 模型训练
基座模型 | SDXL-1.0 , antelopev2 [5] (提取face-embedding) |
数据集 | LAION-Face(50M), 10M 高质量爬取数据(用BLIP2打标签) |
训练成本 | 48块H800,2 batch-size/card |
3 Result
下图展示了
InstantID
和早先工作的比较。4 Summary
总的来看,
InstantID
虽然并没有提出让人眼前一亮的创新,但能很好的根据人脸定制生成的特点应用合适的解决方法。并且plug-and-play的设计大大提升了instantID
的可玩度,可以联合社区丰富的Lora
、textual embedding
等资源来扩展。最重要的是开源了耗费大量计算资源训练的模型。Reference
- 作者:莫叶何竹🍀
- 链接:http://www.myhz0606.com/article/instantID
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章