CVPR 2025 Oral | Alias-Free LDM:从平移等变性的角度提升潜扩散模型生成稳定性 | 周弈帆的博客

页面笔记

划线列表

潜扩散模型 (Latent Diffusion Models, LDM) 常因生成过程不稳定而备受诟病:哪怕模型的输入只是受到了一点微小的扰动,模型的最终输出也会截然不同

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

我们从平移同变性 (shift equivariance) 的角度分析了 LDM 的生成稳定性,并提出了一种能够提升平移同变性的 Alias-Free LDM (AF-LDM) 模型。我们在无约束人脸生成、视频编辑、超分辨率、法向量估计等多个任务上验证了该模型的有效性。

图像的频域表示

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

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

可以用如下操作可视化不同频率分量的作用:

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

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

混叠

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

抗混叠的原理是什么呢?

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

平移同变性与混叠

而对于基于 CNN + Softmax 的图像分类网络,按理来说,它满足平移不变性:平移输入图像,输出的类别分布不变。

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

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

无混叠的 StyleGAN3

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

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

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

Alias-free Latent Diffusion Models

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

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

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

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

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

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

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

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

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

连续潜图像表示

同变损失

同变注意力

方法小结

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

全文剪藏