paper:2308.06721
目录
摘要
近年来,基于大规模文本到图像扩散模型的强大能力,生成高质量图像的生成能力令人印象深刻。然而,使用文本提示生成所需图像非常棘手,因为这通常涉及复杂的提示工程。图像提示作为文本提示的替代方案逐渐受到关注,正如俗话所说:“一图胜千言”。尽管现有的直接从预训练模型微调的方法是有效的,但它们需要大量的计算资源,且与其他基础模型、文本提示和结构控制不兼容。在本文中,我们提出了IP-Adapter,一个有效且轻量的适配器,用于使预训练的文本到图像扩散模型具备图像提示的能力。我们IP-Adapter的关键设计是解耦的跨注意力机制,分离了文本特征和图像特征的跨注意力层。尽管我们的方法简单,但仅具有2200万参数的IP-Adapter就可以实现与完全微调的图像提示模型相媲美甚至更好的性能。由于我们冻结了预训练的扩散模型,所提出的IP-Adapter不仅可以推广到从相同基础模型微调的其他自定义模型,还可以与现有的可控生成工具结合使用进行可控生成。得益于解耦跨注意力策略,图像提示也能很好地与文本提示配合,从而实现多模态图像生成。
1、介绍
图像生成在近年来取得了显著进展,得益于诸如GLIDE [1]、DALL-E 2 [2]、Imagen [3]、Stable Diffusion (SD) [4]、eDiff-I [5] 和 RAPHAEL [6] 等大型文本到图像扩散模型的成功。用户可以通过文本提示生成图像,利用强大的文本到图像扩散模型。但生成所需内容的图像并不容易,因为这通常需要复杂的提示工程 [7]。此外,文本在表达复杂场景或概念时并不十分有效,这可能成为内容创作的障碍。考虑到文本提示的这些局限性,我们可能会问,是否可以使用其他类型的提示来生成图像。一个自然的选择是使用图像提示,因为图像相较于文本能表达更多的内容和细节,正如常言道:“一图胜千言”。DALL-E 2 [2] 首次尝试支持图像提示,其中扩散模型是基于图像嵌入而不是文本嵌入进行条件生成,并且需要一个先验模型来实现文本到图像的能力。然而,大多数现有的文本到图像扩散模型仍然以文本为条件生成图像,例如,流行的SD模型就是基于从冻结的CLIP [8] 文本编码器中提取的文本特征进行条件生成。那么,是否可以在这些文本到图像扩散模型中支持图像提示呢?我们的工作旨在通过一种简单的方式,为这些文本到图像扩散模型实现图像提示功能。
先前的工作,如SD图像变体2和Stable unCLIP3,已经证明了直接在图像嵌入上微调文本条件的扩散模型,能够实现图像提示功能。然而,这种方法的缺点显而易见。首先,它消除了原始模型通过文本生成图像的能力,而且这种微调通常需要大量的计算资源。其次,微调后的模型通常不可复用,因为图像提示能力无法直接迁移到从相同基础文本到图像模型微调的其他自定义模型。此外,新的模型通常与现有的结构控制工具(如ControlNet [9])不兼容,这对下游应用提出了重大挑战。由于微调的缺点,一些研究 [10] 选择用图像编码器替代文本编码器,从而避免了对扩散模型进行微调。虽然这种方法简单且有效,但仍然存在一些缺点。首先,它仅支持图像提示,无法同时使用文本和图像提示来生成图像。其次,单纯微调图像编码器往往不足以保证图像质量,并可能导致泛化问题。
本研究的目标是探讨是否可以在不修改原始文本到图像模型的情况下实现图像提示功能。幸运的是,之前的研究为此提供了鼓舞人心的线索。近年来,在可控图像生成方面的进展,例如ControlNet [9] 和 T2I-adapter [11],已经证明可以通过向现有的文本到图像扩散模型中插入一个额外的网络来有效地引导图像生成。大多数研究聚焦于使用额外的结构控制(如用户绘制的草图、深度图、语义分割图等)来进行图像生成。此外,也有通过简单的适配器(如T2I-adapter [11] 的风格适配器和Uni-ControlNet [12] 的全局控制器)实现使用参考图像提供的风格或内容进行图像生成。为了实现这一点,通过CLIP图像编码器提取的图像特征会通过可训练网络映射到新的特征空间,然后与文本特征拼接。通过替换原始文本特征,将合并后的特征送入扩散模型的UNet中以引导图像生成。这些适配器可以视为实现图像提示的一种方式,但生成的图像与提示图像的匹配程度通常较低。结果往往不如完全微调的图像提示模型,更不用说从头训练的模型了。
我们认为,上述方法的主要问题在于文本到图像扩散模型中的跨注意力模块。预训练扩散模型中跨注意力层的键值投影权重是针对文本特征进行训练的。因此,将图像特征和文本特征合并到跨注意力层中,仅完成了图像特征与文本特征的对齐,但这可能会遗漏一些图像特有的信息,最终导致生成的图像仅能进行粗粒度的可控生成(例如,图像风格)而无法精确生成。
为此,我们提出了一种更有效的图像提示适配器,称为IP-Adapter,旨在避免之前方法的缺点。具体而言,IP-Adapter采用了解耦的跨注意力机制,分别处理文本特征和图像特征。对于扩散模型的每个跨注意力层,我们添加了一个仅用于图像特征的额外跨注意力层。在训练阶段,我们只训练新的跨注意力层的参数,而保持原始UNet模型冻结。我们提出的适配器轻量且高效:仅有2200万参数的IP-Adapter,在生成性能上与完全微调的图像提示模型相当,甚至更好。更重要的是,IP-Adapter展现了出色的泛化能力,并且与文本提示兼容。通过我们提出的IP-Adapter,可以轻松实现各种图像生成任务,如图1所示。
我们的贡献如下:
- 我们提出了IP-Adapter,一种轻量级的图像提示适配方法,采用了解耦的跨注意力策略,适用于现有的文本到图像扩散模型。定量和定性实验结果表明,约2200万参数的IP-Adapter在图像提示生成任务中的表现,甚至可以超越完全微调的模型。
- 我们的IP-Adapter是可复用且灵活的。通过在基础扩散模型上训练的IP-Adapter,可以推广到从相同基础扩散模型微调的其他自定义模型。此外,IP-Adapter兼容其他可控适配器,如ControlNet,能够轻松地将图像提示与结构控制结合使用。
- 由于采用了解耦的跨注意力策略,图像提示能够与文本提示兼容,从而实现多模态图像生成。
2、相关工作
2.1 文本到图像扩散模型
大规模的文本到图像模型主要分为两类:自回归模型和扩散模型。早期的工作,如DALL·E [13]、CogView [14, 15] 和 Make-A-Scene [16],属于自回归模型。对于自回归模型,像VQ-VAE [17] 这样的图像标记器被用来将图像转换为标记,然后通过条件于文本标记的自回归转换器 [18] 来预测图像标记。然而,自回归模型通常需要大量的参数和计算资源来生成高质量的图像,如在Parti [19]中所见。
最近,扩散模型(DMs)[20, 21, 22, 23] 出现,并成为文本到图像生成的新一代最先进模型。作为先驱,
GLIDE使用了一个级联的扩散架构,拥有一个3.5B的文本条件扩散模型,分辨率为64×64,以及一个1.5B的文本条件上采样扩散模型,分辨率为256×256。
DALL·E 2采用了基于图像嵌入的扩散模型,并通过一个先验模型来生成图像嵌入,支持图像提示。
为了增强文本理解,Imagen采用了T5 [24],一个大型的语言模型,作为扩散模型的文本编码器。
Re-Imagen [25]利用检索的信息来提高生成图像的真实度,特别是对于稀有或未见过的实体。
SD基于潜在扩散模型[4],该模型在潜在空间而非像素空间中操作,允许SD生成高分辨率图像,且只需使用扩散模型。
为了提高文本对齐,eDiff-I设计了一个由多个扩散模型组成的集成方法,利用包括T5文本、CLIP文本和CLIP图像嵌入的多个条件。
Versatile Diffusion [26]提出了一个统一的多流扩散框架,支持文本到图像、图像到文本以及多种变体。
为了实现可控的图像合成,Composer [27]提出了一个联合微调策略,将各种条件注入到预训练的扩散模型中,条件包括图像嵌入。
RAPHAEL引入了一个专家混合(MoEs)策略[28, 29],以增强图像质量和美学效果。
DALL·E 2的一个吸引特性是它不仅支持文本提示生成图像,还能通过图像提示生成图像变体。因此,也有一些研究探索如何支持图像提示,特别是在原本只基于文本的文本到图像扩散模型中。
SDImage Variations模型通过对修改过的SD模型进行微调,将文本特征替换为来自CLIP图像编码器的图像嵌入。
Stable unCLIP也是对SD进行微调的模型,其中将图像嵌入添加到了时间嵌入中。虽然微调模型可以成功使用图像提示生成图像,但它通常需要较大的训练成本,并且无法与现有工具(如ControlNet [9])兼容。
2.2 大模型的适配器
由于微调大型预训练模型效率低下,一种替代方法是使用适配器,即在原模型中加入少量可训练参数,而冻结原模型的其余部分。适配器在NLP领域已广泛使用 [30],并且最近也被应用于为大型语言模型实现视觉-语言理解 [31, 32, 33, 34, 35]。随着最近文本到图像模型的流行,适配器也被用来为文本到图像模型提供额外的控制能力。ControlNet [9]首次证明,适配器可以与预训练的文本到图像扩散模型一起训练,以学习任务特定的输入条件,例如Canny边缘。几乎同时,T2I-adapter [11]使用一个简单且轻量的适配器,在生成的图像中实现细粒度的颜色和结构控制。为了降低微调成本,Uni-ControlNet [12]提出了一种多尺度条件注入策略,学习适配器以适应各种局部控制。
除了用于结构控制的适配器外,也有一些工作致力于基于提供的图像的内容和风格进行可控生成。ControlNet Shuffle 1通过重组图像进行训练,可以通过用户提供的图像来引导生成。此外,ControlNet Reference-only 1通过简单的特征注入实现了基于图像变体的生成。在T2I-adapter的更新版本中,设计了一个风格适配器,通过附加从CLIP图像编码器提取的图像特征到文本特征中,控制生成图像的风格。Uni-ControlNet的全局控制适配器还将CLIP图像编码器的图像嵌入投影到条件嵌入中,并将其与原始文本嵌入拼接,以引导使用参考图像的风格和内容进行生成。SeeCoder [10]提出了一种语义上下文编码器,替换原始文本编码器,生成图像变体。
虽然上述适配器非常轻量,但它们的性能通常无法与微调后的图像提示模型相比,更别说从零开始训练的模型了。在本研究中,我们引入了一种解耦的交叉注意机制,以实现更有效的图像提示适配器。
3、方法
3.1 前置知识
扩散模型是一类生成模型,包含两个过程:扩散过程(也称为前向过程),该过程通过固定的马尔可夫链在T步中逐渐向数据添加高斯噪声;去噪过程则利用可学习的模型从高斯噪声中生成样本。扩散模型也可以条件化于其他输入,比如在文本到图像扩散模型中,条件是文本。通常,扩散模型的训练目标,记作ϵθ,即预测噪声,定义为变分界限的简化变体:
其中, 表示真实数据,带有额外条件 c,
表示扩散过程的时间步,
是第 t 步的噪声数据,
和
是与 t 相关的预定义函数,决定了扩散过程。
一旦模型 训练完成,就可以通过迭代的方式从随机噪声生成图像。通常,在推理阶段,使用快速采样器,如DDIM [21]、PNDM [36] 和 DPM-Solver [37, 38],来加速生成过程。
对于条件扩散模型,分类器引导 [23] 是一种直接的技术,通过使用单独训练的分类器的梯度,来平衡图像的保真度和样本的多样性。为了消除独立训练分类器的需求,通常采用无分类器引导 [39] 作为替代方法。在这种方法中,条件和无条件扩散模型通过在训练期间随机丢弃 c 来共同训练。在采样阶段,预测的噪声是基于条件模型 和无条件模型
的预测计算得出的:
其中, 通常被称为引导尺度或引导权重,是一个调整与条件 c 对齐的标量值。对于文本到图像扩散模型,分类器自由引导在增强生成样本的图像-文本对齐方面发挥着至关重要的作用。
在我们的研究中,我们利用开源的SD模型作为我们的基础模型,来实现IP-Adapter。SD是一个潜在扩散模型,条件化于从冻结的CLIP文本编码器中提取的文本特征。该扩散模型的架构基于UNet [40],并带有注意力层。与基于像素的扩散模型(如Imagen)相比,SD更高效,因为它是在预训练的自动编码器模型的潜在空间上构建的。
3.2 图像提示适配器
在本文中,图像提示适配器旨在使预训练的文本到图像扩散模型能够使用图像提示生成图像。如前所述,目前的适配器难以匹配微调的图像提示模型或从头训练的模型的性能。其主要原因是图像特征不能有效地嵌入到预训练模型中。大多数方法只是简单地将拼接的特征输入到冻结的交叉注意力层中,这阻止了扩散模型捕获来自图像提示的细粒度特征。为了解决这个问题,我们提出了一种解耦的交叉注意力策略,其中图像特征通过新添加的交叉注意力层进行嵌入。我们提出的IP-Adapter的整体架构如图2所示。IP-Adapter包括两个部分:一个图像编码器,用于从图像提示中提取图像特征,和通过解耦交叉注意力将图像特征嵌入到预训练文本到图像扩散模型中的适配模块。
3.2.1 图像编码器
与大多数方法类似,我们使用预训练的CLIP图像编码器模型从图像提示中提取图像特征。CLIP模型是一个多模态模型,通过对大规模包含图像-文本对的数据集进行对比学习进行训练。我们利用CLIP图像编码器的全局图像嵌入,它与图像标题高度对齐,可以表示图像的丰富内容和风格。在训练阶段,CLIP图像编码器被冻结。
为了有效地解构全局图像嵌入,我们使用一个小型的可训练投影网络,将图像嵌入投影为一个长度为N(本研究中N=4)的特征序列,图像特征的维度与预训练扩散模型中的文本特征维度相同。本研究中使用的投影网络由一个线性层和一个层归一化(Layer Normalization)[41]组成。
3.2.2 解耦交叉注意力
图像特征通过适配模块和解耦交叉注意力被集成到预训练的UNet模型中。在原始SD模型中,来自CLIP文本编码器的文本特征通过交叉注意力层输入到UNet模型中。给定查询特征 和文本特征
,交叉注意力的输出
可以通过以下方程定义:
其中, 是注意力操作中的查询、键和值矩阵,
是可训练线性投影层的权重矩阵。
插入图像特征的直接方法是将图像特征与文本特征拼接,然后输入交叉注意力层。然而,我们发现这种方法效果不够理想。因此,我们提出了一种解耦的交叉注意力机制,其中文本特征和图像特征的交叉注意力层是分开的。具体来说,我们为原始UNet模型中的每个交叉注意力层添加一个新的交叉注意力层,以插入图像特征。给定图像特征 ,新交叉注意力的输出
可以按以下方式计算:
其中,,是来自图像特征的查询、键和值矩阵,
和
是相应的权重矩阵。需要注意的是,我们使用与文本交叉注意力相同的查询进行图像交叉注意力。因此,我们只需为每个交叉注意力层添加两个参数
和
。
为了加速收敛, 和
被初始化为
和
。然后,我们将图像交叉注意力的输出与文本交叉注意力的输出相加。因此,解耦交叉注意力的最终公式如下所示:
其中,。
由于我们冻结了原始UNet模型,在上述解耦交叉注意力中,只有 和
是可训练的。
3.2.3 训练与推理
在训练过程中,我们仅优化IP-Adapter,同时保持预训练的扩散模型的参数固定。IP-Adapter也在包含图像-文本对的数据集上进行训练,训练目标与原始SD模型相同:
在训练阶段,我们还会随机丢弃图像条件,以便在推理阶段实现无分类器引导:
在这里,我们简单地将 CLIP 图像嵌入置零,若图像条件被丢弃。
由于文本交叉注意力和图像交叉注意力是解耦的,我们还可以在推理阶段调整图像条件的权重:
其中, 是权重因子,当
时,模型变为原始的文本到图像扩散模型。
4、实验
4.1 实验设置
4.1.1 训练数据
为了训练IP-Adapter,我们构建了一个包含约1000万个文本-图像对的多模态数据集,数据来自两个开放数据集——LAION-2B [42] 和 COYO-700M [43]。
4.1.2 实现细节
我们的实验基于SD v1.5,并使用OpenCLIP ViT-H/14 [44] 作为图像编码器。SD模型有16个交叉注意力层,我们为每个交叉注意力层添加了一个新的图像交叉注意力层。我们的IP-Adapter总共可训练的参数,包括投影网络和适配模块,共计约2200万参数,使得IP-Adapter非常轻量。我们使用HuggingFace diffusers库 [45] 实现了IP-Adapter,并使用DeepSpeed ZeRO-2 [13] 来加速训练。IP-Adapter在单机8个V100 GPU上训练,训练步骤为1M步,每个GPU的批大小为8。我们使用AdamW优化器 [46],学习率为0.0001,权重衰减为0.01。在训练过程中,我们将图像的最短边尺寸调整为512,并进行中心裁剪,得到512×512的分辨率。为了启用无分类器引导,我们使用0.05的概率随机丢弃文本和图像,并且同时以0.05的概率丢弃文本和图像。在推理阶段,我们采用DDIM采样器,步数设置为50,指导比例设置为7.5。当仅使用图像提示时,我们将文本提示设置为空,λ设置为1.0。
4.2 对比实验
为了展示我们方法的有效性,我们将IP-Adapter与其他现有的图像提示生成方法进行比较。我们选择了三种类型的方法:从零开始训练,微调的文本到图像模型,以及适配器。对于从零开始训练的方法,我们选择了3个开源模型:open unCLIP1(DALL-E 2的重现版),Kandinsky-2-1 2(DALL-E 2和潜在扩散的混合模型)和Versatile Diffusion [26]。对于微调的模型,我们选择了SD图像变化和SD unCLIP。对于适配器,我们将我们的IP-Adapter与T2I-Adapter的风格适配器,Uni-ControlNet的全局控制器,ControlNet Shuffle,ControlNet Reference-only和SeeCoder进行比较。
4.2.1 定量比较
我们使用COCO2017数据集的验证集 [47],该集包含5000个图像及其描述,用于定量评估。为了公平比较,我们为数据集中的每个样本生成4个基于图像提示的图像,最终生成每种方法共20,000个图像。我们使用两个指标来评估生成图像与图像提示的对齐度:
- CLIP-I:生成图像的CLIP图像嵌入与图像提示之间的相似度。
- CLIP-T:生成图像与图像提示描述的CLIPScore [48]。
我们计算这两个指标的平均值,使用CLIP ViT-L/141模型。由于开源的SeeCoder使用了额外的结构控制,而ControlNet Reference-only是基于Web框架发布的,因此我们只进行了定性评估。比较结果如表1所示。可以看出,我们的方法在效果上明显优于其他适配器,而且在很多情况下,IP-Adapter的表现与微调模型相当,甚至更好,且仅有2200万参数。
4.2.2 定性比较
我们还选择了各种不同风格的图像来定性评估我们的方法。由于隐私原因,实际人物图像是合成的。对于SeeCoder,我们还使用了带有ControlNet的涂鸦控制。对于ControlNet Reference-only,我们也输入了BLIP描述模型 [49] 生成的描述。对于每个图像提示,我们随机生成4个样本,并为每种方法选择最佳样本,以确保公平性。如图3所示,所提出的IP-Adapter在图像质量和与参考图像的对齐度上优于其他适配器。此外,我们的方法在大多数情况下略优于微调的模型,并且在许多情况下,与从零开始训练的模型相当。
总结来说,所提出的IP-Adapter是一种轻量有效的方式,可以为预训练的文本到图像扩散模型实现基于图像提示的生成能力。
4.3 更多结果
尽管所提出的IP-Adapter旨在实现图像提示生成,但其强大的泛化能力使其适用范围更广。如表1所示,我们的IP-Adapter不仅可以用于自定义模型,还兼容现有的可控工具和文本提示。在这一部分,我们展示了IP-Adapter的更多结果。
4.3.1 可泛化到自定义模型
由于我们在训练阶段冻结了原始扩散模型,IP-Adapter也可以像其他适配器一样泛化到基于SD v1.5微调的自定义模型(例如ControlNet)。换句话说,一旦训练完成,IP-Adapter可以应用于HuggingFace模型库中的社区模型:Realistic Vision V4.0、Anything v4和ReV Animated。这些模型都是基于SD v1.5微调的。
如图4所示,IP-Adapter在这些社区模型上表现良好。此外,生成的图像可以混合社区模型的风格,例如,当使用动漫风格的模型Anything v4时,我们可以生成动漫风格的图像。有趣的是,我们的适配器还可以直接应用于SD v1.4,因为SD v1.5是在SD v1.4基础上微调的,训练步骤更多。
4.3.2 结构控制
对于文本到图像的扩散模型,一个流行的应用是我们可以创建具有附加结构控制的图像。由于我们的适配器没有改变原始网络结构,我们发现IP-Adapter完全兼容现有的可控工具。因此,我们还可以生成带有图像提示和附加条件的可控图像。在这里,我们将IP-Adapter与两个现有的可控工具——ControlNet和T2I-Adapter结合使用。图5展示了使用图像提示和不同结构控制生成的样本:前两行样本是通过ControlNet模型生成的,而最后一行是通过T2I-Adapter生成的。我们的适配器与这些工具结合使用,可以在无需微调的情况下生成更具可控性的图像。
我们还比较了我们的适配器与其他适配器在结构控制生成上的表现,结果如图6所示。对于T2I-Adapter和Uni-ControlNet,我们使用了默认的可组合多条件。对于SeeCoder和我们的IP-Adapter,我们使用了ControlNet来实现结构控制。对于ControlNet Shuffle和ControlNet Reference-only,我们使用了多ControlNet。可以看到,我们的方法不仅在图像质量上超越了其他方法,还能生成与参考图像更为对齐的图像。
4.3.3 图像到图像与图像修复
除了文本到图像生成外,文本到图像的扩散模型还可以通过SDEdit [50] 实现图像引导的图像到图像和图像修复。如图7所示,我们只需将文本提示替换为图像提示,即可获得图像引导的图像到图像生成和图像修复。
4.3.4 多模态提示
对于完全微调的图像提示模型,原始的文本到图像能力几乎丧失。然而,通过所提出的IP-Adapter,我们可以生成包含图像提示和文本提示的多模态提示图像。我们发现这种能力在社区模型上表现尤为出色。在推理阶段使用多模态提示时,我们调整 λ 来平衡图像提示和文本提示。图8展示了使用Realistic Vision V4.0模型的多模态提示结果。可以看出,我们可以使用附加的文本提示在图像提示的基础上生成更多样化的图像。例如,我们可以通过简单的文本描述来编辑属性和改变场景。
我们还将我们的IP-Adapter与其他方法(如Versatile Diffusion、BLIP Diffusion [31]、Uni-ControlNet、T2I-Adapter、ControlNet Shuffle、ControlNet Reference-only)进行了比较,结果如图9所示。与其他现有方法相比,我们的方法在图像质量和与多模态提示的对齐度上均能生成优越的结果。
4.4 消融实验
4.4.1 分离交叉注意力的重要性
为了验证分离交叉注意力策略的有效性,我们还将其与不使用分离交叉注意力的简单适配器进行了比较:图像特征与文本特征进行拼接后,嵌入到预训练的交叉注意力层中。结果表明,分离交叉注意力显著提高了性能,如表2所示。这表明分离交叉注意力可以为图像提示生成提供更加定制化的效果。
4.4.2 适配器和微调的比较
如前所述,IP-Adapter通过冻结图像生成模型并仅训练适配器来进行训练。为了进一步验证适配器的方法优于微调方法,我们将IP-Adapter与微调模型进行了对比,具体来说是在COCO2017验证集上的微调。结果显示,在不进行微调的情况下,IP-Adapter不仅能够生成高质量的图像,而且效果接近微调模型,同时保持了轻量级的优势。