扩散模型-上下文学习第一篇【In-Context Learning Unlocked for Diffusion Models】
In-Context Learning Unlocked for Diffusion Models
(为扩散模型解锁上下文学习能力)
图1:展示了我们所提出的“提示扩散”(Prompt Diffusion)方法在条件图像生成任务中所具备的上下文学习能力示意图:借助一个包含特定任务示例图像对(即一对图像)和文本指导的提示词,当给定一张与示例对中源图像类型相符的新查询图像时,Prompt Diffusion能够理解期望完成的任务,并在已见过(训练过的)和未见过(全新的)任务类型上均能生成相应的输出图像。
摘要:
我们提出了一种名为“提示扩散”(Prompt Diffusion)的框架,能够在基于扩散的生成模型中实现上下文学习。给定一对特定任务的示例图像(如从图像生成深度图/从深度图生成图像,以及从涂鸦生成图像/从图像生成涂鸦)和文本指导,我们的模型能够自动理解底层任务,并按照文本指导在新的查询图像上执行相同任务。为实现这一目标,我们提出了一种能够模拟广泛视觉语言任务的视觉语言提示,以及一种将其作为输入的扩散模型。该扩散模型使用这些提示在六种不同任务上联合训练。由此产生的“提示扩散”模型成为首个能够进行上下文学习的基于扩散的视觉语言基础模型。它在训练过的任务上展现出高质量的上下文生成能力,并能使用各自对应的提示有效泛化到新的、未见过的视觉任务。此外,我们的模型还呈现出令人信服的文本引导图像编辑效果。我们的框架旨在推动计算机视觉领域上下文学习相关研究的开展。我们在https://github.com/Zhendong-Wang/Prompt-Diffusion上公开了代码和预训练模型。
结论和讨论
在本研究中,我们推出了“提示扩散”(Prompt Diffusion)这一新型上下文视觉基础模型,该模型利用基于扩散的技术,根据视觉语言提示生成图像。实验结果表明,“提示扩散”模型不仅在训练过的任务上表现出良好的泛化能力,在未见过的任务上同样具有潜力。此外,“提示扩散”模型还支持可控的图像编辑,包括风格、艺术媒介以及情境变化等方面的调整,且不会引入过多不必要的修改。
图9:针对“提示扩散”(Prompt Diffusion)中视觉语言提示不同变体的消融研究。图中最后一行显示,当故意使查询图像的类型与示例对中源图像的类型不匹配时,“提示扩散”模型的行为表现将变得难以预测。
局限性。目前,由于用于微调的训练数据集中真实图像数量有限,我们模型的视觉范围受到限制。由于我们的基础数据集是经Stable Diffusion合成并经过适当筛选的,因此该模型难以生成高保真度的真实图像。此外,我们的模型仅在六项预先定义的任务上进行了联合训练,我们认为,扩大联合任务的范围将提升“提示扩散”(Prompt Diffusion)模型的上下文学习能力。如图9最后一行所示,当查询图像与示例对中的源图像类型不一致时,很难预测我们模型的行为表现;如图8所示,我们的模型在处理新任务时也存在一些困难。“提示扩散”模型在执行旋转和翻转等物理变换任务时也受到限制,除非针对这些任务进行额外的微调。为了进一步释放“提示扩散”模型的上下文学习能力,我们可以将微调设置更改为从头开始训练,但这需要大量的计算资源,就目前而言,这对我们来说可行性有限。
图8:我们展示了在模糊文本指导下,“提示扩散”(Prompt Diffusion)模型泛化至全新、未见过的任务时出现的一些失败案例。
“提示扩散”(Prompt Diffusion)代表了解锁基于扩散模型的上下文学习能力方面的一项开创性尝试。我们希望这项工作能够激励更多研究人员探索基于扩散的上下文学习的潜力,共同推动这一充满前景的领域取得进展。
引言
机器学习领域,尤其是自然语言处理(NLP)领域近期取得的进展,催生了多个最先进的大型语言模型(LLMs),如BERT、GPT-2、BART、T5[、PT-3和GPT-4等。这些模型已成功应用于情感分析、问答系统、机器翻译和文本生成等众多任务。这些大型语言模型表现出的一种新兴能力是上下文学习能力,这种现象通常被称为“上下文学习”。在GPT-3等大型语言模型中,上下文学习能力使它们仅需基于输入-输出示例与新查询输入(即提示)的组合进行条件设定,而无需优化任何模型参数,即可执行特定任务。通过合理设计提示结构并运用上下文学习,大型语言模型能够整合多种语言任务的预训练过程,并很好地泛化至之前未见过的任务。
尽管上下文学习在自然语言处理(NLP)领域已得到广泛研究,但其在计算机视觉领域的应用仍十分有限。为证明上下文学习作为大规模视觉应用标准方法的可行性与潜力,需解决两大关键挑战:
1)设计有效的视觉提示(需同时融入特定领域的输入-输出示例对和图像查询作为条件)比设计语言任务的提示更具挑战性;
2)在计算机视觉领域,大型模型通常针对特定任务进行训练,如分割[22]、检测[6]、分类[20]、自监督表示学习[37]、类别条件生成[10]以及文本到图像生成[41, 44, 67, 31]等。
因此,这些大型视觉模型并非为上下文学习而设计,缺乏适应新任务的灵活性。近期的一些研究尝试借鉴NLP领域的解决方案来应对这些挑战。具体而言,这些方法通过将示例图像、查询图像和输出图像拼接成一张大图来构建简单的视觉提示,然后训练基于Transformer的图像修复模型来预测被遮挡的输出图像[3, 56]。然而,拼接成大图的方式会显著增加计算成本,尤其是在处理高分辨率图像时。
为应对上述两大挑战,本文旨在解锁文本引导的基于扩散的生成模型的上下文学习能力。我们提出了一种新的模型架构——“提示扩散”(Prompt Diffusion),该架构能够在可兼容多种视觉语言任务的视觉语言提示下执行上下文学习。我们在六种不同的视觉语言任务上对“提示扩散”模型进行了联合训练。具体而言,我们首先通过采用视觉语言提示构建了一个通用的视觉语言任务:
其中,(图像1 → 图像2)构成一对视觉任务示例,例如(深度图 → 图像),文本指导为特定任务提供语言指令,图像3是与图像1类型一致的输入图像查询,因此它可以是真实图像或图像条件(如深度图或边缘图)。随后,我们受Stable Diffusion [69]和ControlNet [41]设计的启发,开发了“提示扩散”(Prompt Diffusion)模型,该模型可将我们的视觉语言提示作为输入。我们从Stable Diffusion [69]的预训练权重出发,在六种不同的视觉语言任务上对“提示扩散”模型同时且统一地进行微调,其中包括三个正向任务:图像分割/边缘(HED)图/深度图生成,以及三个逆向任务:根据分割图/边缘(HED)图/深度图生成图像。我们在图2中通过示例对“提示扩散”模型进行了说明。
图2:展示了在六种不同视觉语言任务上联合训练的“提示扩散”(Prompt Diffusion)模型。每个灰色虚线框代表一个任务示例:提示→输出。其中,输出是训练好的模型在给定视觉语言提示后随机生成的图像,且查询图像的类型与示例中的源图像一致。
“提示扩散”(Prompt Diffusion)模型成功地将六种不同任务的学习整合到一个视觉语言基础模型中。通过基于提示的学习,该模型能够有效把握输入示例对之间的内在关系。然后,模型可以利用这种理解,将这种关系重新映射到查询图像上,并结合语言指令生成输出图像,如图2和图4所示。更重要的是,该模型通过跨多任务学习获得了上下文学习能力。值得注意的是,我们发现“提示扩散”模型不仅在训练中见过的六项任务上表现良好,而且还能有效地泛化到多个未见过的全新任务上,如图5所示。
图5:向新任务的泛化能力展示。图中表明,“提示扩散”(Prompt Diffusion)模型在新出现的、未见过的任务上展现出良好的泛化能力,例如逆向涂鸦(Inv-Scribble)、逆向边缘检测(基于Canny边缘算子,Inv-Edge (CannyEdge))以及逆向法线图生成(基于法线贴图,Inv-Normal (Normal map))等任务。
总体而言,我们提出“提示扩散”(Prompt Diffusion)模型,作为解锁文本引导扩散模型上下文学习能力的初步尝试。实证研究表明,该模型在已训练任务和全新未见过的任务上均展现出良好的上下文学习能力。“提示扩散”模型所取得的成功,将为基于扩散的上下文视觉学习领域的研究提供启发并推动其进一步发展。我们的主要贡献总结如下:
• 创新性的视觉语言提示设计,可有效支持多种视觉语言任务的集成。
• “提示扩散”(Prompt Diffusion)模型——首个具备上下文学习能力的、基于扩散的通用视觉语言基础模型。
• 在已训练任务和全新未见过的任务上均实现了高质量的上下文生成效果。
相关工作
扩散模型
近期,扩散模型在生成式应用领域取得了巨大成功。扩散模型[47, 49, 17]作为一种复杂的生成模型,通过逐步去噪过程生成引人入胜的样本。这类模型先采用正向过程将噪声融入数据分布,再通过逆向过程重建原始数据。随后,大量研究[10, 31, 39, 41, 44]聚焦于扩展扩散模型规模或提升训练与采样效率[48, 26, 60, 71],以实现更优性能。其中,潜在扩散模型(Latent Diffusion Model, LDM)[41]通过在低分辨率潜在空间中应用扩散过程,显著降低了计算成本,成功将文本到图像的生成任务扩展至网络级大规模数据。近期,通用扩散模型(Versatile Diffusion)[67]将现有的单流程扩散管线拓展为多任务多模态网络,在一个统一模型中同时处理文本到图像、图像到文本及多种变体生成任务。此外,许多其他研究也将扩散框架扩展至多个领域,包括稳定的生成对抗网络(GAN)训练[59]、音乐生成[18]、文本到三维模型生成[34, 2]、语言生成[24]、新视角合成[66]、不确定性量化[13]、强化学习[58]等。除生成任务外,近期研究[28, 69, 15, 30, 4, 61, 12, 19]还探索了扩散模型在图像和视频编辑相关应用中的潜力。
上下文学习
近期大型语言模型(LLMs)的进展对多模态建模产生了重大影响。然而,许多此类模型[8, 11, 14, 23, 25, 27, 46, 50–52, 55, 53]仍需针对特定下游任务进行微调。相比之下,生成式预训练变换器(GPT-1/2/3/4 [35, 36, 5, 33])引入的上下文学习这一新型范式,使模型仅需少量提示即可快速适应新任务。GPT并未针对下游任务进行微调,而是将各类语言任务转化为根据上下文预测后续词元的任务,在未经显式训练的全新任务上展现出惊人的涌现能力[62][29, 42, 65, 70]。
近期,研究人员一直致力于构建涵盖计算机视觉任务的上下文学习框架。例如,Alayrac等人[1]提出了Flamingo模型,该模型整合了预训练的纯视觉模型和纯语言模型,并利用成对的图文示例作为提示,实现少样本学习。Bar等人[3]引入了一种通用图像修复模型,通过将期望输出作为掩码区域,并基于给定示例进行预测,从而处理多种视觉任务。受此启发,Painter模型[56]进一步整合了更多任务,构建了一个通用任务求解器,并发现若在领域内任务上进行评估,该模型在未见过的类别上也能展现出涌现能力。随后,SegGPT[57]将多种分割任务统一到一个通用框架中,并研究了用于生成提示示例的空间集成与特征集成方法。与先前研究不同,我们的工作主要聚焦于探索扩散模型的上下文学习能力。
视觉语言模型的提示设计
将各类语言任务转化为生成式问题这一思路,激发了大量后续研究探索如何构建恰当的生成条件(即提示工程)。研究表明,在众多语言任务中,不同的提示设计会导致性能表现出现巨大差异[32, 63]。随着视觉语言模型(如CLIP[37])取得突破性进展,提示设计在视觉领域也备受关注。CLIP不再直接使用分类器预测独热编码的标签向量,而是通过正确的提示模板(如“一张[标签]的照片”)实现分类功能。后续研究[72]发现,修改文本模板本身会对不同视觉下游任务的性能产生影响。其他研究进一步提出改进策略,如在给定图像的感兴趣区域添加红色圆圈,或对感兴趣图像块进行着色。尽管我们提出的方法同样探索视觉语言提示工程,但进一步在视觉主干网络中引入了一个新接口,用于接收并理解图像提示##
提示扩散与上下文学习
在本节中,我们将阐述如何对基于扩散的文本到图像生成模型进行视觉语言提示操作。首先,我们将在3.1节介绍创新的视觉语言提示设计;接着,在3.2节展示“提示扩散”(Prompt Diffusion)模型的设计架构;最后,在3.3节说明如何通过提示表示不同的视觉语言任务,以及如何对“提示扩散”模型进行多任务联合训练。
视觉语言提示设计
在大语言模型(LLMs)中,针对特定语言理解任务进行任务提示的一种常见方式是为训练好的模型提供目标任务的示例对以及输入查询[5]。例如,在机器翻译任务(英语到法语)中,Brown等人[5]构建的提示为{示例:sea otter → loutre de mer;查询:cheese → },模型将从提示中的示例学习将查询“cheese”翻译为“fromage”。
遵循这一惯例,我们通过将文本示例替换为成对的图像示例,并将文本查询替换为图像查询来设计视觉语言提示。我们进一步增加了一个文本输入,以实现文本引导的图像生成。通过这种设计,我们提出了一种新的输入 - 输出对格式,它可以概括大多数视觉语言任务的输入 - 输出配置。我们将其与一个示例一起展示如下:
其中示例:(图像1 → 图像2)告知模型目标任务是什么,以及如何通过示例来完成该任务,例如,根据热图生成图像;文本引导指导模型根据给定文本生成图像;图像查询:图像3,其类型与图像1一致,表示特定任务的输入。示例对可以适应任何图像域转换任务,例如正向任务:图像→分割/深度/热图,以及逆向任务:分割/深度/热图→图像,而文本引导的加入提供了生成目标图像的额外上下文。接下来,我们介绍提示扩散(Prompt Diffusion),提示扩散是一种基于扩散的生成模型,它以视觉语言提示作为输入,并输出目标图像。
图3:ControlNet(左)和提示扩散(Prompt Diffusion,右)的模型架构比较。提示扩散诱导模块的网络结构详细信息可在附录C中找到。
提示扩散
受Stable Diffusion[41]和ControlNet[69]在文本到图像生成以及图像条件生成方面取得成功的启发,我们基于ControlNet的设计构建了提示扩散(Prompt Diffusion)模型。我们的视觉语言提示是多模态的,融合了文本和图像输入。对于图像输入,我们在通道维度上拼接图像示例对,然后通过独立的堆叠卷积层将拼接后的示例对和图像查询投影到等维的嵌入表示。我们计算这两个嵌入表示的和,并将其输入到ControlNet分支。对于文本输入,我们遵循Stable Diffusion[41]的惯例,通过预训练的CLIP[37]文本编码器对文本输入进行编码。然后,将得到的CLIP文本嵌入表示通过交叉注意力层输入到Stable Diffusion分支。我们在图3中对提示扩散模型进行了说明。
我们保持Stable Diffusion分支和ControlNet分支与它们原有的版本一致,这样我们就可以从现有的检查点(checkpoint)对提示扩散(Prompt Diffusion)模型进行微调,而无需从头开始训练。我们从Stable Diffusion的“v1.5”检查点对提示扩散模型进行微调。
上下文学习
在我们的联合训练中,我们考虑了六种不同的视觉任务。如图2所示,当任务输入为干净图像时,我们称其为正向任务;当任务输入为图像条件(如分割图/深度图/HED图)时,我们称其为逆向任务。
数据集
我们采用Brooks等人[4]提出的公开数据集作为基础数据集,该数据集包含约31万张图像 - 文本描述对。此外,我们使用Midas获取数据集中所有图像的深度图和法向图。我们通过应用Uniformer获得图像分割图。我们通过Canny边缘检测器收集Canny边缘图,通过HED边界检测器收集HED图。需要注意的是,深度图、HED图和分割图均用于我们的模型训练,而Canny边缘图和法向图仅在测试时用于评估提示扩散(Prompt Diffusion)模型在新颖、未见过的任务上的上下文学习能力。
逆向任务
我们考虑三种逆向任务:深度图到图像、HED图到图像以及分割图到图像。对于数据集中的任何图像 - 文本描述对(I1,C1)(I_1,C_1)(I1,C1),我们首先随机采样一个任务和另一张随机图像I2I_2I2以创建示例对,例如(HED(I2),I2)(HED(I_2),I_2)(HED(I2),I2)。然后,我们使用示例对、文本描述以及与示例对指定任务一致的图像条件构建视觉语言提示。图像I1I_1I1是提示扩散模型的去噪目标。逆向 - HED任务的一个完整示例如下所示:
通过用其他两种图像条件替换HED图,我们可以得到所有三种逆向任务的视觉语言提示。
正向任务
我们还考虑三种正向任务(图像处理任务):图像到深度图、图像到HED图以及图像到分割图。我们遵循与逆向任务相同的规则来创建视觉语言提示。注意,这里的任务是反向的,所以我们调换示例对和查询 - 目标对内部的顺序。对于图像处理任务,图像的文本描述并非必要,因此我们为每个任务使用特定的固定文本标签,例如“hed maps”。正向 - HED任务的一个完整示例如下所示:
联合训练
我们在这六种不同的视觉语言任务上联合训练提示扩散模型。为简单起见,我们在这六项任务上随机均匀地训练模型。具体而言,每个小批量数据包含从随机选择的任务中随机采样的视觉语言提示以及相应的目标图像。在这些不同任务上进行联合训练释放了扩散模型的上下文学习能力,如图4和图5所示。为了应用无分类器引导(CFG)[16],我们在训练过程中随机丢弃10%的文本引导
实验
在本节中,我们进行了广泛的实验,以展示提示扩散(Prompt Diffusion)作为一种具备上下文学习能力的强大通用视觉语言基础模型的威力。首先,在4.1节中,我们表明提示扩散在多任务训练中表现良好。然后,在4.2节中,我们展示提示扩散具有有前景的上下文学习能力,并且能够很好地泛化到新的、未见过的任务上。在4.3节中,我们表明提示扩散支持可控的文本引导图像编辑。最后,在附录A中,我们对视觉语言提示的三个主要组成部分进行了消融研究。
实现
我们在ControlNet 的代码库上实现提示扩散。如图3所示,我们通过堆叠的卷积层实现了视觉示例对编码器和图像查询编码器。这些层的详细信息见附录C。我们加载Stable Diffusion “v1.5”检查点的权重进行微调。我们将学习率固定为1×10−41×10−41×10−4,并每4个小批量(批量大小为512)累积梯度。我们在3.3节中详细描述了所使用的数据集以及如何对原始数据集进行增强。我们在8块A100 Nvidia GPU上训练模型5000 - 20000步。更长的训练时间有助于模型在微调数据集上表现更好,但在分布外图像上可能表现较差。论文中展示的结果基于5000步微调后的检查点。
评估
我们进行了定性和定量评估,以评估提示扩散的性能。我们提供全面的定性评估,以衡量提示扩散的上下文学习能力。为了评估生成质量,我们提供了使用零样本弗雷歇初始距离(FID,Fréchet Inception Distance)对逆向任务和均方根误差(RMSE,Root Mean Square Error)对正向任务的定量结果,详见4.4节。测试数据集由ControlNet [69]示例图像、DreamBooth [43]数据基准以及我们基础数据集[4]的测试分割中的随机图像组成。在推理阶段,来自我们数据集的另一张随机图像用于为每个特定任务构建示例对。
多任务学习
我们在三项逆向任务(包括深度/HED/分割图反转)和三项正向任务(包括深度/HED/分割图提取)上联合训练提示扩散模型。注意,ControlNet [69]旨在利用特定任务条件(如深度图)增强预训练的图像扩散模型。我们针对每个逆向任务,基于相同的Stable Diffusion检查点,在我们的数据集上独立微调一个ControlNet作为我们的基线,我们将其称为CN(FT)。我们在图4中对提示扩散模型在六项训练任务上进行了定性评估。
图4:正向任务和逆向任务的定性结果。我们展示了将我们的提示扩散模型应用于六项训练任务(深度反转/HED反转/分割反转以及深度提取/HED提取/分割提取)的示例。
我们观察到,提示扩散模型不仅能够根据逆向任务中不同任务特定的条件生成高保真图像,而且当给定正向任务的真实图像时,还能够生成详细且合理的图像条件。对于逆向任务,当图像条件(如深度图和HED图)已经勾勒出输出图像的主要组成部分时,提示扩散模型能够成功保持输出图像的形状一致性,并在不同随机种子和文本引导下生成多样化的图像。当图像条件较为粗略(如分割图)时,提示扩散模型能够生成更具想象力的图像(例如,第三组中具有个性化发型的小精灵)。对于正向任务,根据经验我们发现,与原始数据集中的这些图相比,提示扩散模型生成的深度图和HED图通常更加详细。生成的分割图与微调期间用作目标的分割图相当。
注意,ControlNet 是专为基于图像条件进行图像生成而设计的。因此,我们在附录的图10中,针对三项逆向任务将提示扩散模型与CN(FT)进行了比较。结果表明,针对每个单独任务专门训练的CN(FT)与提示扩散模型表现相当。我们在附录的图11中进一步评估了CN(FT)的生成能力。我们直接让CN(FT)在新任务上进行推断,观察到大量失败案例。这验证了为使提示扩散模型具备跨多种任务泛化的能力,进行多任务训练的必要性。
我们对提示扩散模型与ControlNet [69]进行了定性比较。我们遵循ControlNet的指导方法,基于相同的Stable Diffusion检查点,针对数据集中的每个逆向任务独立微调一个ControlNet作为基线,我们将其称为CN(FT)。比较结果如图10所示。我们观察到,联合训练的提示扩散模型与独立训练的ControlNet表现相当,这意味着应用多任务学习并未带来显著的性能变化。我们在图11中进一步评估了特定任务ControlNet的生成能力。在推理过程中,我们直接将独立微调后的ControlNet应用于一个新任务。我们可以观察到,当直接将ControlNet应用于新的、未见过的任务时,出现了大量的失败案例。
上下文学习能力
为了进一步研究提示扩散模型的泛化能力,我们在有监督训练数据集之外的任务上对其进行评估。我们首先选择三项未见过的任务,即逆涂鸦(从个性化涂鸦生成图像)、逆边缘(从Canny边缘图生成图像)和逆法线(从法线图生成图像)。给模型提供一对图像示例,用以说明如何执行期望的任务,并要求其在文本引导下,对新的图像查询输入重新执行该任务。
图5:对新任务的泛化能力。我们展示了提示扩散(Prompt Diffusion)模型在全新的、未见过的任务(如逆涂鸦(Inv-Scribble)、逆边缘(基于Canny边缘图)(Inv-Edge (CannyEdge))以及逆法线图(Inv-Normal (Normal map)))上具备良好的泛化能力。
图6:我们在两个全新的任务上执行提示扩散(Prompt Diffusion):风格迁移和输入-输出示例对未对齐的情况。前两行展示的是风格迁移的结果,而后两行展示的是(输入输出)未对齐情况的结果。
我们在图5中展示了定性结果。提示扩散模型成功学习了示例对之间的潜在关联,并将这种关系重新映射到查询图像与输出图像对上,而无需在这三个新领域上进行训练或微调。如图中结果所示,文本引导也能很好地控制图像生成过程。
在图6中,我们进一步在两个截然不同的任务上对提示扩散模型进行评估:风格迁移和输入-输出示例对未对齐的情况。对于第一个任务,如图中前两行所示,给提示扩散模型提供一对图像风格迁移示例,然后要求其将这种风格迁移应用到新的目标图像上,同时辅以“一张高质量图像”等一般性文本描述。研究结果表明,提示扩散模型不仅能够从视觉示例对中识别出潜在任务,还能在新查询图像上熟练地执行该任务。对于第二个任务,如图中最后两行详细展示的那样,我们研究了示例对中像素对齐情况的影响。即便示例对中的不同区域被遮蔽,导致像素未对齐,提示扩散模型仍能在不受明显干扰的情况下,熟练地完成预期任务。
图像编辑
图7:图像编辑结果。我们展示了提示扩散模型通过“一步式”和“两步式”两种策略在图像编辑任务中的出色表现。一步式:当仅给出图像条件(如深度图/语义分割图/边缘检测图等)时,我们的模型会根据文本描述对该条件进行编辑以生成图像。两步式**:当给出原始图像时,我们首先进行正向采样以获取图像条件,然后执行逆向任务,在文本引导下对该条件进行编辑**。两步式方法提供了更具可控性的编辑效果。
我们通过两种方式证明了提示扩散模型具备强大的图像编辑能力。首先,若仅给出图像条件(如深度图/语义分割图/边缘检测图等),提示扩散模型能够基于输入的图像条件以及额外的文本描述来合成图像。其次,若给定一张基础图像,我们可以采用两步策略来实现可控的图像编辑:先在同一模型(即提示扩散模型)内生成图像条件,再根据生成的条件和文本描述生成编辑后的图像。如图7所示,借助图像条件,提示扩散模型能够按照文本引导输入的要求进行一致的修改,而无需担心出现不期望的过度改动。
定量结果
我们以定量分析的方式将提示扩散模型与CN(FT)进行比较。对于逆向任务,我们在基础数据集[4]的测试集分割上测量零样本FID(Fréchet Inception Distance,弗雷歇初始距离)值。我们将对应的图像条件、文本输入和示例对作为提示扩散模型或CN(FT)的输入,生成10,000张随机图像,每个输入生成一张图像。然后,我们使用这10,000张生成的样本与对应的10,000张测试图像(作为参考)来计算FID值。对于正向任务,我们测量生成图像条件(如深度图/边缘检测图/语义分割图等)与测试集中对应图像条件之间的零样本均方根误差(RMSE),其中所有图像条件均被缩放至[0, 1]范围以计算RMSE。请注意,对于提示扩散模型和CN(FT),我们都使用相同步数(5000步)进行微调。定量比较结果见表1。我们发现,与CN(FT)相比,提示扩散模型的性能相当甚至更优。
详细网络结构: