![[图像编辑03] Prompt-to-Prompt](https://s2.loli.net/2025/03/18/qhPuZJTxwNfbDAm.jpg)
Table of Contents
Prompt-to-Prompt Image Editing with Cross Attention Control Link to Prompt-to-Prompt Image Editing with Cross Attention Control
From: ICLR2023
先给一个编辑的示例如下

Motivation Link to Motivation
文生图模型的随机性有2个来源:
扩散初始噪声的随机性,该随机性由随机种子决定;
Prompt。Prompt的不同会改变Unet层的cross-attention。
在文生图模型中,同样的seed+同样的prompt可以生成一样的图片,但是如果同样的seed+prompt轻微改动,则生成图片大相径庭。
示例如下:

关于为什么prompt轻微改动,则生成图片大相径庭,做一点解释如下,参考自该博客的图片:
首先回顾在cross-attention层,text embedding作为cross-attention的key和value,如下图所示(灰色的块表示mask)

假定当prompt的第二个token发生改变时,根据下图的计算流,可以看到整个attention score的数值都会发生改变。随着采样步长的增加,最终输出结果会偏离的越来越远.

通过对diffusion model网络内部的观察,作者发现生成图片的空间布局和几何形状都是由内部的cross-attention层的attention map决定(上图的attention)。下图是由prompt: “a furry bear watching a bird”生成的图片,我们分别看每一个token对应的attention map对应生成图片的相应位置。并在time step的早期这个对应关系就已形成。


Method Link to Method
既然cross-attention的attention map决定生成图片的结构信息,那我们维持原始的attention map即可。
算法如下:

在每一个时间步 分别计算原始 prompt 的 attention map 和新的 prompt 的 attention map ,并用特定的替换规则替换后再进行生成。
作者根据不同的编辑类型,设计了不同的替换方式

以下是3个不同的任务:
Word Swap
这个编辑类型是指将原始 prompt 中的某个 token 用新的 token 进行替换。 , 此时的替换规则是:
表示某一时间步。当时间步小于 时不做替换,否则用原始 prompt 的 attention map 做替换。(当两个词的长度不同时,可以对少的进行复制)引入 的目的是:有一些编辑对图像的几何改变会很大,可以通过引入控制时机 来缓和。
Adding a New Phrase
指的是在原始 prompt 新增一些 token。如, 。此时的替换规则是:
表示 visual token 的索引位置, 表示 中 text token 的索引位置; 表示, 的 text token 在 中的索引位置。
这种类型的 control 同样可以引入 word swap 中的 来控制 control 的时机。用这个方法可以对图像进行全局的编辑,如下面例子的改变风格整体图片的风格为 “winter”。
Attention Re–weighting
基于p2p还可以精细的控制prompt每一个token的控制强度。这个场景和是相同的,可以更改特定token的权重来控制图像。此时的替换规则是:
[图像编辑03] Prompt-to-Prompt
© JuneSnow | CC BY-SA 4.0