CVPR 2025 Alias-Free LDM: 让模型告别“神经质”,从本质上提升潜扩散模型生成稳定性

↑ 点击蓝字 关注极市平台
作者丨天才程序员周弈帆
来源丨天才程序员周弈帆
编辑丨极市平台

极市导读

 

本文提出了一种新型的无混叠潜扩散模型(Alias-Free LDM,AF-LDM),通过引入抗混叠模块和同变损失函数,显著提升了潜扩散模型在分数平移同变性方面的性能,从而增强了生成图像和视频编辑的稳定性和一致性。 >>加入极市CV技术交流群,走在计算机视觉的最前沿

潜扩散模型 (Latent Diffusion Models, LDM) 常因生成过程不稳定而备受诟病:哪怕模型的输入只是受到了一点微小的扰动,模型的最终输出也会截然不同。以视频逐帧风格化任务为例,哪怕对每帧使用同样的 Stable Diffusion ControlNet 图生图编辑方法,同样的随机种子,生成的风格化视频会有明显的闪烁现象。

为了找出这一现象的原因,我们设计了一种配置简单的扩散模型编辑实验:平移扩散模型的初始噪声,观察去噪输出。理想情况下,平移输入噪声,输出图片也应该会平滑地平移。然而,实验结果却显示,直接平移输入噪声会大幅改变输出图片;使用了提升内容一致性的 Cross-frame Attention (CFA) 技术后,虽然图片的主体内容不再变化,可是输出图像在平移时还是有不自然的「抖动」现象。

为什么 LDM 的生成过程这么不稳定呢?为什么 CFA 技术又能提升生成的一致性呢?在我们团队近期发表于 CVPR 2025 的论文 Alias-Free Latent Diffusion Models: sImproving Fractional Shift Equivariance of Diffusion Latent Space 中,我们从平移同变性 (shift equivariance) 的角度分析了 LDM 的生成稳定性,并提出了一种能够提升平移同变性的 Alias-Free LDM (AF-LDM) 模型。我们在无约束人脸生成、视频编辑、超分辨率、法向量估计等多个任务上验证了该模型的有效性。

在这篇博文中,我将系统性地介绍一下这篇论文。我会先简单回顾背景知识,让对信号处理不太熟悉的读者也能读懂本文;再介绍论文的方法、实验、贡献;最后从本工作出发,探讨新的科研方向。

项目网站:https://zhouyifan.net/AF-LDM-Page/

背景知识回顾

本节我会先回顾 LDM,再回顾对平移同变性做了深入研究的 StyleGAN3。由于理解 StyleGAN3 需要了解信号处理的基本概念,我会在尽量不用公式的前提下讲清楚图像频率、混叠等概念。为了简化文字,我会省略理论推导,并使用一些易懂却不见得严谨的叙述。对这些原理感兴趣的读者可以系统性地学习一下 StyleGAN3 论文。

潜扩散模型

扩散模型是一种图像生成模型。生成算法的输入是一张纯噪声图,输出是一张清晰图像。算法执行步,每一步都会调用一个去噪网络来去除图像中的部分噪声。

由于扩散模型运算较慢,我们可以借助一个变分自编码器 (VAE) 来压缩要生成的图像,减少要计算的像素数。简单来讲,VAE 由一个编码器 (encoder) 和一个解码器 (decoder) 组成。编码器负责压缩图像,解码器负责将压缩图像重建。网络的学习目标是让重建图像和输入图像尽可能相似。训练结束后,我们可以单独使用编码器或解码器,实现压缩图像和真实图像之间的相互转换。论文里通常会把压缩图像称为潜图像 (latent image 或者 latent)。

潜扩散模型 (Latent Diffusion Models, LDM) 是一种借助 VAE 加速的两阶段扩散模型。普通的像素级扩散模型会生成一张同样大小的清晰图像。而 LDM 会先生成一张潜图像,再用解码器把潜图像还原成真实图像。我们可以把解码操作简单看成一个特殊的上采样。比如在 Stable Diffusion 中,潜图像的边长被压缩了 8 倍,即解码器会对潜图像上采样 8 倍。

