论文笔记:VQGAN-CLIP:Open Domain Image Generationand Editing with Natural Language Guidance

论文:https://arxiv.org/abs/2204.08583

代码: GitHub - EleutherAI/vqgan-clip

摘要

从开放领域的文本提示中生成和编辑图像是一项具有挑战性的任务,到目前为止,需要昂贵的和经过专门训练的模型。我们为这两项任务展示了一种新的方法,它能够通过使用多模态编码器来指导图像的生成,从具有显著语义复杂性的文本提示中产生高视觉质量的图像,而无需任何训练。我们在各种任务上证明了使用CLIP来指导VQGAN产生的视觉质量比之前不太灵活的方法如minDALL-E、GLIDE和Open-Edit[26]更高。我们的代码可以在一个公共资源库中找到。

介绍

使用自由格式的文本来生成或操纵高质量的图像是一项具有挑战性的任务,需要在视觉和文本表征之间进行学习。在一个开放的领域背景下操纵图像是由开创性的Open-Edit首次提出的,它允许通过文本提示来改变图像的内容。这主要是通过语义上简单的转换(例如,把红苹果变成绿色)来完成的,不允许生成图像。不久之后,DALL-E和GLIDE被开发出来,它们都可以从任意的文本提示中进行生成(和绘画),但本身并不能实现图像操作。

在这项工作中,我们首次提出了语义图像生成和编辑的统一方法,利用预先训练的图像-文本联合编码器(本文指clip)来引导图像生成模型。我们的方法是通过使用多模态编码器来定义一个损失函数,评估(文本,图像)对的相似性,并反向传播到图像生成器的潜在空间。

我们迭代更新候选文本的生成,直到它与目标文本足够相似。使用我们的技术进行生成和编辑的区别仅仅是用特定的图像(用于编辑)或用随机噪声(用于生成)初始化生成器的问题。

我们的方法的一个显著优势是不需要额外的培训。只有一个预训练的图像生成器和一个图像-文本联合编码器是必要的,我们展示了几个重要的贡献,包括以下几点:

(1)对图像的生成和处理都有很高的视觉质量。

(2)文本和生成物之间的语义保真度高,特别是当语义上不可能的内容共同出现时。

(3)效率方面,我们的方法除了预训练的模型外,不需要额外的训练,每次推理只需要使用少量           的优化。

(4) 开放式开发和研究的价值。这项技术是公开开发的,开放合作是其在现实世界中迅速成功的           组成部分。非作者的人已经将我们的方法扩展到其他模式(如用音频代替文字)和商业应               用。

我们手稿的其余部分组织如下。在第2节中,我们讨论了我们的方法是如何工作的,从而形成了一个简单和容易应用的方法,用于组合多种模式的生成或操作。第3节展示了vqgan-clip在生成高质量和语义相关的图像方面的功效,随后在第4节展示了其卓越的操作能力。第5节通过消融验证了vqgan-clip在获得高质量图像和快速生成方面的设计选择,第6节讨论了资源使用和效率考虑。

由于我们的方法自2021年4月以来一直是公开的,我们能够在第7节展示外部团体的进一步验证。这种使用包括对其他模式的扩展,显示了我们方法的灵活性,以及对vqgan-clip的商业使用,证明其在处理开放域提示和图像方面的成功,达到了令人满意的程度。最后我们在第8节中得出结论。

我们的方法

 为了证明我们方法的有效性,我们使用VQGAN和CLIP作为预训练的模型来应用它,因此将我们的方法称为vqgan-clip。然而,我们强调,我们的方法并不是专门针对这两种模型的,随后的工作已经显示出成功,在我们的工作基础上使用其他模型,甚至其他模式。

我们从一个文本提示开始,使用GAN来迭代生成候选图像,每一步都使用CLIP来改进图像。我们通过把候选的嵌入和文本提示的嵌入之间的squared spherical distance作为损失函数来优化图像,并通过CLIP对GAN的图像的潜在向量表示进行区分,我们按照Oord、Vinyals和Kavukcuoglu将其称为 "Z-向量"。这个过程概述于图。

论文笔记:VQGAN-CLIP:Open Domain Image Generationand Editing with Natural Language Guidance_第1张图片

图1:图中显示了如何增加增量以稳定和改善优化。通过多种裁剪,每次生成图像都经过不同的随机增强应用于产生一个single source generation的平均损失。这改善了Z-vector的生成结果。

 

