当前位置:   article > 正文

(2023|ICLR,交叉注意力,扩散,注意力图替换)使用交叉注意力控制进行提示到提示图像编辑_条件扩散代码 注意力

条件扩散代码 注意力

Prompt-to-Prompt Image Editing with Cross Attention Control

公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群)

目录

0. 摘要

3. 方法

3.1 文本条件扩散模型中的交叉注意力

3.2 控制交叉注意力

4. 应用 

5. 结论


0. 摘要

最近的大规模文本驱动合成模型引起了很多关注,这要归功于它们生成高度多样化图像的显著能力,这些图像遵循给定的文本提示。这种基于文本的合成方法对那些习惯用语言描述意图的人类特别具有吸引力。因此,将基于文本的图像合成自然而然地扩展到基于文本的图像编辑。对于这些生成模型来说,编辑是具有挑战性的,因为编辑技术的固有属性是保留大部分原始图像,而在基于文本的模型中,甚至是对文本提示进行小的修改通常会导致完全不同的结果。当前的先进方法通过要求用户提供一个空间掩码来定位编辑,从而忽略了掩码区域内的原始结构和内容。在本文中,我们追求一种直观的基于提示的编辑框架,其中编辑仅由文本控制。为此,我们深入分析了一个文本条件模型,并观察到交叉注意力层是控制图像的空间布局与提示中每个单词之间关系的关键。基于这一观察,我们提出了几种仅通过编辑文本提示来监控图像合成的应用。这包括通过替换一个单词进行局部编辑,通过添加规范进行全局编辑,甚至精细地控制一个单词在图像中的反映程度。我们在各种图像和提示上呈现了我们的结果,展示了高质量的合成和对编辑提示的忠实度。

3. 方法

设 I 是由文本引导的扩散模型 [38] 使用文本提示 P 和随机种子 s 生成的图像。我们的目标是仅通过编辑的提示 P* 来编辑输入图像,从而得到编辑后的图像 I*。例如,考虑从提示“我的新自行车”生成的图像,并假设用户想要编辑自行车的颜色、材料,甚至用滑板车替换,同时保留原始图像的外观和结构。用户的直观界面是直接更改文本提示,进一步描述自行车的外观,或者用另一个词替换它。与之前的工作不同,我们希望避免依赖于任何用户定义的掩码来帮助或指示编辑的位置。一种简单但不成功的尝试是固定内部随机性并使用编辑后的文本提示重新生成。不幸的是,正如图 2所示,这导致了一幅完全不同的图像,具有不同的结构和构图。

我们的关键观察是生成图像的结构和外观不仅取决于随机种子,还取决于像素通过扩散过程与文本嵌入的交互。通过修改交叉注意力层中像素与文本交互,我们提供了提示到提示的图像编辑能力。更具体地说,注入输入图像 I 的交叉注意力图使我们能够保留原始构图和结构。在第 3.1 节中,我们回顾了如何使用交叉注意力,而在第 3.2 节中,我们描述了如何利用交叉注意力进行编辑。有关扩散模型的额外背景,请参阅附录 A。

3.1 文本条件扩散模型中的交叉注意力

我们使用 Imagen [38] 文本引导合成模型作为骨干。由于构图和几何形状主要在 64 x 64 分辨率确定,我们只调整文本到图像扩散模型,使用原有的超分辨率过程。回想一下,每个扩散步骤 t 使用 U 型网络 [37] 从嘈杂图像 z_t 和文本嵌入 Ψ(P) 预测噪声 ε。在最后一步,这个过程产生生成的图像 I = z_0。最重要的是,两种模态之间的交互发生在噪声预测期间,其中视觉和文本特征的嵌入使用交叉注意力层融合,产生每个文本标记的空间注意力图。

