挡不住了!扩散模型只用文字就能PS照片了

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: 挡不住了!扩散模型只用文字就能PS照片了

甲方:「我想让这只小狗坐下。」AI:安排!


动动嘴皮子就能把图改好是甲方和乙方的共同愿望,但通常只有乙方才知道其中的酸楚。如今,AI 却向这个高难度问题发起了挑战。


在一篇 10 月 17 日上传到 arXiv 的论文中,来自谷歌研究院、以色列理工学院、以色列魏茨曼科学研究所的研究者介绍了一种基于扩散模型的真实图像编辑方法——Imagic,只用文字就能实现真实照片的 PS,比如让一个人竖起大拇指、让两只鹦鹉亲吻:


「求大神帮忙 P 一个点赞手势。」扩散模型:没问题,包在我身上。


从论文中的图像可以看出,修改后的图像依然非常自然,对需要修改的内容之外的信息也没有明显的破坏。类似的研究还有谷歌研究院和以色列特拉维夫大学之前合作完成的 Prompt-to-Prompt(Imagic 论文中的参考文献 [16]):



项目链接(含论文、代码):https://prompt-to-prompt.github.io/


因此,有人感慨说,「这个领域变化快到有点夸张了,」以后甲方真的动动嘴就可以想怎么改就怎么改了。



Imagic 论文概览



论文链接:https://arxiv.org/pdf/2210.09276.pdf


将大幅度的语义编辑应用于真实照片一直是图像处理中一个有趣的任务。近年来,由于基于深度学习的系统取得了长足的进步,该任务已经引起了研究社区相当大的兴趣。


用简单的自然语言文本 prompt 来描述我们想要的编辑(比如让一只狗坐下)与人类之间的交流方式高度一致。因此,研究者们开发了很多基于文本的图像编辑方法,而且这些方法效果也都不错。


然而,目前的主流方法都或多或少地存在一些问题,比如:


1、仅限于一组特定的编辑,如在图像上作画、添加对象或迁移风格 [6, 28];

2、只能对特定领域的图像或合成的图像进行操作 [16, 36];

3、除了输入图像外,它们还需要辅助输入,例如指示所需编辑位置的图像 mask、同一主题的多个图像或描述原始图像的文本 [6, 13, 40, 44]。

本文提出了一种语义图像编辑方法「Imagic」以缓解上述问题。只需给定一个待编辑的输入图像和一个描述目标编辑的单一文本 prompt,该方法就可以对真实的高分辨率图像进行复杂的非刚性编辑。所产生的图像输出能够与目标文本很好地对齐,同时保留了原始图像的整体背景、结构和组成。


如图 1 所示,Imagic 可以让两只鹦鹉接吻或让一个人竖起大拇指。它提供的基于文本的语义编辑首次将如此复杂的操作应用于单个真实的高分辨率图像,包括编辑多个对象。除了这些复杂的变化之外,Imagic 还可以进行各种各样的编辑,包括风格变化、颜色变化和对象添加。



为了实现这一壮举,研究者利用了最近成功的文本到图像的扩散模型。扩散模型是强大的生成模型,能够进行高质量的图像合成。当以自然语言文本 prompt 为条件时,它能够生成与要求的文本相一致的图像。在这项工作中,研究者将它们用于编辑真实的图像而不是合成新的图像。


如图 3 所示,Imagic 完成上述任务只需要三步走:首先优化一个文本嵌入,使其产生与输入图像相似的图像。然后,对预训练的生成扩散模型进行微调,以优化嵌入为条件,更好地重建输入图像。最后,在目标文本嵌入和优化后的嵌入之间进行线性插值,从而得到一个结合了输入图像和目标文本的表征。然后,这个表征被传递给带有微调模型的生成扩散过程,输出最终编辑的图像。


为了证明 Imagic 的实力,研究者进行了几个实验,将该方法应用于不同领域的众多图像,并在所有的实验中都产生了令人印象深刻的结果。Imagic 输出的高质量图像与输入的图像高度相似,并与所要求的目标文本保持一致。这些结果展示了 Imagic 的通用性、多功能性和质量。研究者还进行了一项消融研究,强调了本文所提出的方法中每个组件的效果。与最近的一系列方法相比,Imagic 表现出明显更好的编辑质量和对原始图像的忠实度,特别是在承担高度复杂的非刚性编辑任务时。


方法细节


给定一个输入图像 x 和一个目标文本,本文旨在以满足给定文本的方式编辑图像,同时还能保留图像 x 的大量细节。为了实现这一目标,本文利用扩散模型的文本嵌入层来执行语义操作,这种方式有点类似于基于 GAN 的方法。研究人员从寻找有意义的表示开始,然后经过生成过程,生成与输入图像相似的图像。之后再对生成模型进行优化,以更好地重建输入图像,最后一步是对潜在表示进行处理,得到编辑结果。


如上图 3 所示,本文的方法由三个阶段构成:(1)优化文本嵌入以在目标文本嵌入附近找到与给定图像最匹配的文本嵌入;(2)微调扩散模型以更好地匹配给定图像;(3)在优化后的嵌入和目标文本嵌入之间进行线性插值,以找到一个既能达到图像保真度又能达到目标文本对齐的点。


更具体的细节如下:


文本嵌入优化


首先目标文本被输入到文本编码器,该编码器输出相应的文本嵌入,其中 T 是给定目标文本的 token 数,d 是 token 嵌入维数。然后,研究者对生成扩散模型 f_θ的参数进行冻结,并利用去噪扩散目标(denoising diffusion objective)优化目标文本嵌入 e_tgt