训练 LDM 时,我们需要获取训练图像的潜图像。因此,为了构建训练集,我们会用编码器把训练图像转换为潜空间的图像。

图像的频域表示

在计算机中,图像有很多种表示形式。最常见的形式是空域图像:图像由一个像素矩阵表示,每个像素存储了图像在某个位置的颜色值。此外,还可以把图像表示为频域图像:我们认为图像是由许多不同频率的正弦函数叠加而成的,频域图像的每个像素存储每个频率的正弦函数的振幅和相位。直观来看,图像在空域和频域的可视化结果如下所示:

具体来说,我们可以把空域图像和频域图像都看成二维数组。对于空域图像来说,数组的索引是二维位置坐标,值是此位置的颜色值;对于频域图像来说,数组的索引是横向和纵向的一对频率,值是该频率下的正弦函数的振幅和相位。

为什么我们要大费周章地在频域里表示一张图像呢?这是因为图像的各个频率分量从另一个维度拆分了图像中的信息,这种拆分方式有助于我们分析图像。一张空域图像可以通过 FFT 操作变换成频域图像,而频域图像又可以通过 IFFT 操作变回空域图像。那么,我们可以用如下操作可视化不同频率分量的作用:

  1. 把输入空域图像用 FFT 转换到频域
  2. 对频域图像滤波,分别得到低频、中频、高频三张频域图像
  3. 用 IFFT 在空域中可视化三张频域图像

该操作的结果如下所示。可以看出,图像的低频分量描述了图像的全局结构,而中频分量和高频分量进一步完善了图像的细节。

混叠

假设有一根时针在顺时针匀速旋转。现在,我每秒拍一次照片,一共拍下了时针的三张照片。请问,时针的旋转速度是每秒多少度呢?

从照片中可以看出,时针每秒都旋转了 90 度。因此,你可能会说,时针的旋转速度是 90 度每秒。

下面让我揭晓答案。其实,时针的旋转速度非常非常快。每次拍照时,时针都转了一圈多。也就是说,时针每次旋转了 90 + 360 = 450 度,它的速度是 450 度每秒。如果我们拍照的频率更高的话,将会得到下面的结果。

你可能会觉得这很赖皮:「只给三张照片,谁看得出时针已经多转了一圈啊?」这话确实没错。在相邻两次拍照之间,时针可能已经多转了一圈、两圈……。时针的速度究竟是多少?这其实可以有无数个答案。只有我们强行规定两次拍照之间,时针不能转一圈以上,我们才能得到唯一一种答案。在这种规定之下,如果要表示更快的时针,只能通过增加拍照的频率了。

让我们总结一下从这个示例中学到的规律。在现实中,时针是连续旋转的。而由于存储空间有限,我们往往只能对时针的状态拍照(采样),得到离散的指针状态。采样数相同的情况下,能够表达的信息量是等同的,或者说能够记录的时针最大旋转速度(最大频率)是等同的。要表示更快的时针(更高的频率),就必须要增加采样频率。反过来说,由于采样频率有限,我们有时会错判时针(周期信号)的频率。这种错判现象被称为混叠 (aliasing)。比如把速度 450 度每秒的时针看成 90 度每秒就是一种混叠现象。

类似地,我们可以把图像看成空间中的信号。在现实中,我们眼中看到的图像是处处连续的。为了用计算机显示图像,我们只好在空间中对图像采样,记录有限个位置处的颜色值。如果采样的频率过低,也就是在空间中采样的步长过大,就可能会漏掉某些关键信息,从而造成图像信号的混叠。

而在图像处理中,混叠现象一般出现在高分辨率图像的下采样中。我们来用 matplotlib 中的一个示例复现混叠现象。对于一个包含密集纹理的输入图像,如果我们简单地使用最近邻插值,就会在下采样图像中得到不自然的纹理;而换用抗混叠插值后,混叠现象被大大缓解。