为了生成一个图像,"初始图像 "包含随机的像素值。重复优化过程以改变图像,直到输出图像逐渐改善,使其在语义上与目标文本相匹配。

我们也可以通过从要编辑的图像开始作为 "初始图像 "来编辑现有的图像。用于描述我们希望图像如何变化的文本提示与生成图像的文本提示相同,除了如何选择 "初始图像 "外,在生成和操作之间不存在结构上的变化。

我们使用Adam作为优化器,学习率为0.15,β=(0.9,0.999),在本文的实验中运行了400次迭代。

2.1  图像的离散潜在空间

与文本的自然离散性不同,图像空间本质上是连续的,而不是琐碎的离散化。之前的工作借用了矢量量化(VQ)的技术,通过用有限的学习嵌入集建立编码本词汇,用离散的潜在表征表示各种模式。给定一个词汇量为K、嵌入维度为nk的编码本,Z = {zi}Kk ∈Rnk。这是通过构建一个具有编码器E和解码器G的卷积自动编码器来应用于图像。一个输入图像x∈I首先被嵌入编码器z=E(x)。然后我们可以计算出矢量量化后的嵌入x为:

 然后我们可以通过词汇表multiply back,以进行重建。然后,我们可以在量化步骤上使用straight-through estimator,以便让CNN和编码本在端到端之间共同训练。我们使用流行的VQGAN模型进行本文的实验。

 2.2对比性的文本-图像模型

为了指导生成模型,我们需要一种方法来调整候选生成与指导文本的相似度。为了实现这一点,我们使用CLIP,一个通过使用对比学习训练的联合文本-图像编码器。我们使用CLIP独立编码文本提示和候选生成的图像,并测量嵌入之间的余弦相似度。然后,这种相似性被重塑为一种损失,我们可以使用梯度下降法来最小化。

2.3增强 

使用vqgan-clip的一个挑战是,如果在单一图像上计算,来自CLIP损失的梯度更新是相当嘈杂的。为了克服这个问题,我们将生成的候选图像进行多次修改,产生大量的增强图像。我们对候选图像进行随机裁剪,然后应用进一步的增强,如翻转、颜色抖动、噪声等。图像的大多数高水平语义特征对这些变化是相对不变的,所以对所有增强的图像进行CLIP损失的平均化可以减少每个更新步骤的差异。 随机裁剪有可能极大地改变图像的语义内容(例如裁剪掉一个重要的物体),但我们发现在实践中这并没有造成任何问题。对于本文提出的结果,我们使用了一个增强pipeline,包括:随机水平翻转、随机仿射投影、随机透视投影、随机颜色抖动,以及添加随机高斯噪声。

 

2.4隐向量的正则化

当使用无约束的VQGAN来生成图像时,我们发现输出往往是无结构的。添加增强有助于总体的连贯性,但最终的输出往往仍包含不需要的纹理斑块。为了解决这个问题,我们对z-vector采用了加权的L2正则化。

这就产生了一个正则化的损失函数,由公式给出:

 其中α是正则化权重。这就鼓励了表征的简约化,将VQGAN编码簿中的低信息编码至为零。在实践中,我们注意到正则化似乎改善了输出的一致性,并产生了一个更好的结构化图像。在生成过程中,我们将正则化项衰减了0.005。

2.5 附加组件

我们的方法是高度灵活的,可以根据使用情况和背景直接扩展,因为很容易在图像生成的中间步骤上整合额外的干预措施。使用我们框架的研究人员已经引入了一些额外的组件,从使用集合,到使用B'ezier曲线的潜在表征,到使用扰动来使结果对对手更加稳健。虽然它们没有在本文的主要实验中使用,但我们希望特别提请注意我们经常使用的两个。"提示性添加 "和屏蔽式图像编辑”。我们在这里对这两种方法进行了概述:

Prompt Addition: 我们发现,我们的用户经常对同时应用多个文本提示感兴趣。这可以通过同时计算针对多个目标文本的损失,并将结果相加来实现。

Masking: 图像生成和编辑中的一个常见技术是Masking,即提前确定图像的一部分是模型应该编辑的地方, vqgan-clip通过将不希望改变的潜在向量部分的梯度清零与Masking兼容。

 

 

语义图像生成

