来源:CVPR 2023 Tutorial Talk 主讲人:Zhengyuan Yang (Microsoft) 视频网址:https://www.youtube.com/watch?v=iixMLxeuOqU&list=PLB1k029in3UhWaAsXP1DGq8qEpWxW0QyS&index=4 内容整理:高弈杰 本视频围绕文本到图像生成对齐,讨论了以下四个方面的工作:可控制的生成和编辑、更好地遵循文本提示和概念定制。
介绍
引言
先前的发言者已经讨论了如何消费视觉数据来训练能够拥有良好图像表示的视觉理解模型,以及如何构建更通用的图像理解模型。接下来,我们将稍微探讨反向过程,即如何产生视觉数据。在这个教程环节中,我们将重点放在所谓的对齐视角上,看看如何获得与人类意图一致的数据,使得这些数据更有用。
从文本到图像的基础开始,文本到图像生成试图基于文本输入生成高保真图像,这是条件图像生成下的一个特殊问题,它试图不仅生成高质量的图像,而且希望它在语义上与无限条件相关。在本次的内容中,我们不尝试对文本到图像生成的所有方面进行全面概述,我们尝试从所谓的“对齐”视角介绍文本到图像的问题,探讨如何拥有更好地与人类意图一致的模型,我们将从以下四个方面来展开。
可控制的生成
除了大多数文本到图像生成中使用的图像描述(即文本部分)外,有时我们可能希望在某些场景中有额外的输入条件或输入通道,用户可以使用这些通道使生成变得更加简单,或更方便地表达他们实际想要绘制的内容。
编辑
编辑在对齐中也是一个非常重要的环节。在某些场景中,我们可能对生成的图像或已有的图像基本满意,但可能想要稍作修改。例如,我们可能希望稍微改变图像的风格,或者仅在特定位置添加或插入一个物体。这样,编辑提供了一个工具,让我们保留大部分图像,但只需要稍微修改它,以使其完美地与我们实际想要生成的内容对齐。
如何更好地遵循文本提示
虽然文本到图像模型是希望能够生成与输入文本提示在语义上相关的图像来进行训练的,但是当文本描述变得更复杂时,模型可能会选择忽略一些物体,或无法理解某些详细的属性描述,例如将颜色应用于错误的物体。也有一系列研究探讨如何使模型更严格地遵循输入的文本提示,为人们提供了一种更容易生成他们正在考虑的确切图像的方法。
定制
有时,我们可能希望模型具有我们已经拥有的某些视觉内容,例如我们自己的宠物狗或我们之前自己设计的特定卡通角色,并将这些视觉实体应用于不同的场景。这些视觉实体可能难以用自然语言来描述,例如我们的宠物狗应该具体看起来像什么,以及如何与其他的狗区分开。相反,让模型采用这样的附加概念并以某种方式定制一个开放式的T2I模型,以适应我们的特定用例,可能更有意义。
图1
基础知识
文本生成图像
图2
文本到图像生成是一个条件生成问题,它将文本作为输入条件并试图产生既具有良好视觉质量又与图像输入文本提示自动对应的图像,这通常是通过使用带有图像文本数据来完成的。通过训练模型来模仿或重现这个图像,它不仅强制模型学会生成合理的图像,而且由于在训练样本中的图像和文本是配对的,它隐式地学会了生成与文本输入对应的图像,以下是几种代表性的图像生成技术。
生成对抗网络
它包括一个生成器和一个鉴别器。生成器尝试基于噪声和文本输入生成图像,与此同时,鉴别器尝试区分输入图像是真实还是伪造的。通过让这两个对手互相竞争,生成器学会产生更逼真的图像,其中“逼真”实际上是由鉴别器来定义的,看它是否能真正区分图像是真实还是伪造的。
基于回归 Transformer 的方法
其核心思想是首先将图像转换成多个patch,并将每个patch映射到一个离散索引,这个索引指向图像标记器的代码书中的一个特定标记。然后使用这个标记器,例如EQ,我们可以将图像预测投影到一组离散的标记上,变成一个2D矩阵。完成图像预测的离散化后,我们可以让模型按照一个特定的顺序一个接一个地预测标记,直到完成整个图像。然后这组预测的离散标记可以被发送回去给反标记器,来恢复我们尝试生成的最终图像。
非自回归的Transformer
与其按照自动进取的方式逐个预测这些离散标记,我们可以有某种计划政策,每一步我们一起生成多个标记,这样我们可以在单个步骤中生成多个标记,从而大大加快推理过程。
扩散
扩散涉及到一个多步去噪过程中的图像作为随机噪声。每一步的目标是预测一个有意义的语义噪声,从最初随机初始化的噪声中减去,这样最终我们可以得到一个既具有良好视觉质量又与文本输入语义相关的图像。
稳定扩散模型
图3
该架构主要由三部分组成。左侧是一对变分自编码器或VAE的编码器和解码器,如右上角所示,可以将图像转换成潜变量,扩散过程实际上稍后会在其上操作,也可以使用解码器恢复最终图像或原始重建图像。第二部分位于右侧中央,即条件编码器。所以,特别是当我们谈论文本图像生成时,我们将文本作为输入,这个条件编码器可以是一个处理文本的CLIP编码器,输入语句并产生一套词嵌入。例如,典型的数字是77,这是CLIP文本编码器的最大长度,所以每个单词都有一个文本特征编码,之后发送到标准部分,即模型的核心部分,没有文本条件的单位。整个流程可能会更清晰,如果我们仔细看右侧的推断流程,假设我们已经训练了模型,从右侧顶部开始,系统的输入基本上包括视觉和文本部分。文本位于右侧,是一个句子输入,然后通过固定的文本 CLIP 编码器,产生一套文本特征。然后在中心产生与视觉相关的信息或潜变量,因为稳定扩散实际上在潜变量空间上操作,这个潜变量包含与视觉相关的信息。
可控制的生成
文本 布局/框架
文本在典型的文本图像生成中指的是整个图像的全局描述。在某些情况下,将这种全局文本描述与其他形式的可选附加输入条件相结合可能会很有帮助。例如,与地面文本描述相对应的布局或其他密集控制,例如遮罩、边缘图、涂鸦等,这样用户可以更容易地指定图像的布局和其他方面(如果他们设计的话)。接下来是讨论两篇代表性论文。
图4
第一篇是 ReCo: Region-Controlled T21 Generation。在这项近期的研究中,作者试图探索是否可以从只包含文本词汇的文本扩展到所谓的有根的全局和区域描述的混合,其主要动机是看我们是否可以仅用文本描述图像的特定部分。例如,我们可以指定在图像的左下角,我们想要画一个银色的球,而不影响图像的其他部分。在方法上,这样的扩展主要是通过扩展输入序列词汇来完成的,基本上除了文本标记之外还包括附加的框标记。如我们在之前的一些图像理解工作中所见,我们也讨论了如何扩展块词汇,只是现在它被用作输入部分。并且也表明,他们还可以提供更容易的方式来提供有根的描述,其中添加的框标记作为一个空间修饰符,只操作它后面的文本。例如,我们可以在某个区域指定这些球员的外观和其他详细特征,我们试图让模型生成。
图5
第二篇是 GLIGEN: Open-Set Grounded T21 Generation。这项研究介绍了新的关注层引导,它被插入到每一个预先定义的文本到图像模型的变形器块中。这些新增的关注层是为了帮助模型理解这些 grounding tokens的含义,或者我们可以用 grounding tokens来提供这种视觉控制能力。其中一个核心设计如下所示:γ超参数是零初始化的。这一点很重要,因为它显示在微调阶段,一开始并不影响或恶化原来的文本到图像生成,它只是在模型微调过程中逐渐起作用。这样,它可以保持原始的文本到图像生成能力,但也提供我们设计的额外的 grounding 或布局控制通道。这样的措施可以有效地实现这种 grounding 控制的广泛应用,例如将文本描述与边界框grounding、关键点grounding 和其他类型的特殊对齐的条件结合起来。
文本 密集控制
图6
这里所说的 “密集控制” 是指通常以2D矩阵形式表示的条件,更类似于图像,例如分割图、深度图、法线图等。此方向的一个代表性工作是 control net,其结构显示在右侧。核心思想是复制预训练的stable diffusion的编码器部分,作为一个额外的条件分支,这个分支还接受额外的条件作为输入。只有这个新增加的条件分支被微调,这样它可以理解这个额外的条件输入。这个新增分支的输出经过特殊设计的零卷积被送回到主框架的解码器分支,这有着与先前类似的动机,即在微调开始时不会使用这个额外条件分支的任何信息,只是一种基本的文本到图像过程,就像在stable development训练中一样。后来,当模型学会将这些零初始化的参数设置为非零时,这个额外的条件分支逐渐融入,并实现了我们的目标,即文本和其他密集条件的组合。最近,在control net的基础上还有一些非常有趣的工作,它们试图建立一个更统一的解决方案。例如,他们试图建立一个单一的模型,更准确地说,一个可以操作不同类型条件的单一额外分支。另一方面,这样的统一模型允许一个模型现在接受不同类型的条件,并且现在可以接受多种不同类型条件的组合。例如,我们现在可以同时接受人体姿势图和分割图作为两个条件,再加上文本生成相应的图像。
推理时期引导
图7
最近也有一些非常有趣的研究,尝试仅在推理时期有额外指导。因此,通用引导对于视觉模型是一个代表性的工作,其中核心思想是扩展在分类引导中的思想,以将分类器扩展为一般的辨别器引导。以检测为例,在检测案例中,这个字母 F 表示一个操作在中间生成的噪声图像 c0 的检测器。它与真实值选择的标签 C 计算损失。最后计算一些由字母 L 表示的物体检测损失,其中这个数值被用来指导中间的生成过程,使生成的图像更好地遵循输入。尽管我们可以看到它并没有像一些之前的微调方法那样严格地遵循,但我们能够在不明确要求模型进行微调的情况下实现这样的推理。
图像编辑
潜变量空间混合
图8
假设我们已经知道要编辑的区域,我们可以应用一个特殊的地图,只操作这个特定的区域。我们可以混合潜变量,其中前景是由我们的输入文本生成的,背景只是保持原始图像。通过使用给定的遮罩特殊地混合它们,我们能够生成新的编辑图像,只简单地编辑这个遮罩区域内的内容。然而,有一个遮罩是一种强假设,因为用户生成它可能很困难,模型生成的遮罩并不总是那么可靠。并且,这种前景背景的混合边缘可能有一些生成的瑕疵。
图像-文本 注意力编辑
图9
一个有效的方式可能是直接操作图片的交叉关注图。这种交叉关注方式会隐含地有一些特殊的关注模式,从而可以实现某些编辑操作,例如词汇交换、增加短语和关注重组。
使用外部模型的编辑系统
图10
在编辑工作的最终环节,近来的趋势是建立基于外部模块的高效编辑系统。其中一种有效方法是将其与一些强大的分割模型结合,例如我们之前讨论的Sam 和 seams。这样,通过查看自然语言描述,模型会自动找到要编辑的区域作为遮罩,并更改该区域的视觉外观。另一个趋势是使用大型语言模型作为中心,训练不同的工具,这样它可以知道应该进行哪种编辑操作。在最后部分,我们将深入讨论这种多模型训练,并更多地讨论这些系统。
遵循文本提示
尽管我们训练模型希望它可以生成与文本条件语义相对应的图像,但在许多场景中可能不是这样。因此,也有工作试图探索我们是否可以简单地使模型更好地遵循文本提示。当变得更复杂时,它可能会有以下问题:例如属性泄露,例如不是生成红色汽车和白色图形,它可能决定生成红色汽车和红色纸张,而不是白色的。此外,像交换属性和缺失物体这样的其他问题也是常见的。
一种额外的方法是基于语言结构操作图像的值,使模型均匀地查看所有已知短语,而不是平等地查看所有单词,而是解析出所有的名词短语,并强制模型在交叉注意时分配相等的权重。有一个工作显示,在潜在空间中应用这种再分配可能也是有效的,可以直接在注意力图上添加某种相关的正则化。核心思想仍然是试图增强对最被忽视的主题词的最大关注。
除了测试时的推断,还有一系列的研究试图进行额外的微调阶段,使模型更严格地遵循文本提示。部分受到 IELTS 在大型语言模型中的反馈的成功启发,也有工作尝试是否可以使用强化学习来优化扩散模型,以更好地遵循不同的下游目标。
具体来说,这些提示对齐可能是我们使用一个大型多模态模型,例如代表性的 lava,获取生成的图像并生成一个描述,然后计算与输入提示的文本相似性,这产生了一个分数,基本上表明了生成图像和输入文本提示之间的语义对应关系。
概念定制
最后是概念定制。有时我们可能希望在生成的图像中添加额外的视觉概念。概率设置是有几幅图片,例如三到五幅图片。
我们尝试生成这些图片,但它们具有不同的风格和结合了其他不同的事物。这项研究开始于基于几张图片定制一个单一的概念。关键的想法是在输入词汇表中添加一个额外的独特标识符 V token,并进行微调,使模型理解这个V token 。
此外,还有研究显示我们是否可以学习多个概念,而不是一个单一的视觉概念,这些多个概念可以来自多组图像,或者一个带有遮罩的图像,指示其中的不同视觉实体。
最后,之前介绍的方法需要测试和微调,这意味着如果我们想把我们自己的概念添加到稳定版本中,我们可能需要自己微调模型,这对用户来说可能是不方便的。因此,还有一些有趣的工作使用推荐增强或上下文生成的思想,在测试时以额外的图像为条件,试图实现概念定制的类似目标。
展望
在文本到图像生成领域关于开源和云源代码基础的这两个方向上,已经有相当强大的模型。开源社区通常会更快地支持这些额外的控制方法以及这些新功能。然而,我们必须承认对于闭源模型,它可能在某些特别是某些具有挑战性的情况下工作得很好,例如人脸生成。我们希望在未来,这两部分能够相互启发,生成更好的文本到图像再生模型。
第二点是关于所谓的消费和生产视觉数据。这样的闭环可以在不同的层面完成,例如数据模型、训练目标等。但是,如果我们只是简单地看所谓的数据循环,文本和图像生成模型已经显示了一个非常有前途的循环,来帮助彼此生成数据。例如,我们今天介绍的许多生成模型已经使用理解模型,例如图像标题,来生成工作室数据以帮助训练。对于反向中断,最近也有一些很大的进展,使用合成数据来帮助分析任务,这在未来设置和数据不容易获取的设置中都是有效的。未来,关于合成数据在多大程度上可以帮助一般理解模型将是一个非常令人兴奋的话题,我们很期待看到这个方向上的未来工作。