抗混叠的原理是什么呢?我们知道,混叠现象是由于某种采样后,图像的采样率(正比于图像尺寸)过低,导致原图像的高频分量无法正确地在采样后图像中显示。既然如此,我们就先用一个低通滤波器,过滤掉原图像中的高频分量,再做采样。也就是说,抗混叠下采样,等于低通滤波+最近邻下采样。

平移同变性与混叠

通常,我们会为图像处理网络引入一些归纳偏置 (inductive bias),以降低网络的学习难度。CNN (卷积神经网络)就是利用归纳偏置的一个经典示例。由于 CNN 主要由卷积操作构成,而卷积操作在某像素处的输出只取决于邻近像素,因此 CNN 满足平移同变性:平移输入图像,CNN 的输出特征也应该对应地平移。而对于基于 CNN + Softmax 的图像分类网络,按理来说,它满足平移不变性:平移输入图像,输出的类别分布不变。

可是,我们训练出来的 CNN 分类网络真的满足平移不变性吗?在经典论文 Making Convolutional Networks Shift-Invariant Again [2] 中,作者发现,平移输入图像时,普通的 CNN 分类网络的输出概率会发现很大的变化。而这背后的罪魁祸首正是混叠现象。而一个抗混叠的神经网络有着更好的平移不变性。

为什么混叠会和平移不变性关联起来呢?为了方便说明,我们先用公式正式地表示一个简化版 CNN。在一个 CNN 分类网络中,输入 x 会经过若干个由卷积和下采样构成的模块,最后得到二维特征图 f。随后,f 会被展平成一维,并经过 MLP 和 Softmax,输出一个概率分布。

f = down(conv(x))
prob = softmax(mlp(flatten(f)))

在这个过程中,我们希望 f 对 x 是平移同变的。严谨地说,对于输入  ,如果函数  满足

其中  是平移操作,那么操作  是平移同变的。在分类网络中,我们希望分类网络的卷积部分 down  是平移同变的。一旦这个操作满足平移同变性,后面的 softmax  latten(f)))操作都不会考虑输入像素的先后顺序,整个网络就满足了平移不变性。

那么,这么多步骤中,是哪一步出错了呢?论文指出,通常 CNN 都使用最近邻下采样。这种下采样操作会导致图像出现混叠现象。解决方法也很简单,如上一节所述,我们可以将最近邻下采样换成先低通滤波再最近邻下采样,以缓解网络的混叠。果不其然,换用了抗混叠下采样后,CNN 的平移同变性大大提升,最后输出的概率分布的平移不变性也相应地大大提升。

无混叠的 StyleGAN3

经典图像生成网络 StyleGAN2 可以把一张  的特征图像不断上采样并转换成一张  的高清图像。由于该生成网络也是一个 CNN,我们希望它满足平移同变性。这样,移动输入特征图像,就能对应地移动输出高清图像。但是,在平移 StyleGAN2 的特征图像时,我们能在输出图像中观察到纹理滞留(texture sticking)现象:人物的胡须和头发好像停留在了原地,并没有随着输入移动而移动。而 StyleGAN3 的目标正是解决这一问题。

StyleGAN3 同样指出,混叠现象是造成纹理滞留的主要原因。为了彻底解决这一问题,StyleGAN3 系统性地用信号处理知识分析并改进了 StyleGAN2 的模块。如前文所述,一张图像能够表示的频率分量是有限的。图像尺寸越大,能表示的最大频率越大,图像的细节也就越多。而在对图像重采样(改变图像尺寸)前后,如果我们不能正确地调整图像的最大频率,就有可能产生造成图像内容错乱的混叠现象。所以,要系统性地调整每个模块以防止其出现混叠,其实就是要让每个模块正确地处理图像的最大频率。

经分析,StyleGAN3 主要对 CNN 的以下模块做出了改进以去除混叠:

  • 上/下采样层:早期工作设计抗混叠采样时,只是简单地用同一个模糊卷积来近似低通滤波。而 StyleGAN3 精确地为采样率(边长)不同的特征算出了不同的最大频率,并根据此最大频率设计了不同的低通滤波器,用以修正采样前后的信号频率。
  • 非线性函数(激活函数):StyleGAN3 指出,非线性函数会在信号中引入新的高频分量,从而引起混叠。为此,StyleGAN3 的解决方法是,先临时把信号上采样  倍,再让信号过非线性函数,最后将信号下采样  倍以使其复原。这是因为,采样率越高,能表示的最大频率越高,引起混叠的可能越小。实验中发现,令  就有不错的效果。这一模块被 StyleGAN3 称为经过滤的非线性函数(filtered nonlinearities)