更正式地,如图 3(Top),通过学习的线性投影 Q,K,V,将嘈杂图像 Φ(z_t) 的深层空间特征投影到 query 矩阵 Q = ℓ_Q(Φ(z_t)),文本嵌入投影到 key 矩阵 K = ℓ_K(Ψ(P)) 和 value 矩阵 V = ℓ_V(Ψ(P))。然后,通过交叉注意力层产生每个文本标记的空间注意力图:

其中,M_ij 定义了像素 i 上第 j 个标记的 value 的权重,d 是 key 和 query 的潜在投影维度。最后,交叉注意力输出定义为 ^Φ(z_t) = MV,然后用于更新空间特征 Φ(z_t)。

直观地说,交叉注意力输出 MV 是 value V 的加权平均,其中权重是注意力图 M,与 Q 和 K 之间的相似性相关。在实践中,为了增加它们的表现力,使用多头注意力 [44] 并行使用,然后将结果串联并通过一个学习的线性层传递以获得最终输出。

Imagen [38] 类似于 GLIDE [28],在每个扩散步骤的噪声预测中(见附录 A.2)通过两种类型的注意力层对文本提示进行条件化:i)交叉注意力层。ii)混合注意力,通过简单地将文本嵌入序列连接到每个自注意层的 key-value 对,既起到自注意力又起到交叉注意力作用。在本文的其余部分中,我们将两者都称为交叉注意力,因为我们的方法只介入混合注意力的交叉注意力部分。也就是说,在混合注意力模块中,仅修改了最后的通道,这些通道引用文本标记。

3.2 控制交叉注意力

我们回到我们的关键观察——生成图像的空间布局和几何形状取决于交叉注意力图。像素与文本之间的这种交互在图 4 中进行了说明,其中绘制了平均注意力图。可以看到,像素更容易被描述它们的单词所吸引,例如,熊的像素与单词 “bear” 相关。请注意,为了可视化目的进行了平均,我们的方法中每个头部的注意力图是分开保持的。有趣的是,我们可以看到图像的结构在扩散过程的早期步骤中已经确定。

由于注意力反映了整体构图,我们可以将从使用原始提示 P 生成的注意力图 M 注入到使用修改后的提示 P* 进行的第二代生成中。这允许合成一个编辑后的图像 I*,不仅根据编辑后的提示进行了操纵,而且保留了输入图像 I 的结构。这个例子是导致不同类型直观编辑的广泛基于注意力的操作的一个具体实例。因此,我们首先提出一个通用框架,然后详细介绍具体的编辑操作。

设 DM(z_t, P, t, s)是扩散过程的单个步骤 t 的计算,输出嘈杂图像 z_(t-1) 和注意力图 M_t(如果不使用则省略)。我们用

表示在扩散步骤中,我们用额外给定的图 ^M 覆盖注意力图 M,但保留来自给定提示的 value V。我们还用 M*_t 表示使用编辑后的提示 P* 生成的注意力图。最后,我们定义 Edit(M_t, M*_t, t) 为一个通用的编辑函数,其输入是生成过程中原始图像和编辑图像的第 t 个注意力图。 我们控制图像生成的通用算法包括同时对两个提示执行迭代扩散过程,在每个步骤中根据所需的编辑任务应用基于注意力的操作。我们注意到,为了使上述方法起作用,必须固定内部随机性。这是由于扩散模型的性质,即使对于相同的提示,两个随机种子也会产生截然不同的输出。形式上,我们的通用算法是: 

请注意,我们也可以将由提示 P 和随机种子 s 生成的图像 I 定义为额外的输入。然而,算法仍然保持不变。有关编辑真实图像,请参见第 4 节。此外,请注意我们可以通过在扩散前向函数内应用编辑函数来跳过第 7 行的前向调用。此外,扩散步骤可以同时用于相同 batch 中的 z_(t-1) 和 z*_t,因此与扩散模型的原始推断相比,只有一个步骤的额外开销。

我们现在转向处理特定的编辑操作,填补 Edit(M_t, M*_t, t) 函数的缺失定义。概述如图 3(底部)所示。

