IP-Adapter: Text Compatible Image Prompt Adapter for Text-to-Image Diffusion Models
TL; DR:提出通过解耦交叉注意力模块来图片作为生图条件,加入到单纯的文生图模型中。所谓解耦,其实就是除了文本 prompt 交叉注意力之外,加了一个图像 prompt 交叉注意力,两个支路是分开的,而非之前的拼接或者相加。
导语
现在的生图模型大都以文本作为条件。俗话说:”一图胜千言“,一张图像中包含着极其丰富的信息,如果能将图像信息作为条件,生图模型的可控性有将得到巨大的提升。本文提出 IP-Adapter,为预训练的文生图扩散模型提供 image prompt 的能力。IP-Adapter 设计的核心是解耦的交叉注意力机制,将文本特征和图像特征的交叉注意力层分开来,
方法
IP-Adapter 的结构非常清晰,就是加了一支和文本 prompt 条件结构完全相同的图像 prompt 处理之路,同样是 encoder + linear + cross attention 到 UNet 中。其中只有 linear 和 cross attention 是可训练的。
仅有文本 prompt 的交叉注意力:
Z
=
softmax
(
Q
⋅
K
text
V
text
)
Z=\text{softmax}(\frac{Q\cdot K_\text{text}}{V_\text{text}})
Z=softmax(VtextQ⋅Ktext)
加入 IP-Adapter 图像 prompt 之后:
Z
new
=
softmax
(
Q
⋅
K
text
d
)
V
text
+
λ
⋅
softmax
(
Q
⋅
K
image
d
)
V
image
Z_\text{new}=\text{softmax}(\frac{Q\cdot K_\text{text}}{\sqrt{d}})V_\text{text}+\lambda\cdot\text{softmax}(\frac{Q\cdot K_\text{image}}{\sqrt{d}})V_\text{image}
Znew=softmax(dQ⋅Ktext)Vtext+λ⋅softmax(dQ⋅Kimage)Vimage
其中
Q
Q
Q 是 query,来自 UNet,两者是共享的,而
K
K
K 和
V
V
V 则是各自不同的。
训练时,也是使用图文对数据集进行训练,与常规 SD 的训练目标相同。
效果展示
有了图像 prompt 之后能怎样呢?下图展示了一些用法。可以看到,既可以与惊喜的空间结构相结合,生成特定风格和动作的结构,也可以和文本 prompt 结构,更精确地控制一些很难用语言描述的细节。
总结
IP-Adapter 通过解耦的、独立的一支交叉注意力层将图像 prompt 引入到文生图模型中,是比较基础的、简单有效的方法。不过说是解耦,但是最后看着还是加起来的呢,只是多过了一个 cross attention 层。当然,只要要结合到 UNet 中去,终归是要么拼接,要么相加的。