我们的方法的主要应用是用于从文本中生成图像。与以前关于这个主题的工作相比,我们不认为创造照片般逼真的图像或能使人相信它们是真实照片的图像是我们的主要目标。我们的重点是制作具有高视觉质量的图像,这些图像在语义上与自然语言提示有关,我们在本节中对此进行了演示。这实际上需要在提示可能要求艺术性或明确不现实的生成和编辑时放弃照片的现实主义。图2展示了一套经过松散策划的生成示例。由于vqgan-clip已经公开使用了近一年,我们有机会观察到人们在野外对vqganclip的实验和构建。

论文笔记:VQGAN-CLIP:Open Domain Image Generationand Editing with Natural Language Guidance_第2张图片

 

图2:vqgan-clip生成的例子和它们的文字提示。提示的选择是为了展示vqgan-clip能够产生的一系列视觉风格,包括古典艺术(g,i),现代艺术(l),素描(e),油画(a),以及其他由于空间原因没有包括在内的。 

3.1艺术印象

图2我们发现vqgan-clip能够唤起世界各地著名艺术家的艺术风格和主要艺术风格。以 "梵高风格的宇航员 "为特色,其背景唤起了 "星空 "和 "J.M.W.特纳的巴别塔",它借鉴了特纳的色调和光线的使用。 另一种方式是直接询问"[姓名]的画作 "或"[姓名]的艺术",图3可以看出这一点。

 

我们展示了以这种方式创作的六幅图像,它们来自不同地区、不同时期和不同艺术风格的艺术家。虽然这些图像往往缺乏凝聚力(很可能是由于 "一幅画 "作为提示的模糊性),但它们都明显地让人想起了有关的艺术家。虽然CLIP显然会发现这些图像在视觉上与艺术家的其他作品相似,但我们也发现,非基于CLIP的图像相似性方法可以可靠地识别这些图像与艺术家的作品视觉上相似。为了验证这一点,我们使用图3中的每一代图像查询了谷歌的反向图像搜索,在每一种情况下,目标艺术家的真实绘画都是最相似的图像。

论文笔记:VQGAN-CLIP:Open Domain Image Generationand Editing with Natural Language Guidance_第3张图片 

 图3:著名艺术家的风格印象。第三方工具如谷歌的反向图像搜索表明,目标艺术家的真实画作在任何情况下都是视觉上最相似的图像。

3.2与其他方法的比较

在开放领域的图像生成方面,最接近的前期工作来自DALL-E和GLIDE,它们声称要训练非常大的文本到图像预训练模型。据称,DALL-E和GLIDE的参数分别为120亿和50亿,而vqgan-clip加起来是2.27亿。不幸的是,我们被拒绝研究各自论文中声称的模型,因为他们的作者拒绝了。

为了评估我们的模型,我们招募了员工,并要求他们对(文字、图像)对的排列进行评分,评分标准为1(低)至5(高)。特别是,他们被指示对不符合提示的高质量图像的评分低于符合提示的低质量图像。 提示语的选择是基于我们从这些模型的工作经验中学到的原则,但事先并不知道这些模型在有关的特定提示语上会有什么表现。表1显示了每个模型的每个提示的平均得分。我们发现,人类绝大多数都认为使用我们的技术的生成与输入的文本更加一致。

论文笔记:VQGAN-CLIP:Open Domain Image Generationand Editing with Natural Language Guidance_第4张图片 

表1:每个模型对各代人的平均评分,得分从1(最差)到5(最好)。 

3.3定性分析 

图4显示了使用minDALL-E、GLIDE的两个变体和我们的vqgan-clip的四个不同提示的代表性结果的样本。进一步的比较,包括图2中的提示,可以在附录E中找到。我们发现,minDALL-E和GLIDE模型在其生成的质量上变化更大。虽然他们在回答 "artstation上流行的通用图书馆 "和 "大教堂的木炭画 "的提示时,能够产生明显可识别的图像,但他们对 "孩子画的棒球比赛 "的回答基本上无法辨认,他们对 "用低聚物渲染的森林 "的回答忽略了提示的后半部分。后面这些情况表明,在提示的情况下,以前的方法的输出的语义相关性很低。

 

论文笔记:VQGAN-CLIP:Open Domain Image Generationand Editing with Natural Language Guidance_第5张图片

 

图4:基于文本的图像生成。从上到下:minDALL-E、GLIDE(CLIP引导的)、GLIDE(CF引导的)和我们的vqgan-clip。 

