SSDD: Single-Step Diffusion Decoder for Efficient Image Tokenization¶
会议: ECCV 2026
论文: ECCV 官方页面
代码: https://github.com/facebookresearch/SSDD
领域: 图像生成
关键词: 连续图像分词器、单步扩散解码、流匹配、感知重建、知识蒸馏
一句话总结¶
SSDD 用卷积与 Transformer 混合的像素空间解码器,在无 GAN 的流匹配训练后将多步教师蒸馏为单步学生,使 ImageNet 256×256、f8c4 设置下的小模型将 KL-VAE 的 rFID 从 0.87 降到 0.46,同时把解码吞吐从 705 提高到 1027 张/秒。
研究背景与动机¶
潜空间图像生成通常先把图像压成连续特征,再用 DiT 等模型生成特征,最后解码回像素。常用 KL-VAE 的解码器为每个潜变量给出确定性结果,以像素误差、LPIPS 和对抗损失共同训练。但有损压缩已经丢掉一部分纹理信息,同一个潜变量可能对应多张合理图像;逼解码器只输出一个答案,容易把不确定细节平均掉。这里要区分两个目标:逐图还原得像不像原图,以及所有重建图像的分布是否像真实图像。PSNR 与 rFID 分别偏向这两个目标,不能互相替代。
扩散解码器把恢复任务改写成给定潜变量的条件生成,通过噪声采样补出未被编码的细节。DiTo、ε-VAE 已验证这一方向,但多步去噪增加了每张图的解码成本,部分强结果仍依赖难以稳定扩展的对抗训练。单纯把采样步数降为一步也不够:本文发现一步更利于低层失真,而感知指标往往需要适量迭代,直接省略迭代会改变模型的输出行为。
因此,作者不是重新设计整套生成器,而是集中改进解码端:先让混合架构稳定学习条件图像分布,再把实际效果好的多步采样行为迁移到一步。共享编码器则使不同解码容量可以留在同一潜空间中比较。核心 idea:把“如何学到真实的条件重建分布”和“如何只用一次前向传播实现它”分开解决,以无 GAN 的多步教师训练质量,再以同噪声、同潜变量的蒸馏保留这种生成行为。
方法详解¶
整体框架¶
输入图像先经共享编码器压缩为二维连续潜变量;混合像素解码器同时接收潜变量、带噪图像和噪声时间,在无对抗联合训练下学习去噪。训练好的解码器以 8 步产生教师重建,再通过单步行为蒸馏得到最终 SSDD;推理时只需潜变量和一次采样的高斯噪声,不需要教师、LPIPS 网络或 DINOv2。
模型名 SSDD(8) 表示多步版本,不带括号的 SSDD 表示已经蒸馏的单步版本。编码器压缩率和解码步数是两个独立选择;尤其不能把 f16c4 的下游加速误解成在同一个 f8c4 潜空间里仅替换解码器得到的收益。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
X["输入图像"] --> E["共享编码器"]
E -.->|训练条件| H["混合像素解码器"]
X -.->|加噪图像与时间| H
H -.-> L["无对抗联合训练"]
X -.->|原图及感知特征监督| L
L -.->|优化后冻结为教师| S["单步行为蒸馏"]
H -.->|教师的 8 步重建目标| S
E -->|推理潜变量| S
N["高斯噪声"] --> S
S --> Y["单步学生输出图像"]
实线表示最终重建所需的数据流,虚线表示训练及教师监督;“单步行为蒸馏”节点包含学生的训练与所得单步解码器。下游生成时由 DiT 提供潜变量,取代图像编码这一步。
关键设计¶
1. 共享编码器:改变解码容量时不反复改变潜空间
编码器沿用 KL 正则化的卷积设计,记号 f8c4 表示空间下采样 8 倍、潜变量有 4 个通道。作者先把编码器与 SSDD-M 联合训练,并通过多尺度增强让它适应不同图像尺寸,然后冻结编码器,供不同规模的解码器使用。共享发生在相同下采样因子和通道数的配置内部,不是所有压缩设置共用一个编码器。这避免每试一个解码器就得到一个新的潜空间、继而重训对应的下游生成模型。
SSDD 也可以针对已有网格潜空间训练,例如论文讨论的 KL-VAE 编码器。这里的“可替换”是接口和适配能力,不代表任意一个 SSDD 权重可以直接解释任意旧编码器的潜变量。标准 f8c4 的元素数压缩比为 48;若通道数保持不变而改为 f16c4,则潜变量数量再缩小为四分之一,更多细节重建责任转移到解码器。
2. 混合像素解码器:用卷积处理像素,用中间 Transformer 扩展容量
模型基于 U-ViT 改造 U-Net:保留四级卷积特征层、每级两个 ResNet 块及三级下采样/上采样,移除原来的注意力层,在中间放入处理 8×8 像素区域对应 token 的 Transformer。Transformer 使用 GEGLU、4 倍宽度的 MLP 和多头注意力。相对位置嵌入配合固定 17×17 局部注意力窗口,让增加容量不必依赖全分辨率全局注意力;局部卷积则继续负责像素邻域和细节恢复。
潜变量首先上采样到图像尺寸,与带噪图像按通道拼接。但对于较深而窄的网络,只在输入端提供条件容易变弱,因此作者又把潜变量送入 ResNet 的第一处 AdaGN 和 Transformer 的第一处 AdaLN;时间嵌入通过 ResNet 的第二处 AdaGN 注入。输入拼接负责直接传递空间内容,自适应归一化让条件持续调制深层计算。模型通过增加通道和 Transformer 层数扩展,S 到 XL 的解码器参数从 13.4M 增至 153.8M。
3. 无对抗联合训练:同时约束去噪方向、图像感知和中间特征
训练时把真实图像与高斯噪声线性混合。按本文的时间约定,零时刻是图像,一时刻是噪声,解码器预测从噪声指向图像的速度。下式中的预测方向和一步恢复关系均来自正文第 3.2 节,而不是通常扩散记号的直接套用:
流匹配用 L2 误差监督预测速度接近图像减噪声;LPIPS 约束一步恢复图像与原图的感知接近程度。REPA 则用两层 MLP 把 Transformer 第 4 层 token 与 DINOv2-B 参考特征对齐,使中间表示更容易学到有用视觉结构。三者不需要训练判别器,但无 GAN 并不等于不依赖预训练感知网络。联合目标的权重是:
4. 单步行为蒸馏:学习教师实际走出的结果,而非直接截断采样
LPIPS 会改变原始流匹配目标的优化方向,因此学到的速度场不一定对应直线轨迹。论文观察到增加采样步数并非总能改善结果:一步的 PSNR 较好,rFID 等指标在中间步数出现较好折中,之后可能恶化。作者采用 8 步、参数为 2 的时间间隔调度,先用较大的去噪步长形成内容,再用较小步长修细节。缓存中的梯度推导和调度公式存在排版错位,这里只保留可核实的机制及超参数,不重造精确公式。
蒸馏时冻结教师,用同一潜变量和同一份高斯噪声运行教师的 8 步重建;学生从教师权重出发,在固定噪声时间 1 上做单步预测。流匹配目标改为教师重建减去这份噪声,而不是原始图像减噪声,因而学生学习的是教师如何补全不确定细节。蒸馏并非仅做 L2 回归,作者表示保留完整训练目标。需注意原文第 3.3 节存在歧义:文字称流匹配和 LPIPS 都针对教师输出计算,但所列 LPIPS 式仍使用原图。当前缓存不含其引用的附录,不能据此确定实现究竟采用哪一种 LPIPS 目标。
一个完整示例¶
以一张 256×256 RGB 图像为例,f8c4 编码后是 32×32×4 的潜变量,共 4096 个标量;原始图像有 196608 个标量,因此这里说的 48 倍压缩是元素数之比,不是实际文件码率。
重建时,学生拿到这个潜变量以及一张图像尺寸的高斯噪声图。潜变量既以放大后的空间网格进入输入,也调制网络归一化层;混合解码器一次前向传播预测速度,在噪声时间 1 得到重建。更换随机噪声可以得到不同的合理细节,而不是改变潜变量表达的主要内容;这种随机性是设计目标,并不意味着能逐像素恢复丢失的信息。
若改用 f16c4,潜变量变为 16×16×4,即 1024 个标量。下游 DiT 的空间输入更小,所以整个生成流程有加速空间,但必须在这个潜空间上训练相应 DiT;这与固定旧生成器、仅替换最后的像素解码器是不同实验。
损失函数 / 训练策略¶
训练噪声时间来自位置参数 0、尺度参数 1 的 logit-normal 分布,流匹配的最小噪声参数为 0。作者先用随机缩放后裁出的 128×128 图像预训练,再在目标 128×128 或 256×256 分辨率微调,最后进行单步蒸馏;512×512 与 1024×1024 的评测复用 256×256 模型,并未逐个分辨率重新训练。
编码器联合训练和后续冻结、教师冻结以及学生微调属于不同阶段,不应混成一个始终端到端更新的过程。论文还引入 EMA 等训练配方;其完整优化器与模型参数表被放在附录 B,当前所给文本只到正文及参考文献,因此这里不补写未核实的学习率或训练预算。
实验关键数据¶
主实验¶
重建评测使用 ImageNet 验证集 50k 张图像。rFID 衡量重建分布与真实分布的差异,LPIPS、DreamSim 评估感知失真,三者越低越好;PSNR 越高越好。吞吐测试采用单张 H200、torch.compile、batch size 128 和 1000 次迭代,不应当作单张图片低延迟实测。
表 1 的代表性结果如下,所有列出的解码器均只执行一步。
| 潜空间 | 方法 | 解码器参数 | 解码吞吐(张/秒) | rFID ↓ | LPIPS ↓ | PSNR ↑ |
|---|---|---|---|---|---|---|
| f8c4 | KL-VAE | 47.2M | 705 | 0.87 | 0.065 | 24.11 |
| f8c4 | SD-VAE | 47.2M | 707 | 0.69 | 0.061 | 25.52 |
| f8c4 | SSDD-S | 13.4M | 1027 | 0.46 | 0.060 | 24.08 |
| f8c4 | SSDD-M | 48.0M | 357 | 0.39 | 0.055 | 24.38 |
| f16c4 | KL-VAE | 36.4M | 1176 | 2.93 | 未报告 | 20.57 |
| f16c4 | SSDD-L | 85.2M | 305 | 0.96 | 0.155 | 17.26 |
SSDD-S 的 1027/705 约为 1.46 倍,论文概括为 1.4 倍。SSDD-M 与 KL-VAE 参数相近,但吞吐明显更低,因此“同参数质量更好”不能表述成“同参数也更快”。f16c4 下 rFID 从 2.93 改善到 0.96,同时 PSNR 从 20.57 降到 17.26,正体现本文优先优化生成感知质量而非逐像素保真。
表 3 的生成结果包含 DiT-XL/2 潜变量采样和像素解码的完整吞吐。DiT 在 ImageNet 256×256 上训练 400k 步,启用无分类器引导(CFG)时系数为 1.375。
| 潜空间与解码器 | 无 CFG gFID ↓ | 无 CFG 张/秒 | 有 CFG gFID ↓ | 有 CFG 张/秒 |
|---|---|---|---|---|
| f8c4 KL-VAE | 19.71 | 7.05 | 7.63 | 3.54 |
| f8c4 SSDD-S | 17.77 | 7.07 | 8.02 | 3.55 |
| f8c4 SSDD-M | 17.03 | 6.98 | 7.63 | 3.52 |
| f16c4 SSDD-L | 16.27 | 25.95 | 7.34 | 13.55 |
| f16c4 SSDD-XL | 16.08 | 25.04 | 7.12 | 13.30 |
有 CFG 时,f16c4 SSDD-L 相对 f8c4 KL-VAE 的完整生成吞吐为 13.55/3.54,约 3.83 倍,gFID 也从 7.63 降到 7.34。无 CFG 对应约 3.68 倍,而不是两个设置都精确为 3.8 倍。小模型 SSDD-S 在 f8c4、有 CFG 时的 gFID 8.02 反而不如 KL-VAE 的 7.63,不能把正文的总体优势概括为每种配置全面领先。
消融实验¶
表 4 是 ImageNet 128×128 上的逐项累加实验,不是每个组件独立移除的正交消融。下表选取架构、REPA、完整多步模型与蒸馏节点;第三行到第四行之间还加入了 KL 正则、时间采样、EMA 和共享训练等因素。
| 配置 | rFID ↓ | PSNR ↑ | 解码步数 |
|---|---|---|---|
| DiTo-S-LPIPS,48.3M | 3.17 | 23.10 | 24 |
| 替换为 SSDD-M 解码器,48.0M | 2.01 | 23.38 | 24 |
| 再加入 REPA | 1.58 | 22.82 | 24 |
| 完成其余配方与共享预训练:SSDD(8)-M | 0.97 | 23.04 | 8 |
| 再做单步蒸馏:SSDD-M | 1.04 | 23.28 | 1 |
按表内显示值,架构替换改善 rFID 1.16,随后 REPA 改善 0.43;原表增量标注及正文写作 0.44,可能涉及未显示精度,不在此把二者强行统一。蒸馏使 rFID 增加 0.07,但将 8 步减为 1 步。在另一条以共享编码器阶段为基础的 GAN 对照中,加 GAN 前后 rFID 都是 1.07;这不是直接在最终蒸馏模型上完成的同一对照。
关键发现¶
- 架构与 REPA 是累加消融中最显著的两项质量改进,但不能据此排除组件之间的交互作用。
- 单步蒸馏保留了大部分多步质量,代价是轻微的 rFID 退化;步数降低也不自动等于相同比例的端到端加速。
- 跨数据集的表 5 中,ImageNet 训练的 SSDD-B 在 COCO 256×256 上达到 rFID 3.62、LPIPS 0.057;KL-VAE 对应 4.65、0.063。这支持自然图像迁移,但不是对所有领域的泛化证明。
亮点与洞察¶
- 把重建看成条件生成,而非唯一答案回归。 丢失的高频细节可由解码器补采样,使潜变量更集中表达结构;这一思路特别适合以视觉真实性为目标的生成系统。
- 蒸馏的是采样行为,不只是去噪函数。 同噪声、同潜变量把学生输出与教师的一次具体生成对应起来,避免直接要求一步恢复原图而丢掉教师学到的细节分布。
- 共享潜空间让解码器比较更可操作。 同一编码器可搭配不同容量的解码器,便于按吞吐预算选择模型,也减少为每种解码配置训练下游模型的负担。
局限与展望¶
- 保真与真实性并不等价。 强压缩时 PSNR、SSIM 的下降可能不可接受;医学、科学成像或精确文字恢复等任务不能仅凭 rFID 选择这种生成式重建。
- 主证据仍是自然图像。 ImageNet、COCO 和固定训练预算下的 DiT 不能证明对视频、开放域文本到图像或其他生成骨干同样有效,需要单独实验。
- 推理节省不等于训练免费。 多步教师训练及蒸馏目标生成仍有成本,REPA 与 LPIPS 也依赖额外网络;当前缓存未提供附录中的完整训练成本。
- 实现细节有未决歧义。 蒸馏 LPIPS 监督对象的文字与公式不一致,部分公式和表格增量排版也有问题。复现应核对原版附录及代码,而不是把本文转述当成精确实现说明。
相关工作与启发¶
- vs KL-VAE / SD-VAE:后者是常用的确定性像素解码路径,本文转向噪声条件下的分布恢复;收益主要体现在 rFID 和感知质量,而非所有失真指标。
- vs DiTo / ε-VAE:同属扩散分词器,SSDD 将容量集中到混合架构并用 REPA 辅助训练,再通过蒸馏移除多步部署成本。无 GAN 的优势应理解为所测训练设置的结论,而非对抗损失在所有情形下都无用。
- vs U-ViT / REPA:本文并非首次提出混合骨干或表示对齐,而是把这些组件用于潜变量条件像素解码,并检验其与单步蒸馏的组合。可迁移的研究方向是联合优化潜空间压缩率、解码容量和下游生成速度,而不只单独追求最低 rFID。
评分¶
- 新颖性: 4/5。核心组件有前作基础,但无 GAN 的高质量条件解码与单步行为蒸馏形成了有用组合。
- 实验充分度: 4/5。覆盖容量、压缩率、分辨率、生成与 COCO 迁移,但主要消融为累加实验,部分细节需附录核实。
- 写作质量: 3/5。感知与失真的区分清楚,蒸馏目标表述和若干数值标注仍有歧义。
- 价值: 4/5。对低成本连续图像生成有直接启发,但应按应用对细节真实性与逐像素保真的要求选择。