使用文本到图像模型的一步图像翻译

使用文本到图像模型的一步图像翻译


One-Step Image Translation with Text-to-Image Models

摘要

在这项工作中,作者解决了现有条件扩散模型的两个局限性:由于迭代去噪过程导致的推理速度慢以及模型微调对配对数据依赖的问题。

为了解决这些问题,作者引入了一种通过对抗性学习目标将单步扩散模型适应到新任务和领域的一般方法。具体来说,作者将原始潜扩散模型中的各种模块整合为一个具有小可训练权重的端到端生成网络,增强了其在保留输入图像结构的同时减少过拟合的能力。

作者证明,在无配对设置中,作者的模型CycleGAN-Turbo在多种场景翻译任务上,例如日夜转换以及添加/移除雾、雪和雨等天气效果,优于现有的基于GAN和基于扩散的方法。作者将作者的方法扩展到配对设置中,在这种设置中,作者的模型pix2pix-Turbo与Sketch2Photo和Edge2Image的最新作品相比肩,但具有单步推理的能力。
代码地址:https://github.com/GaParmar/img2img-turbo

Introduction

条件扩散模型[38, 48, 5, 73]使用户能够根据空间条件和文本提示生成图像,实现了对场景布局、用户草图和人体姿态需要精确控制的多种图像合成应用。尽管它们取得了巨大成功,但这些模型面临着两个主要挑战。首先,扩散模型的迭代性质使得推理过程缓慢,限制了如交互式Sketch2Photo等实时应用的可能性。其次,模型训练通常需要整理大规模的成对数据集,对于许多应用来说,这造成了重大的成本负担,而对于其他一些应用来说则是不可行的[77]。

在这项工作中,作者引入了一种一步到位的图像到图像转换方法,该方法适用于成对和非成对的情况。作者的方法在视觉效果上令人满意,可与现有的条件扩散模型相媲美,同时将推理步骤减少到1步。更重要的是,作者的方法可以在不使用图像对的情况下进行训练。作者的核心思想是通过对抗性学习目标,高效地适应一个新的领域和任务,例如通过预训练的文本条件一步扩散模型,如SD-Turbo [54]。

不幸的是,在作者的实验中,直接将标准的扩散 Adapter 如ControlNet[73]应用于一步设置证明效果不佳。与传统的扩散模型不同,作者观察到噪声图在一步模型中直接影响输出结构。因此,将噪声图和输入条件同时通过额外的 Adapter 分支输入,会导致网络接收到的信息相互冲突。特别是对于非配对案例,这种策略导致原始网络在训练结束时被忽视。此外,由于SD-Turbo模型的多次阶段 Pipeline (编码器-UNet-解码器)不完全重建,输入图像中的许多视觉细节在图像到图像的翻译过程中丢失。这种细节的丢失在输入为真实图像时尤为明显和关键,例如在日到夜的翻译中。

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

作者主要关注更难的未配对翻译任务,例如将白天转换为夜晚以及反向转换,以及向图像中添加/移除天气效果。作者展示了作者的模型CycleGAN-Turbo在分布匹配和输入结构保持方面显著优于现有的基于GAN和基于扩散的方法,同时比基于扩散的方法实现更高的效率。作者对方法中的每个设计选择进行了广泛的消融研究。

为了展示作者架构的灵活性,作者也进行了成对设置的实验,比如 Edge2Image 或 Sketch2Photo。作者的模型名为 pix2pix-Turbo,在视觉效果上可与其他最新的条件扩散模型相媲美,同时将推理步骤减少到1步。作者可以通过在预训练模型中使用的噪声图和作者模型编码器输出之间插值来生成多样的输出。总之,作者的研究结果表明,一步预训练的文本到图像模型可以作为许多下游图像合成任务中强大且灵活的基础架构。

在这里插入图片描述

Related Work

