只需一步!One-Step图像转换来了!亲测效果惊艳!(卡内基梅隆&Adobe)

项目链接:https://github.com/GaParmar/img2img-turbo
文章链接:https://arxiv.org/pdf/2403.12036
demo链接:https://huggingface.co/spaces/gparmar/img2img-turbo-sketch

现有条件扩散模型的两个局限性:

  • 由于迭代去噪过程而导致的推理速度较慢

  • 依赖成对数据进行模型微调

为了解决这些问题,本文引入了一种通用方法,通过对抗性学习目标来将单步扩散模型调整到新的任务和领域中。具体来说,将原生latent diffusion model的各种模块整合到一个端到端的生成器网络中,该网络具有较小的可训练权重,增强了其保持输入图像结构的能力,同时减少了过拟合。

通过证明,在无配对设置下,CycleGAN-Turbo模型在各种场景转换任务中优于现有的基于GAN 和扩散的方法,例如将白天转换为夜晚以及添加/去除雾、雪和雨等天气效果。并将该方法扩展到配对设置,模型 pix2pix-Turbo 与最近的工作如 Control-Net for Sketch2Photo 和 Edge2Image 相当,但只需单步推理。这项工作表明,单步扩散模型可以作为一系列 GAN 学习目标的强大骨干。

介绍

条件扩散模型使用户能够基于空间条件和文本提示生成图像,从而实现了对场景布局、用户草图和人体姿势等进行精确控制的各种图像合成应用。尽管这些模型取得了巨大成功,但它们面临两个主要挑战。首先,扩散模型的迭代性质使推理速度变慢,限制了实时应用,例如交互式 Sketch2Photo。其次,模型训练通常需要筛选大规模的配对数据集,对许多应用造成了重大成本,而对其他应用来说则不可行。

本项工作介绍了一种适用于配对和无配对设置的one-step图像到图像翻译方法。该方法实现了与现有条件扩散模型相当的视觉吸引力结果,同时将推理步骤的数量减少到1步。更重要的是,可以在没有图像对的情况下进行训练。通过对抗性学习目标有效地调整预训练的文本条件one-step扩散模型(例如 SD-Turbo)到新的领域和任务中。

不幸的是,在实验中,直接将标准扩散适配器(如 Control-Net)应用到one-step设置中的效果不如预期。与传统的扩散模型不同,作者观察到噪声图直接影响one-step模型的输出结构。因此,通过额外的适配器分支将噪声图和输入条件输入到网络中会导致网络得到相互冲突的信息。特别是对于无配对情况,这种策略会导致网络在训练结束时原始网络被忽视。

此外,在图像到图像翻译过程中,由于SD-Turbo模型的多阶段pipeline(Encoder-UNet-Decoder)的不完美重建,输入图像中的许多视觉细节都会丢失。当输入是真实图像时,这种细节的丢失尤为显著和关键,例如在白天到夜晚的翻译中。

为了解决这些挑战,本文提出了一种新的生成器架构,利用了SD-Turbo 权重同时保持输入图像的结构。首先,直接将条件信息馈送到 UNet 的噪声编码器分支中。这使得网络能够直接适应新的控制,避免了噪声图和输入控制之间的冲突。其次,将编码器、UNet 和解码器这三个独立模块整合到一个端到端可训练的架构中。为此,采用了 LoRA 来将原始网络调整到新的控制和领域,减少过拟合和微调时间。最后,为了保留输入的高频细节,通过零卷积在编码器和解码器之间引入了跳跃连接。本文的架构是多功能的,可作为条件 GAN 学习目标(如 CycleGAN 和 pix2pix)的即插即用模型。据我们所知,本文的工作是首次使用文本到图像模型实现one-step图像翻译。

本文主要关注更具挑战性的无配对翻译任务,例如从白天到黑夜的转换,反之亦然,以及向图像中添加/移除天气效果。展示了该模型 CycleGAN-Turbo 在分布匹配和输入结构保持方面明显优于现有基于 GAN 和扩散的方法,同时比扩散方法实现更高的效率。本文进行了广泛的消融研究,探讨了该方法的每个设计选择。

为了展示架构的多功能性,作者还进行了配对设置的实验,例如 Edge2Image 或 Sketch2Photo。模型 pix2pix-Turbo 在视觉上达到了与最近的条件扩散模型相媲美的结果,同时将推理步骤的数量减少到了1步。可以通过在预训练模型和我们模型的编码器输出之间插值噪声图,生成多样化的输出。工作表明,预训练的one-step文本到图像模型可以作为许多下游图像合成任务的强大而多功能的支撑。