除此之外,StyleGAN3 还从抗混叠以外的角度提升了 CNN 的平移同变性:

  • 傅里叶特征输入:为了让生成网络的输入平滑移动,即能够移动非整数个像素,StyleGAN3 将输入的离散特征图像修改成了一个在空间上可以任意采样的傅里叶特征。
  • 边缘像素裁剪:此前研究表明,CNN 会从图像边缘处的 0 填充卷积中学习到绝对位置信息,这违反了 CNN 平移同变性的假设。因此,StyleGAN3 在同一尺度的特征图像外都填充了一些额外像素,并在每次上采样后丢弃这些边缘像素。

Alias-free Latent Diffusion Models

设计动机

回顾了潜扩散模型理论基础以及神经网络的平移同变性与混叠的关系后,我们来正式学习 AF-LDM 论文。

如本文开头所述,为了分析 LDM 的生成稳定性为什么那么差,我们用一个更简单的平移任务来定位问题的根源。实验结果显示,LDM 网络的平移同变性也很差。更准确地说,LDM 只对整数平移有较好的同变性。

这里先补充介绍一下整数平移和分数平移。假设我们有一个能把图像 2 倍上采样的平移同变的网络。如果我们对输入移动  个像素,那么输出就应该平移  个像素。然而,如果只对输入平移整数个像素,那么输出只能平移偶数个像素。为了平滑地让输出平移  个像素,我们有时需要令输入图像平移分数个像素。

在分数平移时,我们要通过插值获得图像在非整数位置处的值。后文我们会详细讨论该如何选取插值方法。

回到 LDM 的平移同变性上。实验显示,尽管神经网络主干都是理论上应该平移同变的 CNN,LDM 的 VAE 和去噪 U-Net 都只对整数平移有同变性,而在分数平移时同变性较差。如下图所示,我们测试了潜空间下采样 8 倍的 VAE 和去噪 U-Net 的同变性,每一个平移步数表示平移 1/8 个像素。仅当平移步数是 8 的倍数时,网络的同变性指标(以 PSNR 表示)才比较高。

参考了之前工作后,我们认为 CNN 平移同变性下降是由于混叠现象导致的。如果我们去除了 LDM 的 VAE 和 U-Net 中的混叠,那么 LDM 就会有更好的同变性。总结下来,论文的整套思维链如下:

  1. Stable Diffusion 等 LDM 编辑稳定性差。
  2. 在较简单的输入平移任务上,LDM 的稳定性依然很差。
  3. LDM 的分数平移同变性差。
  4. 混叠现象降低了网络同变性。

为了提升 LDM 的稳定性,我们需要倒着解决问题:

  1. 设计抗混叠模块,去除网络中的混叠。
  2. 验证无混叠 LDM (AF-LDM) 的平移同变性确实有所提升。
  3. 验证提升平移同变性的 LDM 在编辑时稳定性更好。

在这一大节里,我们主要会学习 AF-LDM 论文的方法部分,即如何开发一个无混叠的 LDM。在下一大节里,我们再浏览论文里的实验结果,以验证 AF-LDM 确实能提升 LDM 的稳定性。

引入 StyleGAN3 抗混叠模块

我们希望设计一种无混叠的 LDM。同时,为了尽可能利用预训练 LDM (比如 Stable Diffusion)的权重,我们希望对 LDM 模型结构上的改动尽可能小。因此,我们仅将前文所述的 StyleGAN3 的两个抗混叠模块引入了 LDM 的 VAE 和 U-Net 中:

  • 上/下采样层:让上采样层能够正确处理图像频率。和 StyleGAN3 不同的是,StyleGAN3 使用 Kaiser 卷积来近似低通滤波,而我们参考之前的 AF Convnet [3] 工作,使用了基于 FFT 操作的滤波操作以实现理想滤波(恰到好处地过滤图像中的频率)。
  • 非线性函数:我们也使用了同样的经过滤的非线性函数,以抑制高频分量造成的混叠。

