CycleGAN-Turbo:CycleGAN结合扩散模型,一步图像到图像转换方法
- 提出背景
- 子解法1:直接对条件信息进行编码
- 子解法2:整合三个独立模块
- 子解法3:保留高频细节
- 相关工作
- 例子:日转夜图像转换
- 现有方法
- 我们的方法:CycleGAN-Turbo
- 方法
- 解法1:添加条件输入
- 解法2:保留输入细节
- 解法3:非成对训练
- 扩展
- 总结
- 解法:一步图像到图像转换方法
- 子解法1:端到端网络结构
- 子解法2:保留高频细节
- 子解法3:非成对训练适应性
- 扩展解法:应对多样化的图像生成需求
- 子解法4:成对训练的适应性
- 子解法5:生成多样化输出
论文:https://arxiv.org/pdf/2403.12036.pdf
代码:https://github.com/GaParmar/img2img-turbo
在这项工作中,我们解决了现有条件扩散模型的两个局限性:由于迭代去噪过程,推断速度慢,以及对成对数据进行模型微调的依赖。
为了解决这些问题,我们引入了一种通用方法,通过对抗学习目标来适应新任务和领域的单步扩散模型。
具体来说,我们将标准潜在扩散模型的各个模块合并为一个单一的端到端生成网络,具有小的可训练权重,增强了其保持输入图像结构的能力,同时减少了过拟合。
我们证明,对于非配对设置,我们的模型CycleGAN-Turbo在各种场景转换任务中超越了现有的基于GAN和基于扩散的方法,如日转夜转换以及添加/移除雾、雪和雨等天气效果。
我们将我们的方法扩展到配对设置,其中我们的模型pix2pix-Turbo与最近的作品如ControlNet for Sketch2Photo和Edge2Image相媲美,但具有单步推断。
这项工作表明,单步扩散模型可以作为各种GAN学习目标的强大基础。
你想把一张晴天的照片转换成雨天的场景。
传统的方法可能需要大量成对的数据,即成千上万的晴天和雨天图片对,以此来训练一个模型学习这种转换。这种方法不仅耗时耗力,而且在很多情况下,找到精确匹配的成对图片是不可能的。
我们提出的方法,CycleGAN-Turbo,就是为了解决这个问题。它不需要成对的数据来学习将晴天转换为雨天的转换。相反,它通过一种叫做对抗学习的技术,让模型学习两种场景之间的差异。
模型包括两部分:一个生成器和一个判别器。生成器尝试从晴天图片生成雨天图片,而判别器则尝试区分生成的图片和真实的雨天图片。通过这种方式,生成器不断改进,最终能够生成非常真实的雨天效果图片。
此外,我们的方法只需要一步就能完成这种转换,这与传统的迭代去噪扩散模型相比,大大加快了推理速度。这意味着用户可以几乎实时地看到转换结果,而不是等待几分钟或更长时间。
例如,你有一张公园的照片,想看看雨天的样子。使用我们的CycleGAN-Turbo模型,你只需将这张晴天的公园照片输入模型,模型就会立即生成一张雨天效果的图片。
这个过程不需要寻找或提供一张相同场景的雨天图片作为参考,也不需要等待长时间的处理。
提出背景
针对条件扩散模型在图像生成应用中遇到的两个具体问题,本研究提出了一个一步图像到图像转换方法。
这个方法既适用于成对数据设置也适用于非成对数据设置,能够产生与现有条件扩散模型相媲美的视觉结果,同时将推理步骤减少到1步。
重要的是,我们的方法可以在没有成对图像的情况下训练。
子解法1:直接对条件信息进行编码
- 问题特征:标准扩散适配器直接应用于一步设置效果不佳,因为噪声图直接影响输出结构,导致网络接收到冲突信息。
- 解决方案:我们将条件信息直接馈送到UNet的噪声编码分支。这样,网络可以直接适应新的控制信号,避免噪声图和输入控制之间的冲突。
- 示例:在将晴天图片转换为雨天图片的任务中,我们直接将“雨天”这一条件信息编码进模型,而不是同时处理噪声图和“晴天”图像,这避免了生成过程中可能出现的信息冲突,使转换更加准确和自然。
子解法2:整合三个独立模块
- 问题特征:多阶段管道(编码器-UNet-解码器)导致图像细节丢失,尤其是在输入为真实图像时。
- 解决方案:我们将编码器、UNet和解码器三个分离的模块合并为一个单一的端到端可训练架构。使用LoRA技术调整原始网络以适应新的控制信号和领域,这样减少了过拟合和微调时间。
- 示例:在进行日转夜图像转换时,通过整合这三个模块,我们能够保留更多的图像细节,比如云层的纹理和光线的变化,从而生成更加逼真和细腻的夜景图像。
子解法3:保留高频细节
- 问题特征:原有模型在图像到图像转换过程中丢失高频细节。
- 解决方案:我们通过在编码器和解码器之间加入跳过连接(使用零卷积技术),来保留输入图像的高频细节。
- 示例:在给图像添加或去除雨效果时,保留了雨滴对光线的微妙影响和地面反射等高频细节,使得转换后的图像更加栩栩如生。
这个一步图像到图像转换方法的提出,是基于条件扩散模型在实时交互式应用(如Sketch2Photo)和需要大规模成对数据集训练的应用中面临的限制。
通过上述子解法的组合,我们不仅解决了推理速度慢和数据成对要求高的问题,还实现了在无需成对数据的情况下进行训练,大大拓宽了模型的应用范围和灵活性。
相关工作
在这一节中,我们讨论了图像到图像转换领域的相关工作,并将我们的方法与现有方法进行了比较。接下来,我会通过一个具体的例子来说明我们的方法与相关工作之间的联系和差异。
例子:日转夜图像转换
现有方法
- 成对图像转换方法:传统的成对图像转换方法,如pix2pix,依赖于成对的日景和夜景图片,使用重建损失和对抗损失结合的方式来学习从源域到目标域的映射。
- 条件扩散模型:近期的一些工作,如ControlNet,引入了使用适配器(如门控变压器层或零卷积层)的有效微调技术,建立在预训练的文本到图像模型上,以实现更精准的图像转换。然而,这些方法仍需要大量的成对训练数据。
- 非成对图像转换方法:对于缺少成对输入和输出图像的情况,提出了循环一致性、共享中间潜在空间、内容保留损失和对比学习等技术。尽管这些方法为非成对翻译任务探索了新的途径,但它们通常需要从头开始在新领域上进行训练。
我们的方法:CycleGAN-Turbo
- 创新点:我们提出了一种既适用于成对也适用于非成对设置的一步图像到图像转换方法。与现有方法相比,我们的方法能够利用大规模预训练的扩散模型(如SD-Turbo),而无需成对的图像数据,显著加快了推理速度。
- 应用实例:在日转夜图像转换任务中,我们的方法不需要成对的日景和夜景图片。通过对预训练的文本条件一步扩散模型进行调整,并利用对抗学习目标,我们能够直接将日景图像转换为夜景,同时保留高质量的图像细节和结构。
- 与现有方法的区别:不同于需要大量成对数据和复杂训练过程的传统方法,我们的方法通过简化推理步骤并利用预训练模型,提高了转换效率和质量,特别是在处理非成对的图像转换任务时展现了更好的性能和适应性。
方法
这一部分提出了将预训练的文本到图像模型转化为图像到图像翻译模型的方法,专注于如何解决细节丢失问题和进行非成对训练。我们还探讨了扩展到成对设置和生成随机输出的可能性。以下是对方法的具体问题与解法的逻辑拆解:
解法1:添加条件输入
- 问题特征:在一步模型中,噪声图直接控制生成图像的布局和姿态,经常与输入图像的结构矛盾。
- 子解法1:直接向网络馈送条件输入,而不是使用额外的编码器。这是因为预训练模型生成的图像结构显著受到噪声图的影响。
- 示例:在将日间驾驶图像转换为夜间的任务中,我们直接将“夜间”这一条件信息编码进模型,避免了由于引入额外编码器而造成的结构冲突。
生成器架构。
它将文本到图像模型整合到一个端到端的网络中,具有可调整的权重,在转换过程中保持输入图像结构。
模型利用LoRA适配器和零卷积进行微调,只需很小的权重改变。文本输入被编码,并与图像输入一起被模型处理,生成转换后的图像,如“夜间驾驶”的例子所示。
解释了向单步模型添加条件编码器分支的挑战。
左侧显示了标准的单步扩散模型将输入噪声转换为连贯的输出图像。
右侧说明了如何添加具有不同布局的条件编码器可能导致与输入噪声的冲突,影响输出图像的质量。
解法2:保留输入细节
- 问题特征:图像编码器的设计虽然加快了训练和推理速度,但在图像翻译任务中,这种设计可能不理想,因为它不利于保留输入图像的细节。
- 子解法2:在编码器和解码器网络之间添加跳过连接。这样可以在图像翻译过程中保留细腻的细节。
- 示例:将白天的驾驶场景图像转换为夜晚,通过使用跳过连接的架构,可以显著地保留如文本、路标和远处汽车等细节。
强调了在转换过程中保留细节的跳过连接的重要性。
它提供了一个有无跳过连接的模型训练结果的比较,清晰地显示跳过连接有助于从输入的白天图像保留细节到转换后的夜晚图像。
解法3:非成对训练
- 问题特征:现有的GAN基础或扩散基础方法通常需要在新领域上从头开始训练。
- 子解法3:使用修改后的CycleGAN公式进行非成对翻译,同时利用预训练的扩散模型。
- 示例:在没有成对数据集的情况下,将白天的图像转换为夜晚,我们的方法可以通过非成对的方式学习这种转换,同时保持循环一致性和对抗损失,确保翻译的质量。
扩展
- 成对训练:我们适应我们的翻译网络G到成对设置,例如将边缘或草图转换为图像。
- 生成多样化输出:通过在预训练模型的特征和模型权重之间进行插值,生成多样化的输出。
将提出的方法CycleGAN-Turbo与其他基于GAN的和基于扩散的方法进行了比较。
它展示了提出的方法在保持图像质量和结构上的优越性,跨越各种任务,如将马转换成斑马,或改变季节景色从夏天到冬天和冬天到夏天。
通过上述方法的组合,我们不仅解决了图像到图像翻译过程中的细节丢失问题,而且还实现了在没有成对数据的情况下进行训练,扩大了模型的应用范围和灵活性。
总结
解法:一步图像到图像转换方法
结合了CycleGAN的非成对图像翻译概念和Diffusion模型的强大生成能力,创造了CycleGAN-Turbo和Pix2Pix-Turbo这两个新模型。
在本文中,作者团队解决了条件扩散模型存在的两个问题:推理速度慢和对成对数据的依赖。
他们通过引入单步扩散模型来适应新任务和领域的方法,成功地整合了传统的CycleGAN和pix2pix模型的优点到扩散模型框架中。
这不仅提升了推理速度,还允许在无需成对数据的情况下进行训练。
-
CycleGAN-Turbo:本文中提到的CycleGAN-Turbo解决了传统CycleGAN需要循环一致性且训练周期长的问题,通过利用单步推理的Diffusion模型,提高了效率,并在非成对的场景转换任务中取得了良好的表现。
-
Pix2Pix-Turbo:类似地,Pix2Pix-Turbo改善了传统pix2pix模型需要成对数据并且转换速度慢的限制,通过采用单步推理扩散模型,实现了快速且准确的图像翻译。
“Turbo”则暗示了模型在效率和速度上的显著提升。
子解法1:端到端网络结构
- 问题特征:在一步模型中,引入额外的条件编码器导致与噪声图之间的信息冲突。
- 解决方案:整合编码器、UNet、和解码器为一个单一的端到端可训练架构,使用LoRA适配器直接对条件信息进行编码。
- 示例:日转夜的图像转换中,不使用额外的条件编码器,而是直接将“夜间”条件馈入模型,避免信息冲突,保留更多夜景的细节。
子解法2:保留高频细节
- 问题特征:现有模型在图像转换过程中丢失输入图像的高频细节。
- 解决方案:引入跳过连接和Zero-Convs,以保持细节。
- 示例:在生成细节丰富的夜间场景时,跳过连接允许模型保留车辆和路标等细节,这些细节在没有跳过连接的模型中可能会丢失。
子解法3:非成对训练适应性
- 问题特征:传统方法需要成对的训练数据,而这在许多情况下是不可行的。
- 解决方案:采用CycleGAN的策略,不需要成对数据,利用对抗学习进行训练。
- 示例:将晴天的图像转换成雨天效果,即使没有相对应的雨天图像,也能通过模型学习这种场景转换。
扩展解法:应对多样化的图像生成需求
子解法4:成对训练的适应性
- 问题特征:某些情况下存在成对的训练数据,需要模型能够适应这种设置。
- 解决方案:修改网络以适应成对数据,如草图到图片的转换。
- 示例:使用成对的草图和真实图片数据,训练模型以精确转换。
子解法5:生成多样化输出
- 问题特征:一步模型难以生成变化丰富的输出,因为它倾向于忽略额外的输入噪声。
- 解决方案:通过对预训练模型的特征和权重进行插值,实现多样化输出。
- 示例:用户可通过调整插值系数,在绘画到图片的转换任务中生成风格各异的图像结果。
综上所述,这篇文章提出的一步图像到图像转换方法通过综合各子解法,有效解决了条件扩散模型面临的问题,并展示了在多种图像转换任务中的应用潜力。