图像到图像的翻译。 生成模型最近的发展使得许多图像到图像的翻译应用成为可能。成对的图像翻译方法 [19, 41, 51, 65, 75, 79] 利用重建[20, 74]和对抗损失[13]的组合,将一个源域中的图像映射到目标域。近来,各种条件扩散模型不断涌现,为图像翻译任务整合了文本和空间条件[2, 5, 28, 38, 48, 64, 73]。这些方法通常基于预训练的文本到图像模型。例如,像GLIGEN [28],T2I-Adapter [38],以及ControlNet [73]这样的工作引入了有效的微调技术,使用如门控 Transformer 层或零卷积层的 Adapter 。然而,模型训练仍然需要大量的训练对。相比之下,作者的方法可以在没有图像对的情况下利用大规模扩散模型,并且具有显著更快的推理速度。

在许多情况下,由于配对的输入和输出图像不可用,已经提出了几种技术,包括循环一致性[70, 24, 77],共享中间潜在空间[18, 27, 29],内容保持损失[56, 60],和对立学习[40, 14]。最近的工作[52, 67, 59]也探讨了无配对翻译任务中的扩散模型。然而,这些基于GAN或基于扩散的方法通常需要在新领域上从头开始训练。相比之下,作者引入了第一种利用预训练扩散模型的无配对学习方法,展示了比现有方法更好的结果。

文本到图像模型。 大规模文本条件模型[39, 46, 49, 11, 21]通过在互联网级数据集[55, 6]上的训练,显著提高了图像的质量和多样性。几项工作[15, 35, 37, 42, 62]提出了零样本方法,使用预训练的文本到图像模型编辑真实图像。例如,SDEdit[35]通过向输入图像添加噪声,然后根据文本提示用预训练模型进行去噪来编辑真实图像。Prompt-to-Prompt方法在图像编辑过程中进一步操纵或保留交叉注意力和自注意力层中的特征[15, 12, 15, 42, 44, 62]。其他方法在图像编辑之前对网络或文本嵌入进行微调[23, 37],或采用更精确的逆推方法[57, 63]。尽管它们取得了令人印象深刻的结果,但在具有许多目标的复杂场景中,它们经常遇到困难。作者的工作可以看作是使用来自新领域/任务的成对或非成对数据来增强这些方法。

一步生成模型。 为了加快扩散模型的推理速度,近期的研究工作聚焦于通过使用快速的常微分方程(ODE)求解器[22, 32]来减少采样步骤,或者将慢速的多步教师模型蒸馏为快速的几步学生模型[50, 36]。从噪声直接回归到图像通常会产生模糊的结果[33, 76]。对此,各种蒸馏方法使用了连贯性模型训练[58, 34],对抗性学习[69, 54],变分得分蒸馏[66, 71],矫正流[30, 31],以及它们的组合[54]。其他方法直接使用生成对抗网络(GANs)进行文本到图像的合成[53, 21]。与这些专注于一步文本到图像合成的作品不同,作者提出了第一个同时使用文本和条件图像的一步条件模型。作者的方法超越了直接使用原始ControlNet与一步蒸馏模型的 Baseline 。

Method

作者从一个一步预训练的文本到图像模型开始,这个模型能够生成真实的图像。然而,作者的目标是“转换”一个来自源域的输入真实图像到目标域,比如将日间驾驶图像转换为夜间图像。在3.1节中,作者探讨了为作者的模型添加结构的不同条件方法以及相应的挑战。接下来,在3.2节中,作者研究了困扰潜在空间模型[47]的常见问题——细节丢失(例如,文本、手、街道标志),并提出了解决方案。然后,在3.3节中,作者讨论了作者的非配对图像翻译方法,并进一步扩展到配对设置和随机生成(3.4节)。

Adding Conditioning Input
为了将一个文本到图像的模型转换成图像翻译模型,作者首先需要找到一个有效的方法将输入图像 结合到模型中。

噪声与条件输入之间的冲突。 将条件输入融入扩散模型的一种常见策略是引入额外的 Adapter 分支[38, 73],如图3所示。具体来说,作者初始化了一个标记为条件编码器的第二编码器,可以用稳定扩散编码器[73]的权重初始化,或者使用随机初始化权重的小型网络[38]。这个控制编码器接收输入图像 ,并通过残差连接向预训练的稳定扩散模型输出多分辨率的特征图。这种方法在控制扩散模型方面已经取得了显著成果。然而,如图3所示,在一步模型中使用两个编码器(U-Net编码器和条件编码器)处理噪声图和输入图像在语境中提出了挑战。与多步扩散模型不同,一步模型中的噪声图直接控制生成图像的布局和姿态,经常与输入图像的结构相矛盾。因此,解码器接收两组代表不同结构的残差特征,使得训练过程变得更加具有挑战性。