其中,x 是输入图像,是 x 的一个噪声版本,θ为预训练扩散模型权值。这样使得文本嵌入尽可能地匹配输入图像。此过程运行步骤相对较少,从而保持接近最初的目标文本嵌入,获得优化嵌入 e_opt。


模型微调


这里要注意的是,此处所获得的优化嵌入 e_opt 在通过生成扩散过程时,不一定会完全和输入图像 x 相似,因为它们只运行了少量的优化步骤(参见图 5 中的左上图)。因此,在第二个阶段,作者通过使用公式 (2) 中提供的相同损失函数优化模型参数 θ 来缩小这一差距,同时冻结优化嵌入。



文本嵌入插值


Imagic 的第三个阶段是在 e_tgt 和 e_opt 之间进行简单的线性插值。对于给定的超参数,得到然后,作者使用微调模型,以 为条件,应用基础生成扩散过程。这会产生一个低分辨率的编辑图像,然后使用微调辅助模型对目标文本进行超分辨率处理。这个生成过程输出最终的高分辨率编辑图像


实验结果


为了测试效果,研究者将该方法应用于来自不同领域的大量真实图片,用简单的文字 prompt 来描述不同的编辑类别,如:风格、外观、颜色、姿势和构图。他们从 Unsplash 和 Pixabay 收集了高分辨率的免费使用的图片,经过优化,用 5 个随机种子生成每个编辑,并选择最佳结果。Imagic 展示了令人印象深刻的结果,它能够在任何一般的输入图像和文本上应用各种编辑类别,如图 1 和图 7 中所示。



图 2 中是对同一张图片进行了不同的文字 prompt 实验,显示了 Imagic 的多功能性。



由于研究者利用的底层生成扩散模型是基于概率的,该方法可以对单一的图像 - 文本对生成不同的结果。图 4 展示了使用不同的随机种子进行编辑的多个选项(对每个种子的η稍作调整)。这种随机性允许用户在这些不同的选项中进行选择,因为自然语言的文本 prompt 一般都是模糊和不精确的。



研究将 Imagic 与目前领先的通用方法进行了比较,这些方法对单一输入的真实世界图像进行操作,并根据文本 prompt 对其进行编辑。图 6 展示了 Text2LIVE[7] 和 SDEdit[32] 等不同方法的编辑结果。


可以看出,本文的方法对输入图像保持了高保真度,同时恰当地进行了所需的编辑。当被赋予复杂的非刚性编辑任务时,比如「让狗坐下」,本文方法明显优于以前的技术。Imagic 是第一个在单一真实世界图像上应用这种复杂的基于文本的编辑的 demo。


相关文章
|
前端开发 Windows
20个最新的照片 PS 技巧,提升摄影水平
  相信很多人都知道 Photoshop 在照片编辑方面的强大,所以几乎每张照片经过 PS 处理后都可以变成一个真正的杰作。这里分享的这组 Photoshop 教程可以帮助你学习到新的照片处理技术。你会发现奇妙的 Photoshop 将显著提高你的照片展示效果。
928 0
一定要记住这20种PS技术,让你的照片美的不行! - imsoft.cnblogs
照片名称:调出照片柔和的蓝黄色-简单方法, 1、打开原图素材,按Ctrl + J把背景图层复制一层,点通道面板,选择蓝色通道,图像 > 应用图像,图层为背景,混合为正片叠底,不透明度50%,反相打钩, 2、回到图层面板,创建曲线调整图层,蓝通道:44,182,红通道:89,108 3、新建一个图层,填充黑色,图层混合模式为正片叠底,不透明度为60%,选择椭圆选框工具选区中间部分,按Ctrl + Alt + D羽化,数值为70,然后按两下Delete键删除,再打上文字,完成最终效果。
1323 0
如何确定照片是否被PS过
  除了用软件,还可以先右键属性----解除锁定----重新打开属性看详细信息。   
733 0
|
存储 编解码 文件存储
PS制作两寸照片的疑惑
  我的是CS5,可是以保存成jpg就变得非常大这是怎么了……………………最后只得用截图截出来啦   网友说:使用 ctrl + alt +shift +s ,选择jpeg格式,文件就小了。我试了下,是对的,该选项在文件----存储为web和设备所用格式。
968 0
一定要记住这20种PS技术!会让你的照片美的不行!
照片名称:调出照片柔和的蓝黄色-简单方法1.打开原图素材,按Ctrl+J把背景图层复制一层,点通道面板,选择蓝色通道,图像>应用图像,图层为背景,混合为正片叠底,不透明度50%,反相打钩2.
972 0
|
26天前
|
Linux
百度搜索:蓝易云【Linux系统ps命令:查看正在运行的进程】
通过这些简洁的ps命令用法,你可以方便地查看Linux系统中正在运行的进程信息。
22 1
|
3月前
|
安全 Linux 应用服务中间件
linux(三十一)系统信息命令ps查看系统进程
linux(三十一)系统信息命令ps查看系统进程
124 1
|
7月前
|
iOS开发
iOS 逆向编程(十三)PS命令获取进程PID与名称(Process Status)
iOS 逆向编程(十三)PS命令获取进程PID与名称(Process Status)
106 0
|
5月前
|
Linux Apache
百度搜索:蓝易云 ,Linux ps命令详解,Linux查看进程。
通过使用ps命令,您可以查看当前运行的进程,并获取有关进程的详细信息。根据您的需求,可以使用不同的选项来满足特定的进程查看和筛选要求。
518 0

相关产品

  • 人工智能平台 PAI
  • 文字识别
  • 视觉智能开放平台