在这里,"儿童画 "的情况特别值得注意,因为儿童画预计会有较低的视觉清晰度和缺乏结构。因此,vqganclip能够正确地调节其对细节的能力,这一点值得注意,表明vqgan-clip在不适当的时候并不内在地偏向于产生细部,并正确地识别多部分提示的适当背景。 

 语义图像编辑

就我们所知,我们的框架是文献中第一个能够进行语义图像生成和语义图像编辑的框架。文献中还有其他例子,说明生成模型可以进行风格转移、图像内画以及其他类型的图像处理,但是我们注意到,这些都代表了与开放域语义图像编辑不同的任务。相比之下,为了使我们的生成方法适用于图像编辑,所需要的只是将随机初始化的起始图像替换为我们希望编辑的图像。

4.1与最先进的技术比较 

对于语义图像编辑,我们与Open-Edit[26]进行了比较。据我们所知,除了我们的工作之外,Open-Edit是唯一发表的关于开放域语义图像编辑的研究。为了避免给我们的方法带来任何意外的优势,我们主要关注Liu等人[26]中作为例子提出的领域,如改变颜色和纹理。我们使用他们的模型的默认设置和与他们论文中相同的提示结构。

颜色编辑:在这里,我们提示模型在不降低图像质量或任何精细细节的情况下改变主色调。结果可以在图5中看到,之前的Open-Edit导致图像内容的破坏性转变。在第二种情况下,"红色总线 "也显示了一个被vqgan-clip所尊重的单一期望操作目标,但Open-Edit引起了整个图像的色彩变化。

论文笔记:VQGAN-CLIP:Open Domain Image Generationand Editing with Natural Language Guidance_第6张图片

 

图5:编辑图像中的颜色的例子。左边是原始的,中间是我们的vqgan-clip,右边是Open-Edit。vqgan-clip更好地保持了内容的原始结构,同时限制了非预期的扭曲。

 

改变天气: 前人强调他们的模型成功的另一个用例是天气修改,改变图像中存在的整体天气状况。这个任务的结果显示在图6中,Open-Edit依靠边缘图来维持结构显示了编辑能力的局限性。所需的改动往往会改变更多的图像内容,从而违反了边缘图,使Open-Edit不能成功地实现所需的内容变化。

论文笔记:VQGAN-CLIP:Open Domain Image Generationand Editing with Natural Language Guidance_第7张图片

 

 图6:天气变化可能需要对场景结构进行更大的改变,而Open-Edit无法执行,如 "阴天→晴天 "的例子所示,除了亮度水平之外,还需要改变天空。

混合交互: 我们包括额外的杂项例子,以强调这是开放领域的图像编辑,其性能并不局限于特定类型的转换。这些例子显示在图7中,我们注意到 "木头 "和 "集中 "的例子展示了一个相关语义较少的任务。这进一步要求我们的方法在模式之间有更强大的基础,以获得成功,并能更好地处理开放领域提示和图像的可能输入的广度。

论文笔记:VQGAN-CLIP:Open Domain Image Generationand Editing with Natural Language Guidance_第8张图片

 

图7:更具挑战性的修改,需要对视觉内容有更大的语言基础才能实现,再次表明vqgan-clip能够更好地编辑图像内容。 

相关技术

5.1隐藏向量正则化

这项工作的先前版本使用了一种叫做Codebook Sampling的方法,它优化了叠加在潜伏向量上的网格上的分类分布。我们发现这种方法对于交互式使用来说太慢了,而且确实留下了相当大的视觉改进空间。在图8中,我们展示了我们目前的方法与之前的方法相比在质量上的改进。通过添加第2.4节的正则化项,我们得到了一种比Codebook Sampling更快和产生更高质量的图像的方法,得到了本文所介绍的结果。我们的正则化方法与Codebook Sampling不兼容,因为Codebook Sampling倾向于在正则化效果显现之前,在训练的早期致力于特定的代码。 

5.2增强数量 

在图9中,我们消减了增量的数量,以显示其在一致的结果质量中的重要性。我们发现,仿生增强减少了杂乱和不需要的重复生成,前瞻性增强提高了三维几何的一致性,噪声增强提高了前景与背景的隔离度。

论文笔记:VQGAN-CLIP:Open Domain Image Generationand Editing with Natural Language Guidance_第9张图片

 

图8:编码本采样(上)、Z-量化(中)和Z-量化与MSE正则化方法(下)之间的比较。请注意,与其他方法相比,正则化的zquantize能够产生更精细的细节,而非正则化和编码本往往会产生浑浊的图像。 

资源方面的考虑 