当然,仅做这些改动还不足以实现无混叠的 LDM。还需要解决的问题有:

  • 如何定义分数平移。StyleGAN3 将输入特征图像定义成了傅里叶特征,它可以在任意位置采样,天生支持分数平移。而在 LDM 中,我们往往需要分数平移潜图像。而潜图像是离散的,它在分数平移中的插值方式需要慎重定义。
  • 使用同变损失进一步提升同变性。我们在实验中发现,仅靠抗混叠模块还不足以提升模型的平移同变性,我们通过增加损失函数的方式强制让模型在训练中学习平移同变性。
  • 改进自注意力模块。由于自注意力输入是全局操作,其输出对输入的变化非常敏感,平移同变性差。我们分析并缓解了此问题。

连续潜图像表示

对图像做分数平移,其实就是在图像分数位置处重新采样。比如,假设一维信号原来的采样坐标为 0, 1, 2, …,将其向左平移 0.5 个单位后,采样的坐标变为 0.5, 1.5, 2.5, …。为了求解这些新坐标下的像素值,我们需要使用某种插值方法。

在这个工作中,我们假设 LDM 的 VAE 中的潜图像是一种连续图像,即它可以无损被傅里叶变换转换成连续信号。那么,对这种连续图像做分数平移时,就可以使用理想插值:先用 FFT 把图像转到频域,再将分数平移转换成信号的相位变动,最后用 IFFT 把平移后的信号复原回空域。

值得注意的是,将潜图像假设成连续信号,只是规定了我们在分数平移潜图像时用到的算法。模型在训练时并不知道潜图像满足这种表示。在下一节中,我们会学习如何用损失函数让模型学到这种表示。

同变损失

加入了 StyleGAN3 中的抗混叠模块后,一个随机初始化的 VAE 确实有了更好的同变性。然而,我们发现了一个奇怪的现象:随着 VAE 训练的不断进行,VAE 的同变性开始不断下降(稍后我们会在实验部分看到这些结果)。相同的现象在去噪 U-Net 也可以观察到。我们猜测这是因为我们的网络中一些不够完美的设计让模型始终会产生轻微的混叠现象,而这些混叠现象能够帮助网络的学习。因此,随着训练的进行,网络会倾向于放大混叠现象。这些不完美的设计可能包括:

  • 未使用傅里叶特征:StyleGAN3 将输入定义为连续的傅里叶特征,天生支持连续平移。而我们只是假设 VAE 的潜图像可以由连续信号表示,而没有在训练中让模型感知到这一点。
  • 未使用边缘像素裁剪:边缘像素的卷积会泄露绝对位置信息。我们没有像 StyleGAN3 一样使用这个技术。

StyleGAN3 可以简单看成一个不断上采样低分辨率图像的网络,它在结构设计上有很大的自由。而在由 VAE 和 U-Net 组成的 LDM 里,实现上述两种技术的方法并不是很直观。且由于我们想尽可能减少新设计,并通过微调预训练模型来使之具有同变性,我们没有在 AF-LDM 里加入上述技术。

为了防止 LDM 在训练中同变性下降,我们根据同变性的定义,提出了一个额外的同变损失来规范网络模块的学习。对于不同的模块,我们根据其输入输出设置不同的同变损失。比如,对于 VAE 编码器  ,我们定义以下损失:

其中, 表示将  平移  个单位, 表示编码器下采样倍数。由于潜图像  的边长缩小了  倍,编码器输入平移  对应输出平移  。除了直接做差以对齐同变性的定义外,我们还设置了掩码  以表示需要计算损失的有效区域。之所以平移时存在「有效区域」,是因为我们将平移定义为裁剪平移(cropped shift),即最右的像素移出图像边界后,最左侧只会填充全零像素。这些全零像素就属于无效区域,我们应该只在另外的有效区域计算同变损失。

