论文:《StyleDiffusion: Prompt-Embedding Inversion for Text-Based Editing》
代码:https://github.com/sen-mao/StyleDiffusionhttps://github.com/sen-mao/StyleDiffusion
问题背景
已有一些工作利用预训练扩散模型进行真实图像的编辑。这些方法通常通过微调模型或在预训练模型的潜在空间中对图像进行反演。然而,它们面临两个主要问题:(1)在选定区域的编辑结果不理想(图 1. 第一行),同时在未选定区域出现意外变化(图 1. 第二行);(2)需要精心设计文本提示,确保文本提示涵盖输入图像中的所有元素(图 2. 第一行)。
为了解决这些问题,我们提出了两个主要改进:(1)仅优化cross-attention层中value线性层的输入,已具有足够强的能力以重建真实图像;(2)提出了注意力正则化方法,以保持重建和编辑后的物体注意力图,从而实现精确的编辑,而不会产生显著的结构性变化。此外,我们还通过P2P 使用CFG时的无条件分支改进了编辑能力,提出P2Plus。
对注意力机制的分析(重要观察)
为了解决提到的挑战,我们首先对扩散模型SD采样过程中的注意力机制进行了分析。我们观察到,key主导输出图像的结构(即"where"),而value决定了物体的风格(即"what")。接下来,我们通过实验证明value决定物体的风格(即"what")。如图 3.(第一行和第二行)所示,我们使用提示嵌入和生成了两组图像(=["Dog", "Dog", "Dog", "A man with glasses", "A dog holding flowers"], =["Cat", "Tiger", "Watercolor drawing of a cat", "A man in sunglasses", "A cat wearing sunglasses"])。随后,我们在同一注意力层中为key和值value的输入使用了两种不同的嵌入来进行分析。如图 3.(第三行和第四行)所示,当交换key的输入并固定value的输入时,我们观察到生成图像的内容相似。例如,第一行和第三行的生成内容相似,第二行和第四行的内容相似。然而,如图 3.(第五行和第六行)所示,当交换value的输入并固定key的输入时,我们发现内容发生了交换,同时保留了大部分结构。例如,最后一行的图像与第一行的图像在语义信息上相似,而与第二行的图像结构相似。需要注意的是,第一行、第三行和第五行共享相同的潜在编码(cross-attention中的query),第二行、第四行和第六行也共享相同的潜在编码。},因此图 3.中的第一行和第三行,第二行和第四行的结构变化不大。这一实验表明,cross-attention中的value决定了物体的风格(即"what")。
方法(StyleDiffusion的真实图像反演)
因此,为了改进真实图像的反演,有效地利用value控制图像的风格(内容),我们提出StyleDiffusion。StyleDiffusion在真实图像反演时将真实图像映射到value的输入嵌入(我们将该嵌入称为Prompt-embedding,图 4.中II. StyleDiffusion中v的输入),同时我们将文本嵌入作为key的输入(图 4.中II. StyleDiffusion中k的输入"dog"),使用对latent进行重构,这使我们能够在反演时不引入显著结构性变化,而在编辑时实现精确的风格(内容)编辑。
同时,为了使局部注意力图更加精确,我们提出了一种注意力正则化方法,以获得更精确的重建和编辑能力。图 5.展示了注意力正则化的重建效果。结合重建图像的交叉注意力图(第二行,第五列)与输入图像的交叉注意力图(第二行,第一列)更为接近。同时,可以改善Null-text的重建质量(第二行,第二列)。在最后两列中,cow被替换为elephant,说明在增强重构效果的基础上,可以获得更精准的编辑效果。
方法(StyleDiffusion的真实图像的编辑P2Plus)
在使用StyleDiffusion对真实图像进行反演后,就可以对真实图像进行编辑。在编辑阶段,我们主要基于使用广泛的编辑方法P2P 。P2P执行条件分支中交叉注意力图和自注意力图的替换,旨在保持源提示的结构(图 6.第二列)。然而,P2P仅在条件分支上操作,忽略了无条件分支。这导致在某些情况下编辑能力较弱,尤其是在编辑前后结构变化较大的情况下(例如,图 6.中的"…tent…"→"…tiger…")。
为了解决这个问题,我们需要减少结构对源提示"…tent…"的依赖,并为根据目标提示生成结构提供更多自由度,以便根据目标提示"…tiger…"生成结构。因此,如图 7.所示,我们提出在无条件分支中进一步执行自注意力图替换,我们称为P2Plus,同时在条件分支中像P2P一样进行操作。P2Plus提供了更精确的编辑能力。
与P2P类似,我们引入了一个时间步参数,用于确定注入应用的步骤范围。图 8. 展示了不同值下的结果。P2P(第二列: )未能成功地将tent替换为tiger。添加注入参数有助于成功编辑,尤其是当时。我们使用与SD相同的分类器自由引导CFG参数,此时无条件分支的权重为负,随着从0.2增加到1.0(从第三列到第八列),P2Plus可以逐渐减弱无条件分支中tent的影响。第一行和第二行的源图像来自SD,而第三行的源图像来自输入的真实图像(第一列)。从第一行到第三行的编辑分别为:"...tent..." → "...tiger...","...bike..." → "...motorcycle...",以及"...kitten..." → "...puppy..."。
实验结果
我们对所提的方法(StyleDiffusion)对真实图像的编辑进行了验证,编辑时对非编辑区域的保持均超过了baselines。例如,我们使用Structure-dist和NS-LPIPS来评测编辑前后结构的保真度,StyleDiffusion在两个指标上表现最好(评测不使用P2Plus)。使用未编辑区域的掩码,我们计算真实图像与编辑后图像之间的未编辑区域LPIPS,我们将其称为NS-LPIPS(即未选区域的 LPIPS)。较低的NS-LPIPS得分意味着未编辑区域与输入图像更相似(提取未编辑区域和计算NS-LPIPS代码见GitHub - sen-mao/StyleDiffusion: Official Implementations "StyleDiffusion: Prompt-Embedding Inversion for Text-Based Editing" (CVMJ2024)Official Implementations "StyleDiffusion: Prompt-Embedding Inversion for Text-Based Editing" (CVMJ2024) - sen-mao/StyleDiffusionhttps://github.com/sen-mao/StyleDiffusion#-ns-lpips虽然*DDIM,SDEdit和MasaCtrl取得了更好的Clipscore,但会显著影响结构的保证度(图 9.)
图 10. 和图 11.展示了我们更多的编辑结果
总结StyleDiffusion的贡献:
1. StyleDiffusion通过优化value输入和注意力正则化,实现了对真实图像更精确的重建和编辑
2. StyleDiffusion提出了P2Plus,解决了P2P的局限性,使P2P获得更强大的编辑能力,特别是在源对象与目标对象编辑前后结构变化较大时
最后,强烈建议阅读原文,了解更多实现细节和实验结果。