VAE 像素漂移:text-to-3D 噪点伪影的病根找到了

PixSDS: Why Latent SDS Makes Noisy Pixels

Vsevolod Skorokhodov

cs.CV

2026-08-13

把 latent SDS 的结构性噪点归因于 VAE 编码器约束不到的像素方向上的漂移,解码一步前瞻 latent 当作干净方向修补梯度,BRISQUE 从 82 降到 12.9。

这篇在解决什么

Score Distillation Sampling(SDS,得分蒸馏采样)用预训练扩散模型当先验,把渲染出的图像当优化变量,是 text-to-3D 的基础技术。现代管线几乎都在 latent 空间做蒸馏,于是常见一类顽固伪影:结构性色块、高频纹理噪声。此前解释多归咎于 3D 侧——网格提取、mipmap 采样、渲染器本身,修法也多半在渲染端打补丁。

方法

单作者论文,EPFL 的 Vsevolod Skorokhodov 先做诊断,排除法三步:

病根由此定位:VAE 的隐空间到像素的逆映射是一个欠约束问题,很多视觉上迥异的图像编码出几乎相同的 latent。latent 目标只约束得住编码后的表示,优化变量可以沿着编码器约束薄弱的像素方向漂移,latent 一直干净,图像却在积累噪声。附录给了一个形式化版本:对一维卷积型目标,梯度下降可以把初始噪声很小的解推到噪声更大的解上。

修法叫 PixSDS,轻量到不改扩散模型、不改渲染器、不换 SDS 目标:每步先算标准 latent SDS 梯度,同时在 latent 空间往前走一步 β 再解码,得到图像 Ẑ,把 Ẑ - Z 当作干净的 VAE 一致方向,按像素归一化后叠加到 SDS 梯度上。关键设计是前瞻而非重建:若直接把图像拉向当前 latent 的解码结果,图像只会被拽回上一迭代;解码下一步才能既保住 SDS 的语义方向又抹掉噪声方向。消融实验证实了这一点,β=0 时图像干净但不真实。

结果

2D 受控实验,stable-diffusion-2-base,MS-COCO 100 条标题,单卡 V100:

方法FID ↓BRISQUE ↓CLIP-IQA 噪声 ↓
SDS431.982.10.031
VSD321.585.80.104
2-step-SDS229.826.40.479
PixSDS+SGD223.012.90.590
直接采样参考190.912.00.655

PixSDS 在 SDS 系方法里 FID、BRISQUE、噪声三项最好,BRISQUE 从基线 SDS 的 82.1 降到 12.9,已接近直接采样参考的 12.0。3D 侧接入 DreamGaussian 第二阶段和 LucidDreamer,纹理更干净、漂浮高斯更少,未做细致调参也稳定见效;在 Stable Diffusion 3 上同样工作。

为什么重要

对 text-to-3D 从业者,PixSDS 是即插即用的梯度修补,十几行伪代码的量级,不动管线就能降噪。更有价值的是诊断本身:它把伪影成因从「渲染器的锅」搬到「VAE 几何的锅」,说明任何经过 VAE 逆映射做优化的方法(latent 优化、inversion 类任务)都有同样的病,设计蒸馏目标时需要把 VAE 的核空间当一等公民考虑。单作者做到诊断加修法加跨模型验证,完成度不低。

局限与存疑

3D 侧只有定性对比图,没有 CLIPScore 或用户研究之类的定量指标,说服力弱于 2D 部分。LucidDreamer 实验里作者自己承认白发钢铁侠的属性没保住,β 需要按管线调(LucidDreamer 里 β 取 100 倍学习率)。2D 的直接采样参考在 FID 上仍领先所有 SDS 系方法,这本来不是同类比较,但提醒 SDS 优化与直接采样之间仍有实质差距。诊断部分依赖「解码 latent 干净」这一视觉判断,没有给出定量的噪声度量。

术语

原文与代码

相关论文

全部论文解读