VAE 解码器和 U-Net 的同变损失有着类似的形式。欢迎大家阅读论文以了解细节。

由于在计算同变损失时,我们将平移操作中的插值设置成了理想插值,因此模型能够学到我们在上一节定义的连续潜图像表示。

同变注意力

LDM 的去噪 U-Net 一般会使用自注意力操作:

其中,矩阵  是  个长度为  的特征,三个参数矩阵  为可学习参数。

自注意力会严重降低模型的平移同变性。如文本开头的视频所示,原版 Stable Diffusion 在输入噪声平移后,输出会发生极大的改变。而使用 Cross-frame Attention (CFA) 这种提升自注意力稳定性的操作后,模型的输出才稳定起来。

为什么自注意力的平移同步性较差呢?为什么 CFA 能提升同变性呢?在这篇文章中,我们深入地研究了自注意力的平移同变性。准确来说,我们考虑的是裁剪平移下的同变性。

根据同变性的定义,自注意力满足以下条件时才是同变的:

由于此时  ,即  不是一张图像,而是一个特征序列,图像里的每一个像素是一个行向量,因此这里的平移操作  其实是修改  的行向量的排序。我们先记住这个性质。

观察上面等式的右边,我们可以将它看成先有输入  ,再做了两次矩阵右乘,再做了一次 Softmax,再做了一次矩阵右乘,最后平移。而矩阵右乘和 Softmax 对行向量都是独立的,所以上面的右式可以化简成  。

现在,要让自注意力操作满足平移同变性,只需要满足下面两个式子:

然而,由于此时的平移操作为裁剪平移,上面两个式子无法成立,且随着平移的推进误差会越来越大。通过上述分析,我们得出结论:自注意力对裁剪平移不具有平移同变性。这也符合我们直觉上的理解:自注意力是一种全局操作,一旦输入某处发生了一些微小的改变,输出就会出现较大的变动。

想要重新设计一种同变性更好的自注意力操作并不简单。不过,我们可以采取一种权宜之策来提升现有自注意力的相对平移同变性。假设有参考帧  和平移后的帧  ,我们将计算  时的自注意力定义为同变注意力(Equivariant Attention):

在实现时,我们先正常算所有注意力特征  ,并将其缓存下来;而在计算某一层的  的自注意力时,我们再取出对应的  。这样,含  和  的那两项不随输入  而变化,整个注意力操作就是一定是平移同变的了。注意,这里的平移同变是  相对参考帧  而言的,我们不能保证其他帧之间,如两个平移后的帧之间,仍然具有平移同变性。

这一操作其实就是之前 Stable Diffusion 视频编辑工作 (如 Text2Video-Zero [4]) 里常用的 CFA 操作。而之前工作并没有对 CFA 做深入分析,只是简单解释成「将参考帧的 K, V 注入其他帧能够提升其他帧的风格一致性」。而在我们这篇论文中,我们发现 CFA 有用的原因是它提升了其他帧对参考帧的平移同变性,这其实是一种同变注意力。为了方便其他研究者的理解,我们在后文还是把这种同变注意力称为 CFA。为了把 CFA 加入模型中,我们在两处使用了 CFA:

  1. 计算同变损失时
  2. 训练结束后,生成平移后的图片时

方法小结

我们的方法可以用下面的示意图概括。除了像 StyleGAN3 一样加入抗混叠模块外,我们的主要改进是在训练时加入同变损失。而在计算此损失时,需要将平移后图像的自注意力运算改成同变注意力。

实验

做完上述所有改进后,我们将这种同变性更好,无混叠的 LDM 称为 AF-LDM。参照这一简称方式,我们会把改进后的 VAE, Stable Diffusion 简称为 AF-VAE, AF-SD。在实验环节,我们会验证改进后模型的有效性,并展示它的一些应用。

同变性消融实验

