来源:ICCV 2023 作者:Mingdeng Cao 等 论文题目:MasaCtrl: Tuning-Free Mutual Self-Attention Control for Consistent Image Synthesis and Editing 论文链接:https://arxiv.org/pdf/2304.08465.pdf 项目主页:https://github.com/TencentARC/MasaCtrl 内容整理:汪奕文 在本文中提出了一种无需微调的方法 MasaCtrl,可同时实现一致的图像生成和复杂的非刚性图像编辑。具体来说,MasaCtrl 将扩散模型中现有的自注意力转换为互自注意力,从而可以从源图像中查询相关的局部内容和纹理,以确保一致性。为了进一步缓解前景和背景之间的查询混淆,本文提出了一种mask 引导的互自注意策略,mask 可以很容易地从交叉注意图中提取出来。大量实验表明,所提出的 MasaCtrl 可以在一致图像生成和复杂的非刚性真实图像编辑中产生令人印象深刻的结果。
目录
- 引言
- Stable Diffusion 的注意力机制
- 无需微调的互自注意力控制
- 互自注意力
- Mask 引导
- 与可控扩散模型结合
- 实验
- 实验结果
- 消融性实验
引言
尽管在大规模文本到图像的生成和以文本为条件的图像编辑方面取得了成功,但现有方法仍难以产生一致的生成和编辑结果。在文本到图像的生成过程中,我们通常需要生成同一物体/人物的多幅图像,但这些图像具有不同的视角或复杂的非刚性变化(如姿势变化)。然而,这一要求极具挑战性。即使我们固定随机输入噪声并使用非常相似的提示(例如,‘a sitting cat’ vs. ‘a laying cat’),生成的两幅图像在结构和特征上也大相径庭。
图 1
对于以文本为条件的图像编辑,现有的方法在保持输入结构和场景布局不变的情况下,在图像平移、风格转换和外观替换方面取得了令人印象深刻的编辑效果。但是,这些方法通常无法在保持整体纹理和特征的同时改变姿态或视图,导致编辑结果不一致。
本文的主要贡献如下:
- 提出了一种无需微调的方法 MasaCtrl,可同时实现一致的图像合成和复杂的非刚性图像编辑。
- 提出了一种具有精细设计的有效的互自注意力机制,在保持特征、纹理和身份的同时,改变姿势、视图、结构和非刚性差异。
- 为了减少前景和背景之间的查询混淆,提出了一种 mask 引导的互自注意力,mask 可以很容易地从交叉注意力中计算出来。
- 实验结果表明,提出的 MasaCtrl 在一致图像生成和复杂非刚性真实图像编辑方面都非常有效。
图 2
Stable Diffusion 的注意力机制
SD 模型中的去噪 U-Net
由一系列基本块组成,每个基本块包含一个残差块、一个自注意力块和一个交叉注意力块。在去噪步骤
,来自上一个
-th 基本块的特征首先通过残差块生成中间特征
,然后由自注意力层进行重组,并由下面的交叉注意层接收来自给定文本提示
的文本信息。注意机制可表述如下:
其中,
是根据空间特征投射的 query 特征,
,
是根据空间特征(在自注意力层中)或文本嵌入(在交叉注意力层中)投射的 key 和 value 特征。
是注意力图。
无需微调的互自注意力控制
给定源图像
和相应的文本提示
,我们的目标是合成符合目标编辑文本提示
(直接根据
修改)的目标图像
。编辑后的目标图像
是在
的基础上进行空间编辑的,应保留
中的对象内容(如纹理和特征)。
为此,我们提出了 MasaCtrl,它将 SD 中的自注意力机制调整为交叉注意力机制,以从源图像中查询语义相似的内容。因此,我们可以在去噪过程中利用修改后的自注意力机制查询
中的内容,从而合成目标图像
。这是由于图像布局是在早期去噪步骤中形成的;并且自注意力层中的编码 query 特征在语义上是相似的,因此可以从另一个图像中查询内容信息。
图 3
输入源图像
可以是真实图像,也可以是由 SD 以文本提示
生成的图像。在合成目标图像
的每个去噪步骤
中,我们通过以下方式来组合自注意力的输入:1)保持当前查询特征
不变;2)在合成源图像
的过程中从自注意力层获取 key
和 value
。
同时,编辑后的图像经常会出现前景物体与背景混淆的问题。因此,本文提出了一种由交叉注意机制获得的 mask 引导的互自注意力策略。对象的 mask 是根据与前景对象相关的文本标记的交叉注意图自动生成的。
此外,由于 SD 的内在限制,编辑后的提示
可能无法生成理想的空间布局,MasaCtrl 可以很容易地集成到现有的可控图像合成方法(例如 T2IAdapter 和 ControlNet)中,以实现更忠实的非刚性图像编辑。
图 4
互自注意力
为了从源图像
中获取图像内容,我们提出了互自注意力模型,它将 T2I 模型中的自注意力转换为 "交叉注意力",交叉操作发生在两个相关扩散过程的自注意力中。
具体来说,在去噪步骤
和第
层,
被定义为自注意力层中的投影查询特征
,而内容特征则是重建源图像
过程中来自相应自注意力层的key
和 value
。
图 5
然而,在所有去噪步骤中对所有层进行这样的注意力控制会导致图像
与重建图像
几乎相同。这是由在早期步骤中进行自我注意力控制会破坏目标图像的布局形成。在过早的步骤中,目标图像的布局尚未形成,我们进一步观察到 U-Net 浅层的 query 无法获得与修改后的提示相对应的清晰布局和结构(如图 6 所示)。因此,我们无法获得所需的空间布局图像。
图 6
因此,我们建议在经过几个去噪步骤后,仅在 U-Net 的解码器部分控制互子注意力,因为此时已形成清晰的目标图像布局和语义相似的特征。可以通过编辑提示
将原始布局变为目标布局,并通过适当的启动去噪步骤
和层
进行合成和编辑,保持主要对象不变。
其中,
和
分别为开始注意控制的时间步长和图层索引。在早期步骤中,可以根据目标提示
大致生成对象的构成和形状,然后通过互自注意机制查询源图像
中的内容信息,以填充生成的
布局。
Mask 引导
如果对象和背景过于相似,上述编辑方法就会失败。为了解决这个问题,一种可行的方法是将图像分割成前景和背景两部分,然后只查询相应部分的内容。与提示 token 相关的交叉注意力图包含了大部分形状和结构信息。因此,利用语义交叉注意力图创建一个 mask 来区分源图像
和目标图像
的前景和背景。
图 7
具体来说,在步骤
,首先分别用文本提示
和目标文本提示
通过 U-Net 生成中间交叉注意图。然后,我们以
的空间分辨率对所有的交叉注意力图进行平均。得到的交叉注意图表示为
,其中
是文本 token 的数量。我们分别用
和
表示
和
中为前景对象的 mask。因此,就可以限制
中的对象只查询
中对象区域的内容信息:
其中,
是最终的注意力输出。对象区域和背景区域查询的是相应限制区域的内容信息,而不是所有特征。
与可控扩散模型结合
本方法可以很容易地集成到现有的可控图像合成方法(如 T2I-Adapter 和 ControlNet)中,以实现更忠实的非刚性图像合成和编辑。这些方法能对原始 SD 进行更可控的图像合成,无法合成参考源图像中具有相似内容的图像。因此,可以将本方法集成到这些模型中,从而生成更加连贯的图像,而无需微调 SD 或优化文本嵌入。
实验
实验结果
通过直接修改文本提示,本方法可以合成内容一致的图像。这些合成图像包含的内容(前景物体和背景)与生成的源图像高度相似,且高度符合目标文本提示
。
图 8
我们的方法在真实图像编辑中也取得了很好的效果。我们可以看到,用该方法编辑的图像中的内容(前景物体和背景)与输入图像非常相似。这些结果证明了本方法的有效性。
图 9
消融性实验
进一步分析了去噪过程中不同起始步骤和去噪 U-Net 中不同层级的控制策略。
图 10
在起始阶段执行互自注意力只能合成与源图像完全相同的图像,传递所有源图像内容,并与目标提示的布局保持一致。随着步骤的增加,合成的理想图像可以保持目标提示的布局和源图像的内容。而图像则会逐渐失去源图像的内容,最终变成没有互自我注意控制的合成图像。
图 11
在所有层之间执行控制只能生成与源图像相同的图像。在低分辨率层执行控制时,无法保留源图像内容和目标布局。而在高分辨率层中,目标布局可以保持不变,源图像内容只能在解码器部分进行控制时进行转换。因此,所提出的方法在 U-Net 的解码器部分经过几个去噪步骤后执行控制。