相关工作

图像到图像翻译。生成模型的最新进展使得许多图像到图像翻译应用成为可能。配对图像翻译方法将一幅图像从源域映射到目标域,使用了重建和对抗性损失的组合。最近,出现了各种条件扩散模型,整合了文本和空间条件用于图像翻译任务。这些方法通常建立在预训练的文本到图像模型之上。然而,模型训练仍然需要大量的训练对。与此相反,作者的方法可以利用大规模的扩散模型,而无需图像对,推理速度显著更快。

在许多无法获得配对输入和输出图像的情况下,已经提出了几种技术,包括循环一致性、共享中间潜在空间、内容保留损失和对比学习。最近的研究还探索了用于无配对翻译任务的扩散模型。然而,这些基于 GAN 或扩散的方法通常需要在新域从头开始训练。相反,作者引入了第一个利用预训练扩散模型进行无配对学习的方法,展示了优于现有方法的结果。

文本到图像模型。大规模文本条件模型已经通过对互联网规模数据集的训练显著提高了图像的质量和多样性。一些方法提出了用于编辑真实图像的zero-shot方法。尽管这些方法取得了令人印象深刻的结果,但它们在复杂场景中经常遇到困难。我们的工作可以被视为使用来自新域/任务的配对或无配对数据增强这些方法的方式。

one-step生成模型。为了加速扩散模型的推理,最近的工作集中于减少采样步骤的数量。与专注于one-step文本到图像合成的其他工作不同,我们提出了第一个同时使用文本和条件图像的one-step条件模型。本方法打败了直接使用原始 ControlNet 的one-step蒸馏模型的基线。

方法

本文从一个能够生成逼真图像的one-step预训练文本到图像模型开始。然而,作者的目标是将输入的真实图像从源域转换到目标域,例如将白天驾驶图像转换为夜晚。分别探讨了为我们的模型添加结构的不同条件方法及其相应的挑战。研究了困扰潜在空间模型的常见细节丢失问题(例如文本、手部、街道标志)并提出了解决方案。然后,讨论了无配对图像翻译方法,并将one-step扩展到配对设置和随机生成。

添加条件输入

要将文本到图像模型转换为图像翻译模型,首先需要找到一种有效的方式将输入图像 x 合并到模型中。

噪声和条件输入之间的冲突。将条件输入合并到扩散模型中的一种常见策略是引入额外的适配器分支,如下图3所示。

具体来说,初始化第二个编码器,标记为条件编码器,可以使用Stable Diffusion编码器的权重,或者使用具有随机初始化权重的轻量级网络。该控制编码器接收输入图像 x,并通过残差连接将特征图输出到预训练的Stable Diffusion模型中的多个分辨率。这种方法在控制扩散模型方面取得了显著的成果。然而,如上图3所示,在one-step模型的上下文中,使用两个编码器(U-Net编码器和条件编码器)处理噪声图和输入图像会带来挑战。与多步扩散模型不同,one-step模型中的噪声图直接控制生成图像的布局和姿态,通常与输入图像的结构相矛盾。因此,解码器接收两组残差特征,每组特征表示不同的结构,使得训练过程更具挑战性。

直接条件输入。图3还说明了预训练模型生成的图像结构受噪声图 z 的显著影响。基于这一观察结果,我们提出应该直接将条件输入馈送到网络中。下图7和表4还显示,使用直接条件输入比使用额外编码器获得更好的结果。

为了让骨干模型适应新的条件,我们在U-Net的各个层中添加了几个LoRA权重(下图2)。

保留输入细节

阻止使用潜在扩散模型(LDM)在多对象和复杂场景中使用的一个关键挑战是缺乏细节保留。

细节丢失的原因。潜在扩散模型(LDMs)的图像编码器将输入图像在空间上压缩了8倍,同时将通道数量从3增加到4。这种设计加快了扩散模型的训练和推理速度。然而,对于需要保留输入图像细节的图像翻译任务来说,这可能并不理想。下图4中说明了这个问题,在这个示例中,采用不使用跳跃连接的结构,将输入的白天驾驶图像(左)翻译成对应的夜间驾驶图像(中)。

可以观察到,诸如文本、街道标志和远处的汽车等细粒度细节并未得到保留。相比之下,使用包含跳跃连接的架构(右)会导致翻译后的图像更好地保留这些复杂的细节。