根据同变性的定义,我们用先平移、再操作和先操作、再平移的图像之间的重建误差来反映同变性的高低。参考之前的工作,我们用 PSNR 来计算重建误差。这种反映同变性的 PSNR 在论文中被简称成 SPSNR。我们看一下消融实验的结果。Latent PSNR 表示 U-Net 输出的潜图像的同变性,Image PSNR 表示 U-Net + VAE 解码器的同变性。这个表展示了非常多的结论:

  • 比较第一栏和第二栏的结果,使用 SD VAE 看起来 Latent PSNR 还不错,但由于 VAE 不是同变的,最后的 Image PSNR 还是很差。我们必须把 VAE 和 U-Net 都变成无混叠的。
  • AF-LDM random weights 表示做了模块上的改进 (Ideal Sampling, Filtered Nonlinearity) 之后仅随机初始化参数,不训练模型。将它的同变性和训练过的模型做对比,可以发现模型的同变性在训练中下降。
  • 为了防止同变性在训练中下降,我们需要加入同变损失。
  • 在计算同变损失时,我们需要在自注意力中使用 CFA。
  • 比较不做模块上的改进只加同变损失(倒数第二行)和 AF-LDM (倒数第三行)的结果,可以发现同变损失单独是不起作用的,不仅 FID 差了很多,SPSNR 也变差了。因此,同变损失必须和抗混叠模块一起使用。

上表的结果表明,我们在论文中介绍的所有设计都是有效的。最终的 AF-LDM 可以在几乎不降低生成质量的前提下大幅提升模型同变性。除表格外,我们在项目网站上分享了更直观的消融实验结果。

我们还用一个简单的实验说明,此前模型仅在整数平移(潜图像移动 1 个单位,真实图像移动 8 个单位)时具有较好的同变性。而为了实现平滑的图像编辑,我们最大的收获是提升了模型的分数平移同变性。

仅用光流变换的视频编辑

尽管我们在方法设计中仅考虑了裁剪平移的同变性,但在实验中,我们发现模型对更复杂的不规则变换,如光流变换,也具有更好的同变性。这一性质拓宽了 AF-LDM 的应用场景。为此,我们在 AF-VAE 的潜空间里重新训练了加入了抗混叠模块的 Stable Diffusion 1.5 (AF-SD),并在 AF-SD 上做了光流变换同变性的相关实验。

先简单补充一下光流的相关知识:光流描述了视频两帧之间每个像素的平移。因此,光流是一张的图片,两个通道分别表示每个像素在横向和纵向上的平移。根据光流,我们能够把视频的前一帧变换到后一帧。当然,这种变换是存在误差的。

在实验中,我们主要观察两张图片在扩散模型的 DDIM 反演 (将真实图片变回纯噪声)和 DDIM 重建阶段对光流变换的同变性(以 SPSNR 来评估)。另外,为了知道在光流变换中「较好的」 SPSNR 应该是多少,我们计算了输入帧之间的光流变换误差,用以提供参考。

结果显示,AF-SD 在反演和生成时的光流变换同变性都有所提升。惊人的是,AF-SD 在生成时的重建效果竟然比直接对输入图像做光流变换还要好。也就是说,在用 AF-SD 时,只要对初始噪声做光流变换,输出视频就会自然做对应的光流变换,且比直接在图像上做更加准确。

受到上述实验结果启发,得益于 AF-SD 在反演和生成过程中的同变性,我们设计了一种非常简单的视频编辑方法:对一个视频的每一帧进行 DDIM 反演和再生成(改变生成时 prompt)。我们做的唯一改动是同时在反演和生成的时候都启用后续帧对第一帧的 CFA。

这种简单的视频编辑方法能够为内容变化不大(相对第一帧而言)的视频输出平滑的编辑结果。由于我们的改进主要体现在分数平移同变性上,输入视频的变化越是细微、平缓,我们的编辑方法的优势就越明显。比如,以下是同一个编辑方法下,SD 和 AF-SD 的结果对比。

小声说一句,由于 AF-SD 需要重新训练所有模型,而我们的数据和计算资源都不够,所以 AF-SD 的生成质量较差。当然,它还是可以完成一些简单的编辑任务的。我们主要用这个模型来验证 AF-LDM 的应用潜力。

