paper:2308.07863
目录
摘要
内容和风格(C-S)解耦是风格迁移中的一个基本问题和关键挑战。现有的方法基于显式定义(例如Gram矩阵)或隐式学习(例如GANs),这些方法既不具备可解释性,也不容易控制,导致了纠缠的表示和不尽如人意的结果。在本文中,我们提出了一种新的C-S解耦框架,用于风格迁移,且无需使用之前的假设。关键的洞察是显式地提取内容信息,并隐式地学习互补的风格信息,从而实现可解释和可控的C-S解耦与风格迁移。我们引入了一种基于CLIP的简洁且有效的风格解耦损失,并结合风格重建先验,在CLIP图像空间中进行C-S解耦。通过进一步利用扩散模型强大的风格去除和生成能力,我们的框架在结果上优于现有的最先进方法,并且具备灵活的C-S解耦和权衡控制能力。我们的工作为风格迁移中的C-S解耦提供了新的见解,并展示了扩散模型在学习良好解耦的C-S特征方面的潜力。
1、介绍
给定一张参考风格图像(例如,文森特·梵高的《星空》),风格迁移旨在将其艺术风格(如色彩和笔触)转移到任意内容目标上。为了实现这一目标,首先必须正确地将风格与内容分离,然后将风格迁移到另一个内容上。这提出了两个基本挑战:
(1)“如何解耦内容和风格(C-S)”,
(2)“如何将风格迁移到另一个内容上”。
为了应对这些挑战,许多有价值的研究已经取得了进展。Gatys等人提出了《艺术风格的神经算法》,通过显式定义从预训练卷积神经网络(CNN)中提取的高层特征(如VGG网络)为内容,将特征相关性(即Gram矩阵)定义为风格,从而实现了风格迁移。该方法取得了视觉上令人惊叹的结果,并启发了大量的后继研究。尽管取得了成功,但在深入分析风格迁移的本质后,我们发现这些方法存在三个问题:
(1)内容和风格没有完全解耦。理论上,内容和风格表示是交织在一起的。例如,匹配图像的内容表示可能也匹配其Gram矩阵,反之亦然;
(2)CNN学习到的内容是一个“黑盒”,难以解释,这使得风格与内容的定义(如[19]中提出的定义)不可解释且难以控制;
(3)风格迁移过程被建模为内容损失和风格损失的独立优化,导致缺乏对内容与风格之间关系的深刻理解。这些问题通常导致风格迁移结果不平衡且产生不和谐的伪影。
另一方面,解耦表示学习(如[27])提供了其他想法来隐式地解耦内容和风格,无论是监督学习(如[47, 37])还是无监督学习(如[9, 98])。对于风格迁移,Kotovenko等人[45]利用固定点三重损失和解耦损失来强制基于GAN的框架无监督地学习内容与风格的独立表示。同样,TPFR[79]通过度量学习和两阶段的对等正则化在潜在空间中学习解耦内容和风格,在零样本设置下也能生成高质量的图像。尽管这些方法成功地通过相应的损失函数“鼓励”了某些属性,但它们仍然存在三个主要问题:
(1)没有监督的情况下,解耦的模型似乎无法得到真正的识别(如[57, 70]所示),这意味着无监督学习[45, 79]可能无法实现真正的内容与风格解耦;
(2)这些方法都基于GAN,因此通常受到GAN预定义领域的限制,例如特定艺术家的风格领域[75];
(3)隐式学习的内容与风格表示仍然是黑盒,难以解释和控制[57]。
面对上述挑战,本文提出了一种新的内容与风格解耦框架,用于风格迁移,且不使用传统的假设,例如Gram矩阵[19]或GAN[45]。我们的关键洞察源于图像风格的定义比内容更复杂。例如,我们可以通过图像的结构、语义或形状轻松识别其内容,但定义风格却是不可解的。因此,我们通过显式地提取内容信息并隐式地学习其互补的风格信息,绕过了这个难题。由于我们严格将风格定义为内容的补充,内容和风格能够完全解耦,解耦控制转变为对内容提取的控制,从而实现了可控性和可解释性。
然而,实现可信且可控的内容提取也是一项不小的挑战,因为从内容图像和风格图像提取的内容应当共享相同的内容领域,而且提取的内容细节应当易于控制。为此,我们引入了最近开发的扩散模型,并提出了基于扩散的风格去除模块,能够平滑地去除内容图像和风格图像中的风格信息,从而提取出领域对齐的内容信息。此外,鉴于扩散模型强大的生成能力,我们还引入了基于扩散的风格迁移模块,更好地学习风格图像的解耦风格信息,并将其迁移到内容图像上。风格解耦和迁移通过一个简单而有效的基于CLIP的风格解耦损失来促使,该损失函数使得内容图像内容到风格化结果的映射,与风格图像内容到风格化结果的映射在CLIP图像空间中对齐。通过与风格重建先验的协调,它实现了更加广泛和忠实的风格迁移。我们进行了全面的对比实验和消融研究,以证明我们框架的有效性和优越性。在良好解耦的内容与风格下,我们实现了非常有前景的风格化效果,细致的风格细节、良好的内容保留,并且对内容与风格之间的关系有了更深的理解。
我们的贡献主要有三点:
- 提出了一个新的内容与风格解耦框架,通过更可解释和可控的方式解耦内容与风格,并实现了高质量的风格化结果。
- 将扩散模型引入到我们的框架中,并展示了它们在可控风格去除和学习良好解耦内容与风格特征方面的有效性和优越性。
- 引入了一个新的基于CLIP的风格解耦损失,并与风格重建先验相协调,用于在CLIP图像空间中解耦内容与风格。
2、相关工作
2.1 神经风格迁移(NST)
Gatys等人的开创性工作[19]开启了神经风格迁移(NST)[34]的时代。从那时起,这一任务经历了巨大的进展,包括效率[35, 52, 90]、质量[23, 89, 55, 10, 7, 1, 46, 83, 56, 6, 92, 32, 99, 12, 96, 84]、通用性[5, 30, 53, 65, 13, 33, 29, 85, 95, 59, 93]和多样性[80, 86, 88]。尽管取得了这些成功,但这些方法的本质大多依赖于显式定义的内容-风格(C-S)表示,例如Gram矩阵[19],这些方法存在一些局限性,正如第1节所讨论的。我们在这项工作中提出了新的解耦C-S表示,这些表示通过扩散模型显式提取或隐式学习,从而实现更有效的风格迁移和更高质量的结果。
2.2 解耦表示学习(DRL)
解耦表示学习(DRL)[27]的任务是建模数据变化的因素[51]。早期的工作使用标注数据通过监督方式分解表示[37]。最近,更多的无监督方法被广泛探索[42],尤其是在风格和内容解耦的任务中[98, 31, 51, 40, 91, 45, 66, 70, 8, 48]。然而,由于依赖于GANs[21],它们的C-S解耦通常受到GAN预定义领域的限制(例如,Van Gogh的风格领域)。此外,若没有足够的数据,解耦通常无法有效实现。与此不同的是,我们的框架通过从单一风格图像中学习解耦的风格,并且仅通过提供少量(大约50张)内容图像进行训练,便可轻松实现解耦。
2.3 扩散模型(Diffusion Models)
扩散模型[77],如去噪扩散概率模型(DDPMs)[28, 63],最近在图像生成[78, 14, 17]、图像操作[62, 2, 41]和文本条件合成[64, 74, 69, 71, 24, 4, 54]等任务中表现出了巨大的成功。这些工作展示了扩散模型在生成质量上优于其他生成模型,如变分自编码器(VAEs)[81]、自回归模型[16]、流模型[44]和GANs[39]。受这些工作的启发,我们在框架中引入了基于扩散模型的风格移除模块和风格转移模块。这些模块能够平滑地去除图像中的风格信息,并更好地学习风格的恢复,从而实现更高质量的风格迁移结果。据我们所知,我们的工作是首个将扩散模型引入神经风格迁移领域的研究。
3、方法
给定一张风格图像 和一张任意内容图像
,我们希望首先解耦它们的内容和风格,然后将
的风格转移到
的内容上。我们的关键思想是显式地提取内容信息,然后隐式地学习互补的风格信息。由于我们的框架是基于扩散模型的 [28, 78],我们称其为 StyleDiffusion。
图1展示了我们的StyleDiffusion概述,它包含三个关键组件:
- 基于扩散的风格移除模块,
- 基于扩散的风格转移模块,
- 基于CLIP的风格解耦损失,与风格重建先验协调。
3.1 风格移除模块
风格移除模块的目标是去除内容和风格图像的风格信息,显式地提取领域对齐的内容信息。可以根据用户定义的内容使用任何合理的内容提取操作。例如,用户可能希望使用结构轮廓作为内容,因此可以提取轮廓 [36, 94]。然而,如第1节所讨论的,一个挑战是可控性,因为内容-风格解耦的控制已经转化为内容提取的控制。为此,我们引入了基于扩散的风格移除模块,以实现既合理又可控的内容提取。
给定输入图像,例如风格图像 ,由于颜色是风格的一个重要部分 [50],我们的风格移除模块首先通过常用的ITU-R 601-2亮度变换 [20] 去除颜色,得到的灰度图像记为
。然后,我们利用一个预训练的扩散模型 [14]
去除
中的风格细节,如笔触和纹理,提取出内容
。
这一方法的核心思想是,预训练的扩散模型可以帮助消除输入图像的领域特征,并将它们对齐到预训练领域 [11, 41]。我们假设具有不同风格的图像属于不同领域,但它们的内容应该共享相同领域。因此,我们可以在一个代理领域(例如,摄影领域)上预训练扩散模型,然后使用该领域构建图像的内容。预训练后,扩散模型可以通过正向过程将输入图像从不同领域转换为潜在空间 x,然后通过反向过程将其逆转为摄影领域。通过这种方式,风格特征可以理想地被去除,留下图像的内容。
为了在更少的采样步骤中获得结果并确保输入图像的内容结构得以保留,我们采用确定性DDIM [78] 采样作为反向过程,并使用其反转的ODE近似 [41] 作为正向过程:
正向和反向扩散过程使我们能够通过调整返回步骤 来轻松控制风格移除的强度。随着
的增加,更多的风格特征将被去除,而主要的内容结构将被保留。需要注意的是,对于摄影类内容图像,扩散过程是可选的,因为它们已经位于预训练领域中,几乎没有需要去除的风格,除了颜色。
3.2 风格转移模块
风格转移模块旨在学习风格图像的解耦风格信息,并将其转移到内容图像上。像自编码器(AE) [30] 这样的常见生成模型可以用于此目的。然而,受扩散模型 [14, 41] 最近取得的巨大成功的启发,我们引入了基于扩散的风格转移模块,这可以更好地学习我们框架中的解耦风格信息,并实现更高质量和更灵活的风格化。
给定内容图像 ,记
为通过风格移除模块提取的
的内容。我们首先使用预训练的扩散模型
将其转换为潜在空间 x 。然后,在基于CLIP的风格解耦损失和风格重建先验的引导下,扩散模型的反向过程被微调(
→
)以生成参考风格图像
的风格化结果
。一旦微调完成,任何内容图像都可以被操控为具有风格图像
解耦风格的风格化结果。
为了使训练更加容易和稳定,我们在微调过程中采用了确定性DDIM正向和反向过程。然而,在推理时,亦可以直接使用随机DDPM [28] 正向过程,以帮助获得多样化的结果。
3.3 损失函数
为了使风格迁移模块学习并迁移解耦后的风格信息,需要解决两个关键问题:
(1)“如何规范化学习到的风格信息是解耦的?”
(2)“如何恰当地将风格信息迁移到其他内容?”
为了解决这些问题,我们引入了一种新的基于CLIP的风格解耦损失,并与风格重建先验相结合,用于训练网络。
基于CLIP的风格解耦损失。 假设 和
分别是内容图像
和风格图像
通过风格去除模块(第4.1节)提取出的内容。我们的目标是学习风格图像
中与其内容
互补的风格信息。因此,一种直观的方式是通过直接相减来获取解耦后的风格信息:
然而,简单的像素差异无法包含有意义的语义信息,因此无法产生合理的结果。为了解决这个问题,我们可以在一个潜在的语义空间中公式化风格解耦:
其中, 是一个经过良好预训练的投影器。具体而言,由于
和
具有相似的内容,但风格不同,投影器
必须能够区分它们的风格特征。换句话说,正如我们所定义的,风格不同的图像属于不同的域,而投影器
应该能够区分
和
的域。幸运的是,受最近视觉-语言模型 CLIP [68] 的启发,CLIP 能够封装不仅仅是摄影领域的知识,还包括艺术领域的知识 [18, 69, 49],我们可以直接利用它的图像编码器作为我们的投影器
。这个开放领域的 CLIP 空间为度量内容和其风格化结果之间的“风格距离”提供了一个很好的度量空间。因此,这个“风格距离”可以解释为解耦后的风格信息。需要注意的是,这里的风格隐式地定义为内容的补充,这与 Gram 矩阵 [19] 明确的风格定义不同,后者与内容无关。
在获得了解耦后的风格信息 后,接下来需要解决的是如何将其恰当地迁移到其他内容上。一种可能的解决方案是直接优化 L1 损失:
其中, 是风格化结果,
是
的解耦风格信息。然而,如图2(a)所示,最小化 L1 损失并不能保证风格化结果
位于风格图像
的风格域内。
这是因为 L1 损失仅最小化绝对像素差异(即曼哈顿距离),因此可能产生符合曼哈顿距离但偏离目标风格域的风格化图像。此外,它还可能导致崩溃问题,其中不同内容的风格化输出在潜在空间中满足相同的曼哈顿距离。
为了解决这些问题,我们可以进一步约束解耦后的方向,如下所示:
这个方向损失将内容图像的内容到其风格化结果(即风格化结果)之间的转移方向与风格图像内容到其风格化结果(即风格图像本身)之间的转移方向对齐,如图2(b)所示。
与此损失协作,L1 损失可以实现内容域中的内容与风格域中的风格化结果之间的精确一对一映射,如图2(c)所示。
最终,我们的风格解耦损失定义为 L1 损失和方向损失
的复合:
其中, 和
是实验中设置为10和1的超参数。由于我们的风格信息是由内容与其风格化结果之间的差异引发的,因此我们可以通过学习深入理解 C-S 之间的关系。结果,风格可以自然和谐地转移到内容上,产生更好的风格化图像。
风格重建先验。
为了充分利用风格图像提供的先验信息并进一步提升风格化效果,我们在风格迁移模块的微调过程中整合了风格重建先验。直观地,给定风格图像 的内容
,风格迁移模块应该尽可能地将其恢复到原始风格图像。因此,我们可以定义风格重建损失如下:
其中, 是给定
作为内容的风格化结果。我们在优化风格解耦损失
之前单独优化风格重建损失。详细的微调过程可以参考补充材料。风格重建先验帮助我们的模型更充分地恢复风格信息,也为优化
提供了良好的初始化,从而帮助后者充分发挥其能力,产生更高质量的结果。
4、实验
4.1 实现细节
我们使用在ImageNet [73] 上预训练的ADM扩散模型[14],并采用快速采样策略[41]。具体来说,我们不再按照传统方法进行完整的扩散过程直到最后一个时间步T(例如,1000步),而是通过执行最大T{·} < T(称为返回步长),即对风格去除设置Tremov = 601,对风格转移设置Ttrans = 301,从而加速扩散过程。此外,正如[41]所建议的,我们通过减少离散化步骤来进一步加速前向和反向过程,即风格去除过程的(Sfor, Srev) = (40, 40),风格转移过程的(Sfor, Srev) = (40, 6)。在微调或推理时,我们可以调整Tremov或Ttrans来灵活控制风格去除和C-S解耦的程度。
为了微调模型以适应目标风格图像,我们从ImageNet随机抽取50张图像作为内容图像。我们使用Adam优化器[43],初始学习率为4e-6,并每个epoch按1.2倍线性增长。所有模型经过5个epoch的微调。
4.2 对比实验
我们将我们的StyleDiffusion与十种最先进的(SOTA)方法进行比较[19, 95, 12, 1, 56, 6, 13, 79, 35, 55]。为了公平比较,所有这些方法都像我们一样,针对目标风格图像进行了微调或训练。
4.2.1 质性比较
如图3所示,由于C-S表示的交织,Gatys[19]和EFDM[95]常常生成失真内容(例如,第1-3行)和混乱的纹理(例如,第4-8行)。StyTr2 [12]和ArtFlow [1]通过采用更先进的网络[82, 44]改善了结果,但它们仍可能产生带有光晕边界(例如,第2-3行)或脏污的伪影(例如,第4-6行)。AdaAttN[56]通过执行逐点注意力归一化来更好地保持内容结构,但在某些情况下,风格化效果会退化(例如,第1、2、4和5行)。IECAST[6]利用对比学习和外部学习进行风格转移,因此在单个风格图像上进行微调时会导致效果退化。MAST[13]使用多适应网络来解耦C-S。然而,由于它仍然依赖于[19]的C-S表示,结果通常表现为混乱的纹理和明显的伪影。TPFR[79]是一个基于GAN的框架,旨在在潜在空间中学习解耦C-S。正如结果所示,它不能正确恢复风格细节,且经常生成偏离目标风格的风格化图像,这表明它可能没有真正学习到解耦的C-S表示[57]。与我们的算法相似,Johnson[35]和LapStyle[55]也为每种风格训练了单独的模型。然而,由于[19]的C-S损失之间的权衡,它们可能会产生风格化较弱的结果或引入不自然的模式(例如,第1-6行)。
相比之下,我们的StyleDiffusion完全基于扩散模型解耦C-S。因此,它能够生成具有充分风格细节(例如,第1-4行)和良好保留内容(例如,第5-8行)的高质量结果。与之前的方法产生的内容和风格混合的结果不同,我们的方法能够更好地考虑它们之间的关系,使得风格化效果更加自然和和谐,尤其是对于像立体主义(例如,第2行)和油画(例如,第1、3、4和5行)这样的挑战性风格。
4.2.2 定量比较
我们还通过定量指标来更好地评估我们的方法,如表1所示。我们收集了32张内容图像和12张风格图像,合成了384张风格化结果,并计算了平均结构相似度指数(SSIM)[1],以评估内容相似性。为了评估风格相似性,我们计算了CLIP图像相似度得分[68]和风格损失[19, 30],用于比较风格图像和对应风格化结果之间的差异。如表1所示,我们的方法在SSIM和CLIP得分上均获得了最高分,而风格损失则相对较高。原因在于这些方法是直接优化风格损失。然而,我们的方法在风格损失上的表现仍然可与基于GAN的TPFR[79]相媲美。此外,值得注意的是,我们的方法还可以通过加入风格损失来提升这方面的表现。
4.2.3 用户研究
由于风格转移具有高度的主观性,且CLIP得分和风格损失偏向于训练目标,我们还进行了一项用户研究,以评估风格相似性和整体风格化质量。我们随机选择了50对C-S样本给每个用户。给定每对C-S样本,我们展示了我们的方法和随机选取的SOTA方法生成的风格化结果,用户需要选择(1)哪个结果更好地转移了风格图案,以及(2)哪个结果的整体风格化效果更好。我们从20个用户那里收集了1000个投票,并展示了现有方法与我们的方法在表1中的偏好选择比例。较低的数字表明我们的结果比竞争方法更受欢迎。正如结果所示,我们的方法在风格一致性和整体质量上优于其他方法。
4.2.4 效率
如表1底部两行所示,我们的方法在训练时间上要求较少,因为它只需要在少量(约50张)内容图像上进行微调。在测试时,我们的方法比基于优化的方法Gatys[19]要快,但由于使用了扩散模型,其速度仍慢于其他前馈方法。
4.3 消融研究
4.3.1 C-S解耦的控制
我们的StyleDiffusion的一个显著优点是,可以通过调整风格去除模块的内容提取来灵活控制C-S解耦。图4展示了通过调整风格去除模块的返回步长Tremov,如何实现连续的控制。正如上排所示,随着Tremov的增加,更多的风格特征被去除,主要的内容结构被保留。相应地,当更多风格被去除时,如下排所示,它将被适当地转移到风格化结果中,例如扭曲的笔触和星形图案。这验证了我们的方法能够成功地以可控的方式解耦风格和内容,并将风格正确地转移到其他内容中。此外,灵活的C-S解耦也使我们的StyleDiffusion在其他任务中具有多样性,例如照片真实风格转移(见附录)。
4.3.2 基于扩散的风格迁移优势
尽管我们的风格迁移模块不限于扩散模型,使用扩散模型却提供了三大优势:
(1) 灵活的 C-S 权衡控制。如图5所示,通过调整扩散模型的返回步长 ,我们可以在训练阶段(上排)和测试阶段(下排)灵活地控制 C-S 权衡。随着
的增大,更多的样式特征被迁移,但内容结构可能会受到破坏(例如最后一列)。当选择合适的
时,可以得到很好的平衡。有趣的是,如下排的最后两列所示,尽管模型是在
上训练的,但我们可以通过在测试阶段使用更大的
(例如 401)来外推样式(不过当
过大时,如 601,结果会退化)。这为用户提供了非常灵活的方式,根据个人偏好调整结果。然而,其他模型(如广泛使用的 AEs)无法轻松实现这一点,因为我们的框架不涉及任何特征转换或 C-S 损失权衡。
(2) 更高质量的风格化。由于扩散模型强大的生成能力,它可以实现比其他模型更高质量的风格化。为了比较,我们使用预训练的 VGG-AE [30, 49] 作为风格迁移模块,并为每个风格微调其解码器网络。如图6(b)列所示,尽管结果仍然可接受,但可能会产生畸变的内容和劣质的纹理,明显不如扩散模型在图6(a)列生成的结果。这也通过底部的定量评分得到了验证。证明了扩散模型能够更好地学习解耦的内容和样式特征,有助于生成更好的风格迁移结果。
(3) 多样化风格迁移。在推理过程中,我们可以直接采用随机DDPM [28] 前向过程来获得多样化的结果。这些多样化的结果可以给用户提供无尽的选择,帮助获得更满意的结果。然而,像AEs这样的其他模型在我们的框架中无法轻松实现这一点。
4.3.3 损失分析
为了验证用于微调 StyleDiffusion 的各个损失项的有效性,我们展示了图7(a-d)中的消融实验结果。
(1) 使用 损失
成功地迁移了立体派风格(如上排的方块图案),但颜色偏离了风格图像,尤其是在下排。
损失容易产生偏离风格领域的不合理结果。
(2) 添加方向损失 帮助将结果拉得更接近风格领域。上排中的纹理得到了增强,颜色在上排和下排中更加合理。
(3) 通过进一步与样式重建先验 协调,风格化效果显著提升,其中样式信息得到了更充分的恢复。可能是因为它为
和
的优化提供了一个良好的初始化,从而帮助它们发挥最大的作用。如图7(d)所验证的,单独使用样式重建无法学习有意义的样式图案,除了基本的颜色外。所有上述分析也得到了底部定量评分的支持。
4.3.4 与 Gram 损失的比较
为了进一步验证我们提出的损失的优越性,我们用广泛使用的 Gram 损失 [19, 30] 替换了它们,如图7(e-f)所示。可以观察到,Gram 损失严重破坏了内容结构,例如上排的斑马头部和下排的放大区域。这是因为它没有解耦 C-S,只是匹配了全局统计信息,而没有考虑 C-S 之间的关系。相比之下,我们的损失关注于学习解耦的样式信息,而这正是通过内容与其风格化结果之间的差异来实现的。因此,它们可以更好地理解 C-S 之间的关系,从而获得更加满意的结果,细节风格更好,内容得到了更好的保留,如图7(c)和底部定量评分所验证的那样。此外,我们还在 AE 基线 [30, 49] 上进行了 Gram 损失的比较,以消除扩散模型的影响。如图8(a-b)所示,我们的损失比 Gram 损失能获得更满意的结果,这与图7中的结果一致。而如图8(c)所示,它们也可以与 Gram 损失结合,以提高在风格损失度量上的表现。然而,这可能会影响我们框架中 C-S 的完全解耦,偏离我们的目标,并降低内容保留度(见图8(c)中的 SSIM 分数)。因此,我们的框架默认不采用 Gram 损失。