【论文阅读】InstructPix2Pix: Learning to Follow Image Editing Instructions
摘要:
提出了一种方法,用于教导生成模型根据人类编写的指令进行图像编辑:给定一张输入图像和一条书面指令,模型按照指令对图像进行编辑。
由于为此任务获取大规模训练数据非常困难,我们提出了一种生成配对数据集的方法,结合了两个大型预训练模型:
- 语言模型(GPT-3);
- 文本到图像模型(Stable Diffusion)。
这两个模型捕捉了关于语言和图像的互补知识,可以组合起来生成配对训练数据,用于同时涉及这两种模态的任务。
我们利用生成的配对数据训练了一个条件扩散模型,该模型给定输入图像和文本指令后,生成编辑后的图像。
模型在前向传播过程中直接执行图像编辑,且不需要额外的图像示例、输入/输出图像的完整描述或每个实例的微调。
1. 研究背景
-
图像编辑的挑战:
- 传统的图像编辑模型依赖于大量有监督的数据来指导模型生成,这通常需要提供 “原始图像-编辑后图像”对,导致数据标注成本极高。
- 这些模型通常缺乏灵活性,专门针对特定的编辑任务(如上色、修复等),不能广泛适应不同的编辑需求。
-
生成模型的局限性:
- 虽然一些文本到图像的生成模型(如 DALLE-2)本身具有图像编辑功能(如图像变化、区域填充),但它们在进行目标编辑时较为困难,因为相似的文本提示并不能保证产生相似的图像。
- Prompt-to-Prompt 方法解决了这一问题,通过将生成的图像与相似的文本提示联系起来,使得图像可以进行独立编辑。
-
多模型组合:
- 近年来的研究发现,多个大型预训练模型的结合能够有效解决一些单一模型无法完成的多模态任务(如图像描述和视觉问答)。这些方法包括:联合微调、通过提示信息进行通信、模型间的反馈引导等。
- 我们的方法与这些研究相似,结合了 GPT-3 和 Stable Diffusion 这两个互补能力强大的模型,但与以往的研究不同,我们通过这两种模型生成配对的多模态训练数据。
-
扩散模型:
- 在 扩散模型(如 Stable Diffusion)方面的进展推动了图像合成、视频、音频、文本等多模态生成模型的突破。文本到图像的扩散模型(如 Stable Diffusion)能够根据任意文本描述生成逼真的图像。
-
与现有方法的对比:
- 现有的一些编辑方法(如 SDEdit)主要是用于编辑真实图像,通常通过加噪和去噪来调整输入图像并生成新的图像。
- 然而, InstructPix2Pix 方法不同,它只依赖 单张图像 和 一条编辑指令,通过前向传播直接进行图像编辑,无需额外的用户手绘掩码或其他图像,这使得编辑过程更加简便和高效。
-
研究目标:
- 本研究的目标是开发 InstructPix2Pix 模型,能够在不依赖大量人工标注数据的情况下,通过自然语言指令进行灵活多样的图像编辑。这一目标对于非结构化的编辑任务尤为重要,因为用户可以通过自然语言直接描述编辑需求,避免了复杂的手动调整,极大地提升了图像编辑的便利性和灵活性。
2. 数据生成:生成配对的训练数据集
我们结合了两种大型预训练模型的能力——一个用于语言处理的大型语言模型(GPT-3)和一个文本到图像的模型(StableDiffusion)——来生成包含文本编辑指令及其对应的编辑前后图像的多模态训练数据集。以下是这个过程的两个关键步骤:
2.1 生成指令和配对标题
首先,我们在文本领域操作,利用大型语言模型根据图像描述生成编辑指令和编辑后的文本描述。例如,给定输入标题“女孩骑马的照片”,语言模型可以生成编辑指令“让她骑龙”以及修改后的输出标题“女孩骑龙的照片”。这种方式允许我们生成大量多样化的编辑,同时保持图像变化与文本指令之间的对应关系。
为此,我们对GPT-3进行了微调,训练数据来自于人类编写的编辑三元组:1) 输入标题,2) 编辑指令,3) 输出标题。训练数据由700个来自LAION-Aesthetics V2 6.5+数据集的输入标题及手动编写的指令和输出标题组成。通过微调GPT-3 Davinci模型一轮,我们的模型能够生成既富有创意又合理的指令和标题。最终生成的数据集包含454,445个样本。
2.2 从配对标题生成配对图像
接下来,我们使用预训练的文本到图像模型(如StableDiffusion)将一对标题(编辑前后的描述)转换为一对对应的图像。然而,文本到图像模型在生成图像时,可能会因为提示的微小变化而生成差异很大的图像。例如,“一只猫的照片”和“一只黑猫的照片”可能生成完全不同的图像,这对于我们训练编辑图像的模型并不适用。
为了解决这一问题,我们采用了Prompt-to-Prompt方法,这种方法通过在去噪过程中的交叉注意力权重共享来保证生成的图像在风格和内容上具有高度一致性。这可以确保生成的图像在相似性上保持一致,满足训练需求。
此外,不同的编辑可能会对图像产生不同程度的变化。因此,我们通过调节去噪步骤中共享注意力权重的比例(即p值),来控制图像对之间的相似度。为寻找合适的p值,我们为每对标题生成100个图像对,并通过CLIP空间中的方向相似度度量(衡量图像变化一致性)对这些图像对进行过滤,从而保证图像对的多样性和质量,提升数据生成的可靠性。
3. 模型结构:InstructPix2Pix的设计
InstructPix2Pix模型的核心就是通过一个强大的扩散模型,结合图像和文本指令来编辑图像。在生成过程中,模型不仅学会如何去噪,也学会如何根据不同的条件(图像、文本)调整图像,使得最终的生成图像既符合输入图像,也符合给定的文本指令。通过“无分类器引导”,我们可以在多样性和质量之间找到一个平衡。
3.1 扩散模型的基本原理
扩散模型的目标是通过逐步去噪生成数据。简单来说,扩散模型从一个随机噪声开始,然后逐步去除噪声来生成图像。这个过程通过一个自编码器实现:
- 编码器(Encoder,E):将图像压缩成潜在表示(latent representation)。
- 解码器(Decoder,D):将潜在表示转换回图像。
这个模型的核心目标是通过学习如何从噪声中恢复真实的图像数据,来生成新图像。
3.2 潜在扩散模型(Latent Diffusion)
潜在扩散模型的一个重要改进是它在潜在空间中工作,而不是直接在图像空间中。这让它更加高效,因为它减少了图像的复杂度并提高了生成质量。潜在空间是通过一个预训练的变分自编码器(VAE)获得的。
- 潜在空间:图像通过编码器转换成一个较低维度的潜在表示(latent representation),然后在这个表示上进行去噪,最后通过解码器重新生成图像。
3.3 InstructPix2Pix模型
InstructPix2Pix是基于上述潜在扩散模型的,并增加了“编辑图像”的功能。它的目标是根据文本指令修改图像。
例如,给定一个图像描述(比如“女孩骑马”),模型可以通过添加指令(例如“让她骑龙”)来改变原始图像,生成一个新的图像(“女孩骑龙”)。
3.3.1 模型如何工作:
- 图像和文本条件:InstructPix2Pix模型不仅输入图像(如“女孩骑马”),还输入文本指令(如“让她骑龙”)。
- 噪声预测:模型的任务是根据图像和指令,预测噪声并去除它,从而改变图像。它通过在潜在空间中处理图像的噪声来生成与指令相符的新图像。
3.3.2 无分类器引导(Classifier-free Guidance)
无分类器引导是一种方法,用于控制模型生成图像时,如何平衡图像的质量和多样性。基本思路是:
- 条件去噪:模型根据给定的条件(图像和文本指令)去生成图像。
- 无条件去噪:偶尔,模型也需要生成“无条件”的图像,也就是说,在没有任何条件限制下生成图像。这样可以让生成的图像更具多样性。
通过调整“引导尺度”(guidance scale),我们可以控制生成的图像在多大程度上与输入条件(图像和文本指令)相匹配。
例如:
- sI:控制图像与输入图像(cI)相符的程度。
- sT:控制图像与文本指令(cT)相符的程度。
3.3.3 如何调整引导尺度(sI 和 sT):
- 训练过程:在训练时,模型会有时只根据图像(或指令)去生成图像,有时根据两者一起生成图像。通过这种方式,模型学会如何平衡两者。
- 推理过程:在推理时,调整sI和sT的值来控制生成图像的质量。例如,当我们增加sI时,生成的图像会更贴近原始图像;增加sT时,生成的图像会更贴近文本指令。
4. 结果
4.1 定性对比:
-
本研究与两项相关工作的对比:
- SDEdit:基于预训练的扩散模型进行图像编辑。输入部分噪声的图像,去噪后生成编辑图像。缺点:需要提供完整的图像描述,而非简单的编辑指令。
- Text2Live:通过文本提示生成颜色+透明度增广层来编辑图像,适用于增量编辑。缺点:无法处理复杂的编辑类型。
-
结果:
- SDEdit 在处理风格变化较小的编辑时表现较好,但在处理较大或更复杂的变化时,难以保持图像的一致性(例如物体分离、身份保持等)。
- Text2Live 在处理加法图层(如修改背景)时效果不错,但对于其他类型的编辑任务则受到限制。
4.2 定量对比:
- 指标:
- CLIP图像嵌入余弦相似度:衡量编辑后的图像与原始图像的相似度。
- 方向性CLIP相似度:衡量文本描述的变化与图像变化的一致性。
- 这两个指标是对立的,增强编辑效果会导致与原图的相似度降低,反之亦然。
- 结果表明,与 SDEdit 对比时,本文方法在相同的方向性相似度下,图像一致性 更高,表现更优。
4.3 消融实验
- 数据集大小和过滤方法:
- 数据集大小:减少数据集的大小会导致模型在执行编辑时只能进行较小、细微的调整,无法进行大范围的图像修改(表现为高图像相似度,但低方向性相似度)。
- CLIP过滤:去除CLIP过滤会导致编辑图像与输入图像的整体一致性降低。
- 分类器无关引导的影响:
- sT(文本指令的引导尺度):增大 sT 强化文本指令的影响,使得输出图像更符合指令要求,编辑效果更强。
- sI(输入图像的引导尺度):增大 sI 有助于保持输入图像的结构,使输出图像更接近输入图像,从而保持图像一致性。
- 结果:
- 在实际操作中,通常通过调整 sT 和 sI 的值来平衡一致性与编辑强度。
- 最佳的引导尺度范围是:
- sT:5 到 10
- sI:1 到 1.5
5. 主要局限性:
-
生成数据集的视觉质量:我们的模型依赖于生成数据集的视觉质量,因此受到用于生成图像的扩散模型(如Stable Diffusion)的限制。
-
泛化能力的限制:该方法在处理新的编辑指令时存在一定的局限性,尤其是在图像变化与文本指令的关联上,受到:
- GPT-3用于微调的人工编写指令的局限;
- GPT-3生成指令和修改图像描述的能力的限制;
- Prompt-to-Prompt方法修改生成图像的能力的限制。
-
空间推理和物体计数的困难:模型在处理与物体计数和空间推理相关的指令时表现不佳,例如“将它移到图像的左侧”,“交换它们的位置”,“将两个杯子放在桌子上,一个放在椅子上” 等。
-
数据和模型的偏见:由于模型和数据的偏见,生成的图像可能会继承或引入这些偏见(如图14所示)。
未来的研究方向:
- 空间推理的指令处理:如何改进模型对空间推理指令的理解和执行。
- 与用户交互结合的指令:如何将指令与其他调节方式(如用户交互)结合,以增强模型的灵活性。
- 基于指令的图像编辑评估:如何有效地评估基于指令的图像编辑结果。
- 人类反馈的整合:如何利用人类反馈改进模型,未来可通过“人类在回路中的强化学习”策略来提高模型与人类意图的一致性。