CVMJ 2024 | StyleDiffusion: 基于Prompt嵌入的真实图像反演和文本编辑

论文:《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. (1) 已有方法(例如NullText Inversion),选定区域的编辑结果不理想(第一行第四列),未选定区域出现意外变化(第二行第四列)题
图 2.(2)已有方法(例如NullText Inversion),需要精心设计文本提示(第一行),确保文本提示涵盖输入图像中的所有元素,这样才能确保编辑的稳定性

为了解决这些问题,我们提出了两个主要改进:(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")。
图 3. Value决定物体的风格(即内容)

方法(StyleDiffusion的真实图像反演)

因此,为了改进真实图像的反演,有效地利用value控制图像的风格(内容),我们提出StyleDiffusion。StyleDiffusion在真实图像反演时将真实图像映射到value的输入嵌入(我们将该嵌入称为Prompt-embedding,图 4.中II. StyleDiffusion 中v的输入),同时我们将文本嵌入作为key的输入(图 4.中II. StyleDiffusion 中k的输入"dog"),使用对latent进行重构,这使我们能够在反演时不引入显著结构性变化,而在编辑时实现精确的风格(内容)编辑。
图 4. I. DDIM Inversion II. StyleDiffusion的真实图像反演过程 III. StyleDiffusion的编辑过程

同时,为了使局部注意力图更加精确,我们提出了一种注意力正则化方法 ,以获得更精确的重建和编辑能力。图 5.展示了注意力正则化的重建效果。结合重建图像的交叉注意力图(第二行,第五列)与输入图像的交叉注意力图(第二行,第一列)更为接近。同时,可以改善Null-text的重建质量(第二行,第二列)。在最后两列中,cow被替换为elephant,说明在增强重构效果的基础上,可以获得更精准的编辑效果。
图 5. 使用注意力正则化使重建图像的交叉注意力图(第二行,第五列)与输入图像的交叉注意力图(第二行,第一列)更为接近。同时,可以改善 Null-text 的重建质量(第二行,第二列)

方法(StyleDiffusion的真实图像的编辑P2Plus)

在使用StyleDiffusion 对真实图像进行反演后,就可以对真实图像进行编辑。在编辑阶段,我们主要基于使用广泛的编辑方法P2P 。P2P执行条件分支中交叉注意力图和自注意力图的替换,旨在保持源提示的结构(图 6.第二列)。然而,P2P仅在条件分支上操作,忽略了无条件分支。这导致在某些情况下编辑能力较弱,尤其是在编辑前后结构变化较大的情况下(例如,图 6.中的"...tent..."→"...tiger...")。
图 6. P2P和P2Plus的比较,当所需的编辑变化需要较大的结构性变化时(例如,帐篷、树木和自行车),P2P 会失败。通过减少对源提示的依赖,P2Plus 可以更好地处理此类情况。

为了解决这个问题,我们需要减少结构对源提示"...tent..."的依赖,并为根据目标提示生成结构提供更多自由度,以便根据目标提示"...tiger..."生成结构。因此,如图 7.所示,我们提出在无条件分支中进一步执行自注意力图替换,我们称为P2Plus,同时在条件分支中像P2P一样进行操作。P2Plus提供了更精确的编辑能力。
图 7. 给定相同的latent和cfg,(Top)SD的生成,(Middle)P2P将条件分支中的attention图从源提示复制到目标提示,黄色箭头表示,(Bottom)P2Plus除了替换条件分支的attention图外,还额外替换了无条件分支的attention图,黄色虚线箭头表示。

与P2P类似,我们引入了一个时间步参数,用于确定注入应用的步骤范围。图 8. 展示了不同值下的结果。P2P(第二列::o: )未能成功地将tent替换为tiger。添加注入参数有助于成功编辑,尤其是当时。我们使用与SD相同的分类器自由引导CFG参数,此时无条件分支的权重为负,随着从0.2增加到1.0(从第三列到第八列),P2Plus可以逐渐减弱无条件分支中tent的影响。第一行和第二行的源图像来自SD,而第三行的源图像来自输入的真实图像(第一列)。从第一行到第三行的编辑分别为:"...tent..." → "...tiger...","...bike..." → "...motorcycle...",以及"...kitten..." → "...puppy..."。
图 8. P2Plus中注入参数的影响

实验结果

我们对所提的方法(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.)
表 1. Structure-dist和NS-LPIPS评测编辑前后结构的保真度
图 9. 我们方法的编辑效果最好(最后一行),且可以最大程度保持结构

图 10. 和图 11.展示了我们更多的编辑结果
图 10. StyleDiffusion的更多结果

图 11. StyleDiffusion使用P2Plus的更多编辑结果


总结StyleDiffusion的贡献:
1. StyleDiffusion通过优化value输入和注意力正则化,实现了对真实图像更精确的重建和编辑
**2.**StyleDiffusion提出了P2Plus,解决了P2P的局限性,使P2P获得更强大的编辑能力,特别是在源对象与目标对象编辑前后结构变化较大时

最后,强烈建议阅读原文,了解更多实现细节和实验结果。

相关推荐
七芒星20239 小时前
多目标识别YOLO :YOLOV3 原理
图像处理·人工智能·yolo·计算机视觉·目标跟踪·分类·聚类
2401_841495642 天前
【计算机视觉】分水岭实现医学诊断
图像处理·人工智能·python·算法·计算机视觉·分水岭算法·医学ct图像分割
格林威3 天前
常规可见光相机在工业视觉检测中的应用
图像处理·人工智能·数码相机·计算机视觉·视觉检测
扶尔魔ocy3 天前
【QT常用技术讲解】multimedia实现指定分辨率打开摄像头
图像处理·qt
格林威3 天前
工业视觉检测里的 “柔性” 是什么?
图像处理·人工智能·深度学习·yolo·计算机视觉·视觉检测
格林威3 天前
不同光谱的工业相机有哪些?能做什么?
图像处理·人工智能·深度学习·数码相机·计算机视觉·视觉检测
CiLerLinux3 天前
第三十八章 ESP32S3 SPIFFS 实验
图像处理·人工智能·单片机·嵌入式硬件
要做朋鱼燕3 天前
【OpenCV】图像处理入门:从基础到实战技巧
图像处理·人工智能·opencv
不枯石3 天前
Matlab通过GUI实现点云的随机一致性(RANSAC)配准
开发语言·图像处理·算法·计算机视觉·matlab
那雨倾城3 天前
PiscCode:基于OpenCV的前景物体检测
图像处理·python·opencv·计算机视觉