T2I-Adapter: Learning Adapters to Dig out More Controllable Ability for Text-to-Image Diffusion Models
TL; DR:本文提出 T2I-Adapter,给 SD 外接一个适配器,可根据线稿、人体姿态等条件图输入来控制生成图的空间位置,还可以通过输入参考图来控制生成图色彩的空间分布。具有即插即用、结构简单小巧、灵活、可组合、可泛化的优点。
方法
Stable Diffusion训练回顾
I2T-Adapter 是基于 SD 的,这里先回顾一下 SD 的训练。
SD 是一种两阶段的 diffusion 模型,包括一个自编码器(Autoencoder,不太清楚为啥这里的 ae 要叫做 vae)和一个 unet 去噪器。在第一阶段,SD 先训练自编码器,它由 encoder 和 decoder 两部分组成。encoder 可以将一张图片映射到 latent 空间中,decoder 则可以将 latent 空间中的一个表示解码为真实图片。在第二阶段,SD 在 latent 空间中训练一个去噪 unet 模型。优化过程的形式定义如下:
L
=
E
Z
t
,
C
,
ϵ
,
t
(
∣
∣
ϵ
−
ϵ
θ
(
Z
t
,
C
)
∣
∣
2
2
)
\mathcal{L}=\mathbb{E}_{Z_t,C,\epsilon,t}(||\epsilon-\epsilon_\theta(Z_t,C)||^2_2)
L=EZt,C,ϵ,t(∣∣ϵ−ϵθ(Zt,C)∣∣22)
其中
Z
t
=
α
t
ˉ
Z
0
+
1
−
α
t
ˉ
ϵ
,
ϵ
∈
N
(
0
,
I
)
Z_t=\sqrt{\bar{\alpha_t}}Z_0+\sqrt{1-\bar{\alpha_t}}\epsilon,\ \ \ \epsilon\in\mathcal{N}(0,I)
Zt=αtˉZ0+1−αtˉϵ, ϵ∈N(0,I) 表示第
t
t
t 步的噪声特征图,
C
C
C 表示条件信息,
ϵ
θ
\epsilon_\theta
ϵθ 指的是 unet 去噪网络。
在推理阶段,从高斯噪声中随机采样一个 latent 空间的噪声图
Z
T
Z_T
ZT ,给定
Z
T
Z_T
ZT, 模型
ϵ
θ
\epsilon_\theta
ϵθ 预测在条件
C
C
C 下的每一步的噪声残差,通过不断地减去每一步预测出的噪声残差,latent 空间的噪声图得以去噪。在
T
T
T 步之后,得到去噪结果特征图
Z
^
0
\hat{Z}_0
Z^0 。然后将其送入自编码器的 decoder 生成真实图片。至于这个条件,在文生图的 SD 中,使用的是预训练的 CLIP text encoder ,将文本 prompt 编码为 embedding
y
y
y。然后用一个交叉注意力模型将
y
y
y 结合到去噪过程中,具体形式如下:
Q
=
W
Q
ϕ
(
Z
t
)
;
K
=
W
K
τ
(
y
)
;
V
=
W
V
τ
(
y
)
Attention
(
Q
,
K
,
V
)
=
softmax
(
Q
K
d
)
V
Q=W_Q\phi(Z_t); K=W_K\tau(y); V=W_V\tau(y)\\ \text{Attention}(Q,K,V)=\text{softmax}(\frac{QK}{\sqrt{d}})V
Q=WQϕ(Zt);K=WKτ(y);V=WVτ(y)Attention(Q,K,V)=softmax(dQK)V
其中
ϕ
\phi
ϕ,
τ
\tau
τ 是两个可学习的映射层,
W
Q
,
W
K
,
W
V
W_Q,W_K,W_V
WQ,WK,WV 则是可学习的映射矩阵。
T2I-Adapter
T2I-Adapter 的概览如图所示。整个预训练的 SD 模型参数在 T2I-Adapter 的训练中都是冻结的,只有 adapter 部分是可学习的。adapter 可以有很多不同的网络,分别用于理解不同的输入条件图。
Adapter设计
adapter结构
由于 SD 的扩散过程是发生在 latent 空间,T2I-Adapter 通过 pixel shuffle 将输入条件图降采样的为 latent 空间的特征图。adapter 的结构就是一堆卷积堆起来,一共分为四组,分别处理 64,32,16,8 四组分辨率大小的特征图,具体结构如上图右下角所示。其每组的输出接到 unet encoder 对应分辨率的各层。
空间结构控制
T2I-Adapter 可以处理多种空间结构条件图输入,如线稿图、深度图等。空间结构控制的方法就是直接由对应的 adapter 提取输入条件的特征图,并输入给 unet encoder。
空间色彩调色
除了空间结构控制之外,T2I-Adapter 还可以用于调整生成图像中各个位置的颜色。本文的做法是 bicubic 降采样来抹除掉输入色彩条件图的语义和空间结构,而保持其色彩的空间分布信息,再采用最近邻插值将图片上采样回原图尺寸大小。这样,我们就得到了色彩块的空间排布。然后同样使用对应的 adapter 来提取色彩条件的特征图,输入给 unet encoder。
多adapter控制
除了单条件控制,T2I-Adapter 还支持组合多种条件进行控制。并且不需要额外进行训练。只需要在推理时对各种条件的特征图进行加权并加起来就行了。
模型优化
T2I-Adapter 所需的训练数据是一种三元组的形式,包括原始图片、条件图和文本 prompt。优化的目标和 SD 相近,只需要将额外的条件图输入到 adapter 中即可。
按说 adapter 如果能同时输入当前的时间步 t t t 的信息的话,对条件的控制会更精细,但这会导致 adapter 的结构更加复杂,不符合 adapter 设计简单小巧的初衷。为了弥补 adapter 时间步输入的缺失,作者提出了一种非均匀的立方时间步采样方法。我们知道,从 DDPM 开始,diffusion 模型的训练的时间步 t t t 都是均匀采样的。但是作者发现,对于空间结构控制的 adapter 微调,early、middle、late 三个时间步阶段中,early 阶段对空间结构的控制最为关键,因此非均匀的时间步采样方法会在 early 阶段有更大的采样概率。这也符合直观的理解:early 阶段会形成图像的大致轮廓,middle、late 阶段是为图像细化更多的细节信息。
可以看到,非均匀的立方采样方法,相比均匀采样方法,对条件的控制更加精准,差距在空间色彩上更为明显,
实验结果
略
总结
T2I-Adapter 保持预训练 SD 的参数不动,通过为不同的空间结构条件图训练一个轻量的 adapter,实现了对生成结果的空间结构控制和空间色彩控制。