在这里插入图片描述
直接条件输入。 图3还说明了由预训练模型生成的图像的结构显著受到噪声图的影响。基于这一洞见,作者建议将条件输入直接输入到网络中。图7和表4进一步显示,直接条件输入比使用额外的编码器能获得更好的结果。为了使 Backbone 模型能够适应新的条件,作者在U-Net的各个层次中添加了几个LoRA权重[17](见图2)。在这里插入图片描述
在这里插入图片描述
Preserving Input Details
一个关键挑战阻碍了潜在扩散模型(LDM [47])在多目标和复杂场景中的应用,那就是缺乏细节保留。

为什么细节会丢失。 潜在扩散模型(LDMs)的图像编码器通过将输入图像在空间上压缩8倍,同时将通道数从3增加到4。这种设计加快了扩散模型的训练和推理速度。然而,对于需要保留输入图像精细细节的图像转换任务来说,这可能并不是理想的选择。作者在图4中说明了这个问题,其中作者取了一个输入的白天驾驶图像(左),并将其转换为一个对应的夜间驾驶图像,所用的架构没有使用跳跃连接(中)。观察可见,细粒度的细节,如文本、街道标志和远处的汽车,并没有被保留。相比之下,采用包含跳跃连接的架构(右)得到的转换图像显著更好地保留了这些复杂细节。在这里插入图片描述
连接第一阶段编码器和解码器。 为了捕捉输入图像的细粒度视觉细节,作者在编码器和解码器网络之间添加了跳跃连接(见图2)。具体来说,作者在编码器内的每个下采样块之后提取四个中间激活,通过一个11零卷积层[73]处理它们,然后将它们输入到解码器中相应的上采样块中。这种方法确保在整个图像翻译过程中保留复杂的细节。

Unpaired Training
作者使用稳定扩散加速(v2.1)版作为一步推理的基础网络进行所有实验。在这里,作者展示了作者的生成器可以用于修改后的CycleGAN公式[77]进行无配对翻译。具体来说,作者的目标是将源域X∈RHxW×3中的图像转换成所需的目标域y ∈RHxW×3,给定一个无配对的数据集X = {a ∈}, y ={ ∈3}。
作者的方法包括两个翻译函数G(a, cy):X →Y和G(g,cx):Y →X。这两个翻译都使用了如第3.1节和第3.2节所描述的相同网络G,但是对应于任务的不同标题cx和cy。例如,在白天→夜晚翻译任务中,cx 是白天驾驶,而cy是夜晚驾驶。如图2所示,作者冻结了大多数层,只训练了第—卷积层以及添加的LoRA Adapter 。

根据CSDN的规则,我将公式环境中的斜杠 “/” 替换为 “ " ,而公式单独一行显示时,则替换为 " ",而公式单独一行显示时,则替换为 " ",而公式单独一行显示时,则替换为"$”。下面是修复后的内容:

循环一致性与感知损失。循环一致性损失 L cycle L_{\text{cycle}} Lcycle 强制每个源图像 α \alpha α 通过两个翻译函数后能够返回到其本身。作者用 L rec L_{\text{rec}} Lrec 来表示 L 1 L_1 L1 差异和 L PIPS L_{\text{PIPS}} LPIPS[74] 的组合。关于权重设置,请参考附录0.D。
L cycle = E a [ L rec ( G ( G ( a , c y ) , c x ) , a ) ] + E y [ L rec ( G ( G ( g , c x ) , c y ) , y ) ] L_{\text{cycle}} = \mathbb{E}_a [L_{\text{rec}}(G(G(a, cy),cx), a)] + \mathbb{E}_y [L_{\text{rec}}(G(G(g,cx), cy), y)] Lcycle=Ea[Lrec(G(G(a,cy),cx),a)]+Ey[Lrec(G(G(g,cx),cy),y)]

