【CVPR2024】面向StableDiffusion的编辑算法FreePromptEditing,提升图像编辑效果

本文主要是介绍【CVPR2024】面向StableDiffusion的编辑算法FreePromptEditing,提升图像编辑效果,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

近日,阿里云人工智能平台PAI与华南理工大学贾奎教授团队合作在深度学习顶级会议 CVPR2024 上发表 FPE(Free-Prompt-Editing) 算法,这是一种面向StableDiffusion的图像编辑算法。在这篇论文中,StableDiffusion可用于实现图像编辑的本质被挖掘,解释证明了基于StableDiffusion编辑的算法本质,并基于此设计了新的图像编辑算法,大幅度提升了图像编辑的效率。

论文:Bingyan Liu, Chengyu Wang, Tingfeng Cao, Kui Jia, Jun Huang. Towards Understanding Cross and Self-Attention in Stable Diffusion for Text-Guided Image Editing. CVPR 2024

背景

近年来,文本到图像合成(Text-to-Image Synthesis,TIS)模型如Stable Diffusion、DALL-E 2和Imagen,在将文本描述转换为视觉图像方面表现出色,引起了学术界和产业界的极大兴趣。这些模型通过在庞大的图像-文本对数据集(例如Laion)上进行训练,并集成了尖端技术如大规模预训练的语言模型、变分自编码器和扩散模型,能够生成逼真且细节丰富的图像。尤其是Stable Diffusion模型,它不仅在图像生成领域广受欢迎,还对开源社区做出了显著的贡献。除生成能力外,这些TIS模型还具备强大的图像编辑功能,深入研究并利用其基于文本提示的编辑潜能至关重要,因为它们能在保持图像高质量和自然感的前提下实现内容的变更。目前一些流行的Traing-free的图像编辑方法,如Prompt-to-Prompt(P2P),通过更换源提示中与目标编辑词相关的交叉注意力图来定位指示图像需要修改的区域,但引入源图像的交叉注意力图进行修改可能导致预期外的结果。同样,Plug-and-Play(PnP)方法在提取原始图像的空间特征和自注意力特征后,将这些特征注入到目标图像的生成过程中,但这种操作如果处理不当,同样可能导致不尽人意的结果。例如,如果在交叉注意力层上进行编辑,可能无法成功地将人类图像编辑成机器人形象,或者无法将汽车颜色更改为红色,这些案例中的失败可能归因于注意力层的不恰当处理。

图1. 图像编辑的失败案例以及我们提出的方法成功编辑的结果

虽然目前流行的图像编辑算法可以在一定程度上对图像进行编辑,但是这些方法对交叉和自注意力图的语义仍缺乏解释与探索。为了探索并解释扩散模型中注意力图的含义,在我们的论文中,我们提出了这样的一个疑问:文本条件扩散模型的注意力图是否仅仅是权重矩阵,是否还包含图像的特征信息? 为了回答这些问题,我们通过探针分析实验来探索注意力图。

Attention map 探针分析

我们探针实验的核心思想是: 如果分类器能够准确地对来自不同类别的注意力图进行分类,那么该注意力图就包含类别信息的有意义的特征表示。为了更直观地展示探针实验的效果,我们选择了颜色和动物类别的单词组成的文本,并提取出颜色和动物单词对应的交叉注意力图以及自注意层中的自注意力图作为元数据。其中,颜色类形容词使用的prompt模板为:"a/ancar"。动物类名词词使用的prompt模板为:"a/anstanding in the park". 此外我们,还构建了其他类型的模板进行实验,如"a/an<object>", "a photo of acar and a dog", "a man and acar"等复杂模板的实验,具体实验结果可以阅读我们的论文。

探针实验结果及结论

我们分别对不同层的交叉注意力图、自注意力图以及非编辑单词的交叉注意力图进行了探针实验分析,探针实验结果如下所示:

我们发现:(1)在扩散模型中编辑交叉注意力图对于图像编辑来说是可选的。替换或完善源和目标图像生成过程中的交叉注意力图是不必要的,并可能导致图像编辑失败。(2)交叉注意力图不仅是条件提示在生成图像对应位置的权重测量,也包含了条件标记的语义特征。因此,用源图像的交叉注意力图替换目标图像的图可能会产生意外的结果。(3)自注意力图对于TIE任务的成功至关重要,因为它们反映了图像特征之间的关联,并保留了图像的空间信息。以下是使用不同的注意力图执行图像编辑的实验结果。

图片

图2. 不同扩散模型的注意力层上对交叉注意力图和自注意力图进行替换的图像编辑实验结果

图片

图3. 编辑提示中替换不同token的 交叉注意图的结果。