其他应用

我们还在其他一些任务上简单验证了 AF-LDM 的通用性。在实现所有任务时,我们都采用了基于扩散模型的方法。欲知细节欢迎阅读原论文和访问项目网站。

贡献总结与未来展望

读完论文的主要内容后,我们可以总结论文的贡献:

  1. 我们追溯了潜扩散模型编辑不稳定的主要原因:缺乏分数平移同变性。
  2. 我们设计了一种无混叠的潜扩散模型 (AF-LDM),它能够有效提升 LDM 的平移同变性。
  3. 从技术贡献上看,我们提出了简明有效的同变损失,以防止加入了抗混叠模块的模型在训练中损失同变性。此外,我们分析了自注意力运算不够稳定的原因,并通过在同变损失里加入同变注意力来提升模型对参考帧的相对同变性。
  4. 我们在多项任务中展示了 AF-LDM 广泛的应用前景。

其中,我认为第一项贡献是最重要的。潜扩散模型的不稳定性是一个老生常谈的问题,但很少有工作对其做深入分析。而我们提供了一个分析此问题的新视角,并且证明此前常见的 CFA 技术其实和同变性密切相关。第四项贡献也很有趣,我们发现 AF-LDM 也能提升不规则平移的同变性,可能可以拓展到更多任务上。剩下两项技术贡献倒相对来说没有那么重要。

按惯例,我也给论文挑挑刺,列举它的几项不足:

  • 社区用户很多时候会关注一项工作的方法能否直接用起来,能否用预训练模型实现一些好玩的应用。但我们在这个项目中训练的文生图模型 AF-SD 生成质量较差,只能做一些简单的应用。
  • 论文没有进一步分析为什么训练时模型的同变性会逐渐下降,只给了解决方法。
  • 我们并没有完美解决自注意力的低同变性问题,目前的同变注意力必须要给一个参考帧。

总体上来,我个人比较喜欢能够深入解释某一问题的工作,我对这个工作的贡献十分满意。

从这个工作出发,我能想到的未来探索方向有:

  • 帮助视频生成和多视角 3D 生成。平移同变性好,意味着模型能够用同样的形式表达不同位置的同一物体。这一性质在图像生成中难以体现,而在视频生成和多视角 3D 生成中比较重要。
  • 更稳定的视频编辑和图像插值方法。我们在论文仅仅展示了简单的视频编辑和图像插值算法。如果将 AF-SD 和之前的方法结合,再稍微加一点新的设计,就能实现一套不错的方法。当然,由于我们提供的预训练 AF-SD 质量较差,开发图像插值应用更可行一点。
  • 获取像素级精确特征。潜图像的一个像素代表了  个真实像素。而如本工作所示,目前多数 LDM 的 VAE 存在混叠现象。这会导致我们难以准确获取每个真实像素处的特征,只能大概获取其邻域的特征。而 AF-LDM 可以改善这一点。当然,为了验证 AF-LDM 在这方面的优越性,我们需要找到一个合适的任务去测试。我简单测试了像素级匹配任务 (pixel correspondence),但似乎 AF-LDM 在这个任务上没有明显提升。

除了最直接的应用外,这篇论文还能给我们更宏观的一些启示。比如,现在的神经网络在处理图像时并不是完美的。神经网络的上下采样操作一般是固定的,不管网络的其他参数学得有多么好,不够合理的上下采样总会导致一些问题(比如混叠)。我们不能希望靠加数据来解决一切问题,有时候要从更底层的神经网络设计来解决问题。希望这篇论文能够引发大家在科研上的更多思考。

参考文献

[1] StyleGAN3: Alias-Free Generative Adversarial Networks

[2] Making Convolutional Networks Shift-Invariant Again

[3] AF Convnet: Alias-Free Convnets: Fractional Shift Invariance via Polynomial Activations

[4] Text2Video-Zero: Text-to-Image Diffusion Models are Zero-Shot Video Generators

[5] I2SB: Image-to-Image Schrödinger Bridge

(文:极市干货)

欢迎分享

发表评论