单词交换。在这种情况下,用户将原始提示的标记与其他标记交换,例如,P = “a big red bicycle”交换为 P* = “a big red car”。主要挑战是保留原始构图,同时解决新提示的内容。为此,我们将源图像的注意力图注入到使用修改后的提示生成的图像中。然而,提出的注意注入可能会过于约束几何形状,特别是涉及大型结构修改(例如 “car” 到 “bicycle”)时。为解决这个问题,我们提出了一种更柔和的注意力约束: 

其中 τ 是一个时间戳参数,确定注入应用到哪一步。请注意,构图是在扩散过程的早期步骤中确定的。因此,通过限制注入步骤,我们可以引导新生成图像的构图,同时允许适应新提示所需的几何自由度。在第 4 节提供了一个示例。对于我们的算法,另一个自然的松弛是为提示中的不同标记分配不同注入时间戳。如果两个单词使用不同数量的标记表示,可以使用对齐函数在必要时复制/平均映射,如下一段所述。

添加新短语。在另一种情境中,用户将新的标记添加到提示中,例如,P = “a castle next to a river” 添加到 P* = “children drawing of a castle next to a river”。为了保留共同的细节,我们仅在两个提示中的共同标记上应用注意力注入。形式上,我们使用一个对齐函数 A,它接收目标提示 P* 的标记索引并输出 P 中相应标记索引,如果没有匹配,则输出None。然后,编辑函数由以下公式给出:

请回忆一下,索引 i 对应于像素值,其中 j 对应于文本标记。同样,我们可以设置一个时间戳 τ 来控制注入的扩散步。这种类型的编辑能够实现各种各样的提示到提示的能力,如样式化、指定对象属性或全局操作,如第 4 节所示。

注意力重新加权。最后,用户可能希望加强或减弱每个标记影响生成图像的程度。例如,考虑提示P = “a fluffy red ball”,假设我们想使球更加蓬松或不那么蓬松。为了实现这种操作,我们使用参数c ∈ [-2, 2] 对分配的标记 j* 的注意力图进行缩放,从而产生更强烈/更弱的效果。其余的注意力图保持不变。即:

正如第 4 节中描述的那样,参数 c 允许对引发的效果进行精细而直观的控制。 

4. 应用 

5. 结论

在这项工作中,我们揭示了文本到图像扩散模型中交叉注意力层的强大能力。我们展示了这些高维层具有可解释的空间映射表示,这在将文本提示中的单词与合成图像的空间布局联系起来起着关键作用。基于这一观察,我们展示了如何通过直接控制合成图像中的属性来对提示进行各种操作,为局部和全局编辑等各种应用铺平了道路。这项工作是向用户提供简单直观的手段来编辑图像的第一步,利用了文本语义的强大功能。它使用户能够通过语义、文本、空间引导,每一步之后都展示出渐进的变化,而不是在每次文本操作之后从头开始生成所需的图像。

虽然我们通过仅更改文本提示演示了语义控制,但我们的技术仍然存在一些需要在后续工作中解决的限制。首先,当前的反演过程导致一些测试图像上可见的失真。此外,反演要求用户提供一个合适的提示。对于复杂的构图,这可能是具有挑战性的。请注意,对于文本引导的扩散模型的反演挑战是我们工作的一个正交努力,将在未来进行深入研究。其次,当前的注意力图分辨率较低,因为交叉注意力位于网络的瓶颈处。这限制了我们执行更精确的局部编辑的能力。为了缓解这一问题,我们建议在更高分辨率的层中也加入交叉注意力。由于这需要分析超出我们当前范围的训练过程,我们将其留给未来的工作。最后,我们认识到我们当前的方法无法用于在图像上空间移动现有对象,并且也将这种控制留给未来的工作。 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/368161
推荐阅读
相关标签
  

闽ICP备14008679号