点击下方卡片,关注「集智书童」公众号
导读
尽管自然语言指令为引导自动化图像编辑提供了一种直观的方法,但深度学习模型往往难以实现高质量的结果,这主要是因为创建大型、高质量训练数据集的难度较大。为此,以往的方法通常依赖于文本到图像(T2I)生成模型来生成原始图像和编辑图像的成对,以模拟指令引导的图像编辑模型的输入/输出。然而,由于T2I模型的局限性,这些图像对往往无法与指定的编辑指令相匹配,这会负面影响在这样数据集上训练的模型。
为了解决这个问题,作者提出了Instruct-CLIP(I-CLIP),这是一种自监督方法,它学习原始图像和编辑图像之间的语义变化,以改进并更好地对齐现有数据集中的指令。此外,作者将Instruct-CLIP应用于处理噪声潜图像和扩散时间步,以便它可以用于训练潜在扩散模型(LDMs),并在扩散 Pipeline 的任何步骤中有效地执行编辑指令与潜在空间中图像变化之间的对齐。作者使用Instruct-CLIP来校正Instruct Pix2Pix数据集,并获得了超过120K个精炼样本,然后作者使用这些样本来微调他们的模型,并受作者基于I-CLIP的新型损失函数的指导。结果模型可以生成与给定指令更一致的编辑。
代码和数据集:https://github.com/SherryXTChen/Instruct-CLIP.git
- 引言
近年来,在指令引导的图像编辑领域取得了显著进展,引入了直观且强大的工具,这些工具仅需一条文本指令即可进行图像编辑[1, 30, 32-34]。特别是,InstructPix2Pix (IP2P) [1] 开创了基于扩散的指令驱动图像编辑,为其后的许多研究奠定了基础[11, 16, 32]。
鉴于Prompt-to-Prompt和LLMs的通用性,此类数据集可以涵盖广泛的指令。然而,图像编辑的质量通常受限于生成方法的能力,当原始图像与编辑图像之间的变化与编辑指令不匹配时(图2),就会产生问题。这影响了在这些数据集上训练的模型的表现,如图1中的IP2P结果所示。
尽管改进图像编辑数据集会显著提升基于其训练的模型性能,但这样做是困难的。一方面,手动创建编辑指令及其对应输出极为费时费力且不切实际。另一方面,构建一个能够执行有效编辑以创建指令引导的图像编辑数据集的流程并非易事。毕竟,如果这样的流程存在,它本身就已经是一种成功的指令引导的图像编辑方法了。
此外,从头开始创建全新的数据集可能并非必要。尽管先前数据集存在固有局限性,但作者观察到它们仍然为训练图像编辑模型提供了一些“信号”。毕竟,如图1所示,作者发现基于这些数据集训练的模型产生的结果,虽然不完美,但表明系统对所需编辑有所理解。作者能否利用这一信号来优化数据集并解决其问题?受CLIP[22]的启发,该模型通过对比语言-图像预训练学习丰富的语义对齐,作者以类似的方式将原始编辑图像对及其对应的编辑指令嵌入到相同的特征空间中,使用神经网络,作者称之为Instruct-CLIP。然后,作者使用一个独立的文本解码器从学习到的特征中生成更精确的指令[12]。
Instruct-CLIP配备了改进的DINOv2 [18] Backbone 网络,能够处理Stable Diffusion (SD) [23]中的噪声潜在图像,因此它不仅能在预处理阶段提升训练数据质量,还能在训练过程中作为有效的学习目标。作者使用Instruct-CLIP对IP2P数据集 [1]中的指令进行精炼,从而得到120K+个独特、增强的样本(见图2)。然后,使用Instruct-CLIP引导的损失在该数据集上对IP2P模型进行微调,使得训练出的指令引导编辑模型能够产生更忠实于指令的结果(见图5)。
总之,作者的贡献包括:
- • 一种双用途模型,用于优化数据集指令并增强编辑模型训练。
- • 包含超过12万样本的大型数据集,具有更准确和丰富的指令。
- • 基于上述数据集训练的指令引导图像编辑方法。
- 相关工作
2.1. 基于文本到图像扩散的图像编辑
扩散模型[3, 4, 15, 20, 23, 25]为图像生成质量设定了新的标准,并成为各种文本到图像(T2I)编辑应用的基础。一系列方法[7, 17, 19, 26-28]旨在将给定图像编辑成与目标 Prompt 在语义上对齐,使用输入 Prompt 作为 Anchor 点。然而,像稳定扩散(SD)[23]这样的传统T2I模型即使在相似 Prompt 下也往往会产生不一致的结果,其中主题和背景都可能发生显著变化。 Prompt 到 Prompt [7]通过保留输入 Prompt 和目标 Prompt 中共享组件的注意力图来改善图像视觉对齐,但两种图像都是合成的,因此无法处理任意输入图像。空文本反转[17]通过在SD中根据输入 Prompt 重建输入图像来克服这一缺点。他们通过将空文本作为负 Prompt 进行优化,使其与 Prompt 到 Prompt 结合时能够进行可控编辑。
其他方法同样利用扩散逆变换技术与独特的编辑机制:扩散解耦[28]旨在找到输入和目标 Prompt 特征的最佳组合,以在输入图像的视觉对齐和目标 Prompt 的语义对齐之间找到平衡;EDICT[27]使用耦合逆变换以改进重建,从而提升编辑性能;pix2pix-zero[19]优化目标图像的模型注意力图以匹配输入图像的注意力图,以实现两者之间的视觉一致性;而即插即用[26]则将输入图像的自注意力图集成到编辑图像生成过程中。尽管每种方法都有其自身优势,但一个主要的共同缺点是它们都需要输入和输出图像的 Prompt ,这可能对用户来说比较繁琐。
2.2. 指令引导的图像编辑
近期涌现出了一些新方法,这些方法利用了Stable Diffusion中的先验知识,并提供了更用户友好的图像编辑方式,只需一条编辑指令即可完成[1, 11, 16, 30, 32, 33]。例如,InstructPix2Pix (IP2P) [1] 将 Prompt 替换为一条编辑指令,该指令条件化了编辑图像的生成,其中输入图像作为额外条件进行拼接。在这些指令引导的图像编辑方法中,HIVE [33] 收集用户对输出的反馈来训练奖励模型,从而迭代地提高模型输出。Watch Your Step [16] 和 ZONE [11] 都使用了 Mask 机制——要么通过测量IP2P在有指令和无指令情况下的预测差异,要么通过使用分割模型的区域交并比(IoU)方案。这有助于它们避免编辑与指令无关的区域,从而实现更好的局部编辑能力。
2.3 指令引导的数据集
无论引入何种额外的控制机制来改善指令引导的图像编辑结果,指令引导图像编辑模型的发展本质上都依赖于合适的训练数据集。然而,自动创建大规模、高质量的数据集是一项重大挑战,因为这样一个数据创建系统本身就可以构成一种编辑方法。先前的研究通过结合现有的合成模型来近似期望的指令引导图像编辑方法的行为,主要遵循两种不同的方法。
数项工作[1, 33, 34]采用了第一种方法,该方法利用Prompt-to-Prompt [7]通过描述每张图片内容的对应 Prompt 对生成原始/编辑图像对。这些系统通常微调大语言模型(LLM)如GPT3 [2],以从 Prompt 对中生成编辑指令。虽然这种方法可以生成多样化的样本,但数据集质量本质上受到Prompt-to-Prompt和LLM局限性的限制,通常会导致编辑指令与从原始图像到编辑图像的实际转换之间存在不匹配(见图2)。
第二种方法试图通过创建数据集来解决这些局限性,具体是通过修复图像来实现[30, 32]。在这里,通过修复原始图像中选定的区域来生成编辑后的真实图像。尽管这种技术提高了局部图像编辑样本的质量,但它存在两个显著的缺点:1)它不能生成具有全局修改(如风格迁移)的样本,2)它通常需要手动创建修复区域。这些局限性不仅增加了数据集创建的成本,而且极大地限制了数据集的大小。
作者现在描述作者解决先前工作中局限性的方法。
- 指令CLIP
作者的目标是通过对现有数据集[1, 9, 29, 33]进行改进来提升先前指导图像编辑方法的质量,作者提出通过纠正其编辑指令来实现这一目标。然而,尽管这些数据集中的指令有时并不能反映原始图像与编辑图像之间的实际变化,作者观察到这些数据集整体上仍然提供了足够的“信号”来训练编辑模型。因此,主要挑战在于如何恰当地利用这一“信号”来细化给定的编辑指令,从而提高整体数据集的质量。
为此,作者提出了Instruct-CLIP(简称I-CLIP),该模型通过神经网络进行对比学习,将原始图像
与编辑结果
之间的视觉变化嵌入与相应的编辑指令
相同的特征空间。Instruct-CLIP受到CLIP[22]的启发,CLIP学习图像与其标题之间的语义对齐。同样,Instruct-CLIP学习原始-编辑图像对中的视觉变化与其编辑指令之间的关系。
与CLIP类似,Instruct-CLIP也包含一个图像编码器,在作者的情况下,该编码器编码输入图像和编辑图像之间的视觉变化(表示为
),以及一个文本编码器,用于编码编辑指令(表示为
)。然而,与原始的CLIP图像编码器不同,作者的编码器接受原始图像和编辑图像作为输入,以便编码它们之间的视觉差异。如图3a所示,作者通过计算并最小化两个编码器之间的对比损失(公式2)来微调这两个编码器,类似于CLIP。
此外,尽管
的架构与CLIP相同,作者的
在
之前增加了两个共享权重的DINOv2 [18]模块,如图3b所示。这些DINOv2单元从输入图像中提取丰富的、鲁棒的视觉特征,使
能够专注于编码原始图像和编辑图像之间的差异。当作者引入Stable Diffusion的(SD)潜在图像编码和扩散到网络中时,这一点至关重要,如第3.2节所述。
为了描述
的架构,作者将给定图像
的 DINOv2 输出表示为
,以及其
层中每层的中间特征表示为
。因此,在
中,作者首先通过 DINOv2 分别处理输入图像
和编辑后的图像
,计算得到
和
,然后将 DINOv2 特征差
输入到
。在处理之前,将中间特征差
也添加到
的第
层输入中。作者发现,通过提供可能从
到
层处理中丢失的信息,这种方法在作者的实验中提高了模型性能,类似于 Shortcut [6]。
为了训练Instruct-CLIP,作者首先使用预训练的CLIP模型中的相应块初始化
和
。然后,给定一个来自现有指令引导的图像编辑数据集(如InstructPix2Pix [1])的包含
个数据样本的批次
,作者首先计算视觉差异和编辑指令的Instruct-CLIP特征:
计算它们之间的对比损失
:
where标量
是一个可学习的“温度”参数,它控制相似度分布的锐度,而函数
衡量的是归一化余弦相似度:
首先,作者利用这种对比损失来微调图3a中的I-CLIPvis和
模块。一旦它们被训练成将视觉变化和指令嵌入到相同的特征空间中,作者随后使用DeCap [12]的方法将特征转换为文本指令,具体步骤如下。
3.1 通过解码特征预测指令
学习原始/编辑图像对与指令之间的对齐并不自动导致更好的指令,因为需要一个解码器将I-CLIP潜在空间特征转换为实际的文本指令。为此,作者借鉴了DeCap [12]的方法,针对作者的应用微调预训练的CLIP和GPT-2解码头[21],通过解码
或
来匹配原始编辑指令
。由于数据集中的原始编辑指令
可能与编码在
中的可见变化不匹配,作者不想在训练过程中强迫模型直接将
解码为
。相反,作者使用与DeCap [12]相同的方法,通过解码
回
来训练模型。形式上,设
为编辑指令的长度为
的 Token 表示,其中每个 Token
是一个onehot向量。同样,解码/预测的指令是
(指令可以通过填充或截断表示为相同数量的 Token )。这基本上是一个分类问题,需要为每个 Token 识别正确的“元素”,因此文本解码器的训练目标是交叉熵损失:
是所有可能的 Token 的集合,
是每个 Token
的真实值,
是模型预测的
在位置
处 Token
的概率。
在推理阶段,作者的目标是生成改进的指令,通过解码
准确捕捉从原始图像到编辑图像的视觉变化。然而,由于视觉和文本CLIP特征之间的平均余弦相似度相对较低(即使在良好匹配的情况下约为0.2 [12]),在文本特征
上训练的文本解码器将难以处理
,因为这种差异导致解码结果次优。
为了解决这个问题,作者希望解码器接收到的输入是
的特征表示,这种表示与指令解码器训练时所使用的文本特征更加相似。一种简单的方法是计算
与数据集中每个指令的文本特征之间的余弦相似度,选择相似度最高的特征。然而,这种方法只会检索到最相似的指令,这限制了改进指令的多样性和准确性。相反,作者遵循了 DeCap [12] 的方法,该方法通过根据它们与
的余弦相似度来加权影响,利用了所有文本特征的信息。本质上,具有与
更相似文本特征的指令应该对改进指令的贡献更大。
因此,作者使用softmax函数计算每个指令特征对精炼表示的贡献概率,该函数基于所有文本特征与
之间的余弦相似度。形式上,对于一个大小为
的数据集,令
为文本特征集合,每个特征对应数据集中的指令
。指令
的文本特征影响
精炼指令的概率
定义为:
作者使用这些权重将
投影到文本特征空间:
最终,对
的精炼指令为
DeCap
,其中
表示指令解码器,因此精炼的数据集样本为
。
3.2. 在潜在扩散域内工作
借助I-CLIP和DeCap,作者现在可以生成语义对齐度更高的数据集,其中原始/编辑后的图像变化与其编辑指令之间的对齐度得到提升(见图2),从而为训练指导图像编辑模型提供更好的“信号”。因此,有人可能会尝试直接在作者的改进数据集上训练类似于InstructPix2Pix [1]的模型。虽然这确实带来了一些改进(见第4.5节),但作者发现,如果在稳定扩散(SD)模型的训练过程中加强视觉变化与编辑指令之间的对齐,作者能够获得更大的改进。这意味着将I-CLIP作为训练目标的组成部分,而不仅仅是数据集的优化。
为此,I-CLIP必须直接处理SD中的噪声、潜在图像,定义为
。在这里,
是前向扩散过程的第
步 [25],它接受图像
,将其嵌入到SD的变分自编码器
的潜在域中,然后根据时间步
添加随机采样的噪声
。I-CLIP中的DINOv2特征 Backbone ,作者称之为LD-DINOv2(见图4),通过直接使用
并将相应的时间步
作为输入来工作,并且被训练去“忽略”噪声和潜在空间压缩,以提取原始的DINOv2特征,以下为训练目标:
其中
是 LD-DINOv2 的输出,
是原始 DINOv2 的输出,而其
层中的中间特征为
。原始编辑图像对
的视觉特征随后变为:
where:
使用随机采样的高斯噪声项
和
生成。请注意,尽管在基于扩散的图像编辑训练中,不会向原始图像添加噪声,但作者对原始图像进行噪声化处理,以训练
,使其更加鲁棒。有关 LD-DINOv2 训练过程的更多细节,请参阅补充材料。注意,在数据集精炼阶段,作者将
和
设置为 0,以便 LD-DINOv2 处理原始潜在图像。
3.3. 训练作者的指令引导编辑模型
在此阶段,作者希望利用精炼的数据集和I-CLIP来提升基于SD的指令引导图像编辑方法,例如InstructPix2Pix(IP2P)[1]。
给定数据样本
,IP2P通常训练去噪UNet以预测添加到编辑图像中的噪声:
该过程依赖于原始图像在潜在域
和编辑指令
。在这种设置下,传统的训练损失是相对于添加到真实编辑图像的GT的实际噪声
的均方误差 (MSE)。
给定精炼样本
,作者设计了一个互补损失函数,以将作者的Instruct-CLIP指导纳入目标函数,并迫使视觉变化与精炼的编辑指令相匹配:
其中,使用预测的噪声计算得到的中间、去噪后的潜在输出为:
这里,
是逆扩散过程。因此,作者的最终训练目标是:
其中
被设置为 0.1 以平衡
与均方误差损失。
- 实验
作者按照上述描述实现了并训练了Instruct-CLIP(I-CLIP),并使用它来精炼InstructPix2Pix(IP2P)数据集[1],获得了超过120K条精炼指令,这个过程在两个A6000 GPU上大约花费了10小时。然后,作者使用这个精炼的数据集来微调InstructPix2Pix模型。更多细节请参阅补充材料。现在,作者将描述用于测试Instruct-CLIP的实验。
4.1 基准和基准测试
作者比较了作者的编辑模型与以下几个 Baseline :InstInpaint(I-Inp)[30]、MagicBrush(MagBr)、HIVE [33]、InstructPix2Pix(IP2P)[1]、Watch Your Steps(WYS)[16]和ZONE [11](见第2节)。作者在两个指令引导的图像编辑基准上进行方法评估:MagicBrush(MagBr)[32]和ZONE [11]。前者包含多轮编辑,使用多个指令迭代编辑一张图像,与单轮编辑(一次编辑图像)相对。作者使用先前工作中使用的以下指标进行定量比较[1, 11, 16, 32]:·CLIP
。在这里,
表示对应于基准样本
的方法输出,其中
是原始图像,
是真实编辑图像(对于MagBr可用,对于ZONE不可用),
是原始图像的说明,
是编辑图像的预期说明。CLIP-T分数评估基准结果与其预期说明之间的语义对齐,而CLIP和DINO相似度分数(分别称为CLIP-I和DINO-I)评估结果与真实图像之间的视觉对齐,如果可用。然而,作者注意到,如图5和补充材料所示,这些指标并不总是与图像编辑的视觉质量相匹配,但在此处列出以示完整。
4.2 指令细化结果
作者如图2所示展示了作者精炼数据集的样本(更多样本见补充材料)。如图所示,Instruct-CLIP能够纠正错误指令,例如将“将波浪变成飓风”更正为“向天空添加闪电风暴”(第一行右侧)。通过纠正这些样本,作者减少了由于指令未反映实际编辑而导致的噪声,这反过来有助于提高基于该数据集训练的模型性能,正如作者接下来将要看到的。
4.3 图像编辑结果
作者发现了一组多样化的样本,展示了Instruct-CLIP的优势,并在图1和5中将其与 Baseline 进行了比较(更多内容见补充材料)。Instruct-CLIP不仅解决了IP2P中存在的一些问题——例如对指令无关区域的意外更改——而且生成的结果与编辑指令的匹配度更高。这对于多轮编辑尤为重要,可以避免在编辑轮次中结果与预期目标差异进一步扩大,如补充材料中所示。值得注意的是,作者实现了这一点,而无需手动创建数据集或使用 Mask 机制来显式定位编辑区域,这是其他方法中使用的。
此外,作者在图5中展示了每个输出的CLIP-T值,其中每个样本下的最佳值被加下划线标注。如图所示,这些值——以及补充材料中提供的CLIP-I和DINO-I值——并不代表视觉质量,但为了完整性而包含在内。表1提供了作者在单轮和多轮编辑场景下模型性能的定量比较。
4.4 用户研究
作者也进行了一项用户研究,共有104名参与者(60名男性,43名女性,1名非二元性别)参与,以比较Instruct-CLIP与MagicBrush(MagBr)[32]和InstructPix2Pix(IP2P)[1]在InstructBrush基准测试[35]上的表现,确保公平性,因为没有任何方法是在类似数据上训练的。每位参与者根据输入图像和编辑指令评估了33对随机抽取的输出图像,并选择哪一幅更好,或者它们是否相似。作者在所有成对比较中平衡了研究,每对有1,045个回应。如表2所示,参与者总体上认为Instruct-CLIP比IP2P(多17.8%的胜利)和MagBr(多24.4%)更好。
4.5 消融研究
为了评估精炼指令和作者的Instruct-CLIP指导损失的影响,作者训练了两种模型变体:一种是在原始IP2P数据集上使用Instruct-CLIP指导损失进行训练(“作者(无数据)”),另一种是在作者精炼的数据集上不使用指导损失进行训练(“作者(无损失)”。作者在表3中将这些与IP2P和作者的完整方法进行比较,并在图6中提供了视觉示例。结果表明,精炼数据显著提高了与真实情况的视觉对齐,这通过更高的CLIP和DINO得分得到证实,而指导损失进一步增强了这种对齐。
4.6. 局限性
尽管Instruct-CLIP能够在训练集中纠正许多不准确的编辑指令,但该方法仍然受到生成方法[7]的限制,这些限制包括超出预期编辑区域的颜色溢出(图7,左上角)以及目标添加不完整(图7,右上角)。虽然Instruct-CLIP更好地尊重了原始图像,但它有时难以从原始图像中移除目标(图7,底部)。
- 结论
作者提出了Instruct-CLIP,这是一种用于指令引导图像编辑的自监督方法,它通过学习原始图像和编辑图像之间的语义变化来优化数据集中的编辑指令。将I-CLIP应用于InstructPix2Pix数据集,产生了超过120K个优化后的样本,作者利用这些样本,结合作者的I-CLIP引导的损失函数对模型进行微调,以生成更好的编辑结果。
参考
[1]. Instruct-CLIP: Improving Instruction-Guided Image Editing with Automated Data Refinement Using Contrastive Learning
扫码加入👉「集智书童」交流群
(备注:方向+学校/公司+昵称)