“-”是一个减号。- “a” 表示减去 "a“ 对应的交叉注意力图。图2上半部分展示了在不同交叉注意力层进行单词替换(如“rabbit”和“coral”)后的编辑结果,当所有交叉注意力层的图都被替换时,结果最不理想。相对而言,保持交叉注意力图不变时,能得到更加准确的编辑效果。图2下半部分则展示了在不同自注意力层上进行操作的实验结果。当在目标图像生成过程中替换源图像所有层的自注意力图时,所生成的图像确实保留了原始图像的结构信息,但会导致编辑目的完全失败。相反,如果完全不替换自注意力图,最终得到的图像将与直接根据目标提示生成的图像一致。作为一种折中,选择替换第4层至第14层的自注意力图,这种方法能够在保证编辑成功的同时,尽可能保留原始图像的结构信息。图3也验证了即使是替换与非编辑单词对应的交叉注意力图,也可能导致编辑失败,突显出在图像编辑中注意力图操作的复杂性和微妙性。

算法架构

基于探针实验的结果,我们优化了目前流行的图像编辑算发,我们提出了一种更直接、更稳定、更高效的方法,称为Free-Prompt-Editing(FPE)。FPE核心思想是将源图像的空间布局和内容与目标文本提示合成的语义信息相结合,合成所需的目标图像。FPE源图像和目标图像之间的去噪过程中,在扩散模型的注意力层 4 至 14 中采用了自注意力替换机制。对于合成图像编辑,FPE在扩散去噪过程中用源图像的自注意力图替换目标图像的自注意力图。 在对真实图像编辑时,FPE首先通过使用DDIM-inversion操作来获得重建真实图像所需的潜在特征。 随后,在编辑过程中,我们在目标图像的生成过程中替换真实图像的自注意力图。FPE能够完成TIE任务的原因如下: 1)交叉注意力机制有利于合成图像和目标提示的融合,甚至可以让目标提示和图像自动对齐 无需引入源提示的交叉注意力图;2)自注意力图包含源图像的空间布局和形状细节,自注意力机制允许将结构信息从源图像注入到生成的目标图像中。算法框架及伪代码如下:

图片

图4. Free-Prompt-Editing 在对合成图像进行编辑的过程示意图

图 5:Free-Prompt-Editing 在合成图像编辑和真实图像编辑场景下的伪代码

实验结果

图6展示了FPE的编辑结果,它成功地转换了原始图像的各种属性、风格、场景和类别。

图 6:Free-Prompt-Editing 编辑结果示例

图7呈现了FPE技术应用于基于稳定扩散算法的其他定制模型中的编辑效果。观察这些成果,我们可以发现FPE技术能够高效地适用于各种扩散模型。它不仅成功实现了性别转换,把女孩变为男孩,还能够调整人物的年龄,使男孩呈现出10岁或80岁的特征;此外,它还能修改发型、变换头发色彩、替换背景乃至进行类别上的转变。

图片

图 7:Free-Prompt-Editing 编辑结果示例

图8对比展示了FPE与其他一些SOTA图像编辑技术的效果。无论是对真实照片还是合成图像,FPE均展现出了高效的编辑能力。在所有的案例中,FPE都能够实现与描述提示高度一致的精细编辑,同时最大限度地保留了原图的结构细节。

图片

图 8:Free-Prompt-Editing 与其他编辑方法的对比

下表展示了不同编辑算法在 Wild-TI2I 和 ImageNet-R-TI2I 基准上的定量实验结果。可以看出,我们的方法在 CDS 指标方面明显优于所有其他方法,这表明我们的方法能够很好地保留原始图像的空间结构,并根据目标提示的要求进行编辑,产生了良好的结果。 同时,我们的方法在时间消耗和有效性之间实现了良好的平衡。

更多的实验结果及讨论,欢迎阅读论文:Towards Understanding Cross and Self-Attention in Stable Diffusion for Text-Guided Image Editing。目前 Free-Prompt-Editing 已经在 EasyNLP(EasyNLP/diffusion/FreePromptEditing at master · alibaba/EasyNLP · GitHub)开源。欢迎广大用户试用!

参考文献

  • Rombach R, Blattmann A, Lorenz D, et al. High-resolution image synthesis with latent diffusion models[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2022: 10684-10695.

  • Hertz A, Mokady R, Tenenbaum J, et al. Prompt-to-prompt image editing with cross attention control[J]. arXiv preprint arXiv:2208.01626, 2022.

  • Brooks T, Holynski A, Efros A A. Instructpix2pix: Learning to follow image editing instructions[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2023: 18392-18402.

  • Cao M, Wang X, Qi Z, et al. Masactrl: Tuning-free mutual self-attention control for consistent image synthesis and editing[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. 2023: 22560-22570.

  • Tumanyan N, Geyer M, Bagon S, et al. Plug-and-play diffusion features for text-driven image-to-image translation[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2023: 1921-1930.

  • Meng, Chenlin et al. “SDEdit: Guided Image Synthesis and Editing with Stochastic Differential Equations.” International Conference on Learning Representations (2021).

  • Park D H, Luo G, Toste C, et al. Shape-guided diffusion with inside-outside attention[C]//Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision. 2024: 4198-4207.

  • Parmar G, Kumar Singh K, Zhang R, et al. Zero-shot image-to-image translation[C]//ACM SIGGRAPH 2023 Conference Proceedings. 2023: 1-11.

  • Couairon G, Verbeek J, Schwenk H, et al. Diffedit: Diffusion-based semantic image editing with mask guidance[J]. arXiv preprint arXiv:2210.11427, 2022.

论文信息

论文名字:Towards Understanding Cross and Self-Attention in Stable Diffusion for Text-Guided Image Editing论文作者:刘冰雁、汪诚愚、曹庭锋、贾奎、黄俊论文pdf链接:https://arxiv.org/abs/2403.03431

这篇关于【CVPR2024】面向StableDiffusion的编辑算法FreePromptEditing,提升图像编辑效果的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1071934

相关文章

Kotlin Compose Button 实现长按监听并实现动画效果(完整代码)

《KotlinComposeButton实现长按监听并实现动画效果(完整代码)》想要实现长按按钮开始录音,松开发送的功能,因此为了实现这些功能就需要自己写一个Button来解决问题,下面小编给大... 目录Button 实现原理1. Surface 的作用(关键)2. InteractionSource3.

使用WPF实现窗口抖动动画效果

《使用WPF实现窗口抖动动画效果》在用户界面设计中,适当的动画反馈可以提升用户体验,尤其是在错误提示、操作失败等场景下,窗口抖动作为一种常见且直观的视觉反馈方式,常用于提醒用户注意当前状态,本文将详细... 目录前言实现思路概述核心代码实现1、 获取目标窗口2、初始化基础位置值3、创建抖动动画4、动画完成后

uniapp小程序中实现无缝衔接滚动效果代码示例

《uniapp小程序中实现无缝衔接滚动效果代码示例》:本文主要介绍uniapp小程序中实现无缝衔接滚动效果的相关资料,该方法可以实现滚动内容中字的不同的颜色更改,并且可以根据需要进行艺术化更改和自... 组件滚动通知只能实现简单的滚动效果,不能实现滚动内容中的字进行不同颜色的更改,下面实现一个无缝衔接的滚动

Java实现图片淡入淡出效果

《Java实现图片淡入淡出效果》在现代图形用户界面和游戏开发中,**图片淡入淡出(FadeIn/Out)**是一种常见且实用的视觉过渡效果,它可以用于启动画面、场景切换、轮播图、提示框弹出等场景,通过... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细

使用animation.css库快速实现CSS3旋转动画效果

《使用animation.css库快速实现CSS3旋转动画效果》随着Web技术的不断发展,动画效果已经成为了网页设计中不可或缺的一部分,本文将深入探讨animation.css的工作原理,如何使用以及... 目录1. css3动画技术简介2. animation.css库介绍2.1 animation.cs

使用雪花算法产生id导致前端精度缺失问题解决方案

《使用雪花算法产生id导致前端精度缺失问题解决方案》雪花算法由Twitter提出,设计目的是生成唯一的、递增的ID,下面:本文主要介绍使用雪花算法产生id导致前端精度缺失问题的解决方案,文中通过代... 目录一、问题根源二、解决方案1. 全局配置Jackson序列化规则2. 实体类必须使用Long封装类3.

Springboot实现推荐系统的协同过滤算法

《Springboot实现推荐系统的协同过滤算法》协同过滤算法是一种在推荐系统中广泛使用的算法,用于预测用户对物品(如商品、电影、音乐等)的偏好,从而实现个性化推荐,下面给大家介绍Springboot... 目录前言基本原理 算法分类 计算方法应用场景 代码实现 前言协同过滤算法(Collaborativ

Python+Tkinter实现Windows Hosts文件编辑管理工具

《Python+Tkinter实现WindowsHosts文件编辑管理工具》在日常开发和网络调试或科学上网场景中,Hosts文件修改是每个开发者都绕不开的必修课,本文将完整解析一个基于Python... 目录一、前言:为什么我们需要专业的Hosts管理工具二、工具核心功能全景图2.1 基础功能模块2.2 进

Flutter实现文字镂空效果的详细步骤

《Flutter实现文字镂空效果的详细步骤》:本文主要介绍如何使用Flutter实现文字镂空效果,包括创建基础应用结构、实现自定义绘制器、构建UI界面以及实现颜色选择按钮等步骤,并详细解析了混合模... 目录引言实现原理开始实现步骤1:创建基础应用结构步骤2:创建主屏幕步骤3:实现自定义绘制器步骤4:构建U

openCV中KNN算法的实现

《openCV中KNN算法的实现》KNN算法是一种简单且常用的分类算法,本文主要介绍了openCV中KNN算法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录KNN算法流程使用OpenCV实现KNNOpenCV 是一个开源的跨平台计算机视觉库,它提供了各