连接第一阶段编码器和解码器。 为了捕获输入图像的细粒度视觉细节,我们在编码器和解码器网络之间添加了跳跃连接(见上图2)。具体地,在编码器中的每个下采样块之后提取四个中间激活,并通过一个1×1零卷积层对它们进行处理,然后将它们馈送到解码器中相应的上采样块中。这种方法确保了在整个图像翻译过程中细节的保留。

无配对训练

使用Stable Diffusion Turbo(v2.1)作为所有实验的基础网络,并进行one-step推理。这里展示了我们的生成器可以在修改后的 CycleGAN 公式中用于无配对翻译。具体来说,旨在将来自源域 的图像转换为某个期望的目标域 ,给定一个无配对数据集 ,。

本文的方法包括两个翻译函数 和 。这两个翻译都使用了同一个网络 ,但使用了不同的描述 和 ,对应于任务。例如,在白天→夜晚的翻译任务中, 是“白天驾驶”,是“夜间驾驶”。如前面图2所示,保持大部分层被冻结,并只训练第一个卷积层和添加的 LoRA 适配器。

循环一致性与感知损失。循环一致性损失 强制要求对于每个源图像 x,两个翻译函数应将其带回自身。我们用 表示 L1 差异和 LPIPS 的组合。

对抗性损失。使用对抗性损失来鼓励翻译输出与相应的目标域匹配。使用两个对抗性判别器, 和 ,旨在对相应域的真实图像和翻译图像进行分类。两个判别器都使用 CLIP 模型作为骨干,遵循 Vision-Aided GAN 的建议。对抗性损失可以定义为:

完整的训练目标包括三种不同的损失:循环一致性损失 ,对抗性损失 和身份正则化损失 。损失由 和 权重加权,如下所示:

扩展

虽然本文的主要重点是无配对学习,但还展示了两种扩展来学习其他类型的 GAN 目标,例如从配对数据中学习和生成随机输出。

配对训练。将翻译网络调整到配对设置中,例如将边缘或草图转换为图像。将该方法的配对版本称为 pix2pix-Turbo。在配对设置中,旨在学习单一的翻译函数 ,其中 X 是源域(例如,输入草图),Y 是目标域(例如,输出图像),c 是输入描述。对于配对训练目标:

  • 重构损失作为感知损失和像素空间重构损失的组合

  • GAN 损失,类似于方程 2 中的损失,但仅针对目标域

  • CLIP 文本-图像对齐损失 LCLIP。

生成多样化输出 在许多图像翻译任务中,例如草图到图像生成,生成多样化的输出非常重要。然而,让one-step模型生成多样化的输出是具有挑战性的,因为它需要利用额外的输入噪声,而这往往被忽略。本文提出通过插值特征和模型权重向预训练模型进行生成多样化的输出。

具体来说,给定一个插值系数 ,进行以下三个更改。首先,将高斯噪声和编码器输出进行组合。我们的生成器 现在接受三个输入:输入图像 ,一个噪声图 ,和系数 。更新后的函数 首先将噪声 z 和编码器输出进行组合:。然后将组合信号馈送到 U-Net 中。其次,还根据 ,按比例缩放 LoRA 适配器权重和跳跃连接的输出,其中 和 ∆θ 分别表示原始权重和新添加的权重。最后,根据系数 缩放重构损失。

值得注意的是, 对应于预训练模型的默认随机行为,此时不会强制执行重构损失。 对应于确定性翻译。我们通过使用不同的插值系数对图像翻译模型进行微调。下图 9 显示,这种微调使我们的模型能够通过在推理时采样不同的噪声来生成多样化的输出。

实验

对几个图像翻译任务进行了广泛的实验,主要分为三个类别。首先,将我们的方法与几种先前的基于 GAN 和扩散模型的图像翻译方法进行了比较,展示了更好的定量和定性结果。其次,通过逐个将它们纳入我们的无配对方法 CycleGAN-Turbo 的每个组件来分析其有效性。最后,展示了我们的方法如何在配对设置中运作,并生成多样化的输出。

训练细节。在驾驶数据集上的无配对模型的总训练参数为 330 MB,包括 LoRA 权重、零卷积层和 U-Net 的第一卷积层。请在附录 D 中查找超参数和架构细节。

数据集。在两个常用数据集(马 ↔ 斑马 和优胜美地夏季 ↔ 冬季)以及两个更高分辨率的驾驶数据集(白天 ↔ 夜晚 和晴朗 ↔ 多雾来自 BDD100k 和 DENSE)上进行了无配对翻译实验。对于前两个数据集,遵循 CycleGAN并加载 286×286 图像,在训练时使用随机的 256×256 裁剪。在推理过程中,直接在 256×256 上应用翻译。对于驾驶数据集,在训练和推理时将所有图像调整大小为 512×512。对于评估,使用相应的验证集。

评估协议。一个有效的图像翻译方法必须满足两个关键标准:(1)匹配目标域的数据分布和(2)在翻译输出中保留输入图像的结构。

使用 FID评估数据分布的匹配,采用了 Clean-FID 实现。我们使用 DINO-Struct-Dist评估第二个标准的符合度,该指标测量两个图像在特征空间中的结构相似性。报告中所有 DINO 结构分数乘以 100。较低的 FID 分数表示与参考目标分布的更接近匹配和更大的逼真度,而较低的 DINO-Struct-Dist 表明在翻译图像中更准确地保留了输入结构。较低的 FID 分数与较高的 DINO-Struct-Dist 表明该方法无法遵循输入结构。较低的 DINO-Struct-Dist 但较高的 FID 表明该方法几乎不会改变输入图像。考虑这两个分数是非常关键的。此外,我们在 Nvidia RTX A6000 GPU 上比较所有方法的推理运行时间,并包括一个人类感知研究。

与无配对方法的比较

将 CycleGAN-Turbo 与先前基于 GAN 的无配对图像翻译方法、zero-shot图像编辑方法以及经过公开可用代码训练的扩散模型进行比较。在定性上,下图 5 和图 6 显示,现有的方法,无论是基于 GAN 还是基于扩散的,都难以在输出逼真度和结构保持之间取得正确的平衡。

与基于GAN方法的比较。将本文的方法与两种无配对 GAN 模型 - CycleGAN和CUT进行比较。使用默认超参数在所有数据集上训练这些基线模型 100,000 步,并选择最佳checkpoint。下表 1 和表 2 展示了八个无配对翻译任务的定量比较。

CycleGAN 和 CUT 在简单的以对象为中心的数据集,例如马 → 斑马(下图 13),上表现出有效的性能,达到了较低的 FID 和 DINO-Structure 分数。

我们的方法在 FID 和 DINO 结构距离指标方面略优于这些方法。然而,对于更复杂的场景,例如夜晚 → 白天,CycleGAN 和 CUT 的 FID 分数明显高于我们的方法,通常会产生不良的视觉效果(下图 15)。

与基于扩散的编辑方法的比较。接下来,将我们的方法与几种基于扩散的方法进行比较。首先,考虑最近的zero-shot图像翻译方法,包括 SDEdit、Plug-and-Play、pix2pix-zero、CycleDiffusion和 DDIB,它们使用预训练的文本到图像扩散模型,并通过不同的文本提示翻译图像。请注意,原始的 DDIB 实现涉及从头训练两个单独的领域特定的扩散模型。为了提高其性能并进行公平比较,我们用预训练的文本到图像模型替换了领域特定的模型。还将 Instruct-pix2pix,一个用于基于文本的图像编辑的条件扩散模型进行比较。

如表1和图14所示,在以物体为中心的数据集上,例如马 → 斑马,这些方法可以生成逼真的斑马,但难以精确匹配物体的姿态,这一点可以通过一致较大的DINO结构分数得到说明。

在驾驶数据集上,这些编辑方法表现明显更差,原因有三:(1)模型难以生成包含多个对象的复杂场景,(2)这些方法(除了Instruct-pix2pix外)需要首先将图像反转为噪声图,从而引入潜在的伪影,以及(3)预训练模型无法合成与驾驶数据集捕获的街景图像相似的图像。下表2和图16显示,在所有四个驾驶转换任务中,这些方法输出质量较差的图像,反映在较高的FID分数和不符合输入图像结构的较高的DINO结构距离值中。

人类偏好研究 接下来,在Amazon Mechanical Turk(AMT)上进行人类偏好研究,以评估不同方法产生的图像质量。使用相关数据集的完整验证集,每个比较由三个独立的用户进行独立评估。将两个模型的输出并排呈现,并要求用户选择哪个更准确地符合目标提示,时间不限。例如,我们对白天到夜晚的翻译任务收集了 1,500 个比较,其中包含 500 个验证图像。向用户呈现的提示是:“哪张图像更像是在夜晚拍摄的驾驶场景的真实照片?”

下表 3 将本文的方法与 CycleGAN(最佳性能的基于 GAN 的方法)和 Instruct-Pix2Pix(最佳性能的基于扩散的方法)进行了比较。

本文的方法在所有数据集上均优于这两个基线,除了从晴朗到多雾的翻译任务。在这种情况下,用户偏好 Instruct-Pix2Pix 的结果,因为它输出了更具艺术性的雾图像。然而,正如上面表 2 中所示,Instruct-Pix2Pix 未能保留输入结构,其高 DINO-Struct 分数(7.6)与我们的(1.4)相比。此外,其结果与目标雾数据集的差异显著,反映在高 FID 分数(170.8)与我们的(137.0)之间的差异上。

消融研究

通过一个广泛的消融研究,在前面表 4 和图 7 中展示了我们算法设计的有效性。

使用预训练权重。首先,评估使用预训练网络的影响。在前面表 4 的 Config A 中,我们在马 ↔ 斑马数据集上训练一个无配对模型,但使用的是随机初始化的权重,而不是预训练的权重。没有利用预训练文本到图像模型的先验知识,输出图像看起来不自然,如前面图 7 的 Config A 所示。这一观察结果在表 4 的两个任务中都得到了证实,FID 明显增加。

不同添加结构输入的方法。接下来,比较了三种向模型添加结构输入的方法。Config B 使用了 ControlNet 编码器,Config C 使用了 T2I-Adapter,最后,Config D 直接将输入图像馈送到基础网络,而不需要任何额外的分支。Config B 的 FID 与 Config D 相当。然而,它的 DINO-Structure 距离显著更高,表明 ControlNet 编码器难以匹配输入的结构。这也可以从图 7 中观察到;Config B(第三行)一直在改变场景结构,并产生新的物体幻觉,例如驾驶场景中的部分建筑以及马到斑马翻译中的不自然斑马图案。Config C 使用了轻量级的 T2I-Adapter 来学习结构,并取得了较差的 FID 和 DINO-Struct 分数,输出图像中有几个伪影和结构保留较差。

跳跃连接和可训练的编码器和解码器。最后,通过将 Config D 与我们的最终方法 CycleGAN-Turbo 进行比较,来看到跳跃连接的效果,在表 4 和图 7 中。在所有任务中,添加跳跃连接并联合训练编码器和解码器可以显著提高结构保持,尽管 FID 稍微增加了一点。

其他结果。请参阅附录 A 和 C,了解其他数据集的额外消融研究、在不同数量的训练图像下模型训练的影响以及编码器-解码器微调的作用。具体如下图:

扩展

配对翻译。在一个包含 300K 艺术图片的社区收集的数据集上训练了 Edge2Photo 和 Sketch2Photo 模型。提取了 Canny 边缘和 HED 轮廓。由于我们的方法和基线使用不同的数据集,我们展示了视觉比较,而不是进行 FID 评估。关于训练数据和预处理的更多细节请参见附录 D。

下图 8 中将我们的配对方法 pix2pix-Turbo 与现有的one-step和多步翻译方法进行了比较,包括两个使用潜变一致性模型 和带有 ControlNet 适配器的 Stable Diffusion - Turbo的one-step基线。虽然这些方法可以one-step生成结果,但其图像质量会下降。接下来,我们将其与基于 100 步Stable Diffusion的普通 ControlNet 进行比较。还使用无分类器指导和一个描述性较长的负提示来进行 100 步 ControlNet 的基线。与one-step基线相比,这种方法可以生成更令人满意的输出,如图 8 所示。我们的方法只需一次前向传递就能生成引人注目的输出,无需负提示或无分类器指导。

生成多样化的输出。最后,在下图 9 中,展示了我们的方法可以生成多样化的输出。给定相同的输入草图和用户提示,我们可以采样不同的噪声图并生成多样化的多模态输出,例如不同风格的猫、背景的变化和具有不同壳图案的海龟。

讨论与局限性

我们的工作表明,one-step预训练模型可以作为许多下游图像合成任务的强大且多才多艺的骨干模型。通过各种 GAN 目标,可以将这些模型适应到新的任务和领域,而无需进行多步扩散训练。我们的模型训练只需要少量额外的可训练参数。

局限性。虽然我们的模型可以通过one-step生成产生视觉上令人满意的结果,但它确实存在一些局限性。首先,我们无法指定指导的强度,因为我们的骨干模型 SD-Turbo 不使用无分类器指导。引导蒸馏可能是一个有前途的解决方案,可以实现指导的控制。其次,我们的方法不支持负提示,这是一种减少伪影的便捷方式。第三,使用循环一致性损失和高容量生成器的模型训练会消耗大量内存。下一步,探索用于更高分辨率图像合成的单边方法是一个有意义的。

参考文献

[1] One-Step Image Translation with Text-to-Image Models

更多精彩内容,请关注公众号:AI生成未来

欢迎加群交流AIGC技术,添加小助手

  • 14
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值