对抗损失。作者在两个领域都使用了对抗损失[13],以鼓励翻译后的输出与相应目标领域相匹配。作者使用了两个对抗判别器, D x D_x Dx D y D_y Dy,它们旨在对相应领域的真实图像和翻译图像进行分类。两个判别器都采用CLIP模型作为基础网络,遵循Vision-Aided GAN[26]的建议。对抗损失可以定义为:
L GAN = E x [ log ⁡ D y ( g ) ] + E z [ log ⁡ ( 1 − D y ( G ( a , c y ) ) ) ] + E y [ log ⁡ D x ( ) ] + E y [ log ⁡ ( 1 − D x ( G ( g , c x ) ) ) ] L_{\text{GAN}} = \mathbb{E}_x [\log D_y(g)] + \mathbb{E}_z [\log(1-D_y(G(a, cy)))] + \mathbb{E}_y [\log D_x()] + \mathbb{E}_y [\log(1-D_x(G(g,cx)))] LGAN=Ex[logDy(g)]+Ez[log(1Dy(G(a,cy)))]+Ey[logDx()]+Ey[log(1Dx(G(g,cx)))]

完整目标函数。完整的训练目标包含三种不同的损失:循环一致性损失 L cycle L_{\text{cycle}} Lcycle,对抗性损失 L GAN L_{\text{GAN}} LGAN 和身份正则化损失 L idt L_{\text{idt}} Lidt:
L = arg min c L cycle + λ idt L idt + λ GAN L GAN L = \text{arg min}_c L_{\text{cycle}} + \lambda_{\text{idt}} L_{\text{idt}} + \lambda_{\text{GAN}} L_{\text{GAN}} L=arg mincLcycle+λidtLidt+λGANLGAN
损失通过 $ \lambda_{\text{idt}}$ 和 λ GAN \lambda_{\text{GAN}} λGAN 进行加权。

Extensions
虽然作者的主要关注点是未配对学习,但作者也展示了两个扩展,用以学习其他类型的生成对抗网络(GAN)目标,例如从配对数据中学习以及生成随机输出。
配对训练。作者将作者的翻译网络G适应于配对设置,例如将边缘或草图转换为图像。作者将作者方法的配对版本称为pix2pix-Turbo。在配对设置中,作者的目标是学习单一的翻译函数G(a,c): X →Y,其中×是源域(例如,输入草图),Y是目标域(例如,输出图像),而c是输入标题。对于配对训练目标,作者使用以下几项:(1)重构损失,它是感知损失和像素空间重构损失的组合;(2)GAN损失,类似于方程2中的损失,但只针对目标域;(3)CLIP文本-图像对齐损失LCLIP[45]。更多详细信息请参见附录0.D。
生成多样化输出在许多图像转换任务中,生成随机输出是很重要的,例如,草图到图像的生成。然而,让一步法模型生成多样化的输出是具有挑战性的,因为它需要利用额外的输入噪声,这通常被忽略[18,78]。作者提出通过将特征和模型权重插值到已经能产生多样化输出的预训练模型来生成多样化输出。具体来说,给定一个插值系数y,作者做了以下三个改动。首先,作者将高斯噪声和编码器输出进行结合。作者的生成器G(a,z,T)现在接收三个输入:输入图像α,一个噪声图z,以及系数y。更新后的函数G(a,z,)首先将噪声z和编码器输出结合:yGenc(a)+(1一)z。然后,作者将这个结合后的信号输入到U-Net中。
其次,作者根据日=6o+ y·△0同比例缩放LoRA Adapter 的权重和跳跃连接的输出,其中0和△0分别表示原始权重和新增加的权重。
最后,作者根据系数丫对重建损失进行缩放。
在这里插入图片描述
值得注意的是,~=0对应于预训练模型的默认随机行为,在这种情况下不强制执行重建损失。y=1对应于第3.3和3.4节中描述的确定性翻译。作者使用不同的插值系数对图像翻译模型进行微调。图9显示了这种微调使得作者的模型在推理时通过采样不同的噪声来生成多样化的输出。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值