我们的方法在NVIDIA Tesla K80上的运行时间为(935.2±20.4)秒,在NVIDIA GeForce RTX 2080 Ti上的运行时间为(229.5±26.2)秒(每个样本有10次)。在我们的测试中,这比minDALL-E慢了大约三倍,比GLIDE(已过滤)慢了十倍。虽然我们想分析一下两个模型都需要大量的预训练这一事实所涉及的权衡,但我们所比较的论文都没有足够详细地报告他们的训练要求,以分析这一差异所带来的权衡问题。我们鼓励作者公布更多关于他们模型的信息,以便进行更完整的分析。 

6.1效率是一种价值 

这项研究的目标之一7是提高人工智能图像生成和编辑工具的可及性。我们特意将我们的方法限制在需要少于11GB的VRAM,以便它适合在广泛可用的商业GPU(如K80s)内。

论文笔记:VQGAN-CLIP:Open Domain Image Generationand Editing with Natural Language Guidance_第10张图片 

图9:各种增强的影响的例子。从左到右:未扩增、仅命名扩增、所有扩增。 

从可访问性的角度来看,这个GPU特别重要,因为它是最大的GPU,可以通过Google Colaboratory的免费账户轻松获得。在Google Colab笔记本中,整个生成过程只需不到3分钟,这使得任何能够访问互联网和拥有Google账户的人都可以使用这种方法。 

拥有更多资源的研究人员可以使用本文未提及的各种增强手段获得更高质量的图像,例如使用集合或额外的辅助模型来规范化世代。虽然将我们的方法的性能推到极致是一个值得努力的事情,但我们能够在免费提供的资源上运行时超过目前的最先进水平,这一点我们认为特别值得强调。

我们将确定非绑定资源的最佳框架留给未来的工作。

6.2运行时分析 

DALL-E、GLIDE和Open-Edit也都将图像生成器和文本-图像联合编码器纳入其架构。然而,与我们的方法不同,它们需要计算密集型的训练和微调。这就引出了训练和推理时间之间的权衡问题。不幸的是,上述论文都没有足够详细地报告他们的训练要求,以估计其训练要求。然而,我们能够估计目前最先进的DALL-E模型minDALL-E的训练时间,其基本模型需要504个V100小时,另外还需要288个V100小时在ImageNet上进行微调。 通过与作者的私下交流,我们了解到GLIDE(过滤)需要400个A100天来训练,为了便于比较,我们将其近似为19,200个V100小时。

 

论文笔记:VQGAN-CLIP:Open Domain Image Generationand Editing with Natural Language Guidance_第11张图片 

表2: minDALL-E、GLIDE(过滤后)和vqgan-clip在各种GPU上的运行时间。每个单元格显示的是10次运行样本的平均值和标准偏差。minDALL-E在消耗了858个V100小时后变得比vqgan-clip便宜,而GLIDE(过滤后)需要20200个V100小时。

在所有评估的硬件上,我们的模型都比minDALL-E和GLIDE(已过滤)慢得多。然而。就在V100 GPU上的训练和推理之间的权衡而言,minDALL-E的总成本在≈15,800时变得比vqgan-clip便宜,而GLIDE(过滤)需要≈384,000。在计算消耗方面,minDALL-E在858个V100小时后变得比vqgan-clip更便宜,而GLIDE(过滤)需要20200个V100小时。虽然成本和效率问题在很大程度上取决于个人情况,但GLIDE(过滤)在花费了数万美元的计算后才变得和vqganclip一样高效,这一事实大大限制了研究人员对该方法进行实验和迭代的能力。同样的情况也适用于minDALL-E,尽管它的价格是几千而不是几万。 

结论

我们提出了vqgan-clip,一种只基于人类书面文字提示的图像生成和操作的方法。我们的模型生成的质量具有很高的视觉保真度,并保持对文字提示的忠实,超过了先前的方法,如DALL-E和GLIDE。这种保真度已经通过商业上的成功和多家公司的使用得到了外部验证。与唯一可比较的基于文本的图像编辑方法相比,vqgan-clip继续产生更高质量的视觉图像--特别是当文本提示和图像内容的语义相似度较低时。我们的消融研究表明,在优化过程中使用增强的图像是我们方法成功的一个关键因素,而且在我们的方法中,编码书的方法会牺牲速度和质量。

 

 

 

 

你可能感兴趣的:(论文阅读,深度学习,生成对抗网络,迁移学习)