StrSR 深读:DiT 单步超分为何出现网格伪影,频谱约束如何缓解它

Abstract:论文摘要解读

DiT 具有较强的图像生成能力,但多步采样带来推理开销。将它压缩为单步超分模型时,作者观察到两个相互关联的问题:预训练的噪声到图像轨迹,与超分需要的低质量图像到高质量图像映射不一致;一次大步更新又容易产生周期性纹理。

StrSR(arXiv v2) 用三组设计处理这些问题。首先,以 DiT 为生成器,以预训练 CLIP-ConvNeXt 特征和可训练判别头构成判别器,通过对抗训练适配输出分布。其次,引入已有的 Frequency Distribution Loss(FDL),约束预测图像与目标图像的特征频谱。最后,让 VAE 与 VLM 分别提供空间表示和语义条件,使生成器同时获得图像结构与内容线索。

作者将结果概括为 SOTA。实际阅读时应把这个表述拆开:FLUX 版本在主表的单步方法中具有较好的 LPIPS、DISTS 和部分无参考质量指标,但不存在所有骨干、所有数据集、所有指标全面领先的结果。

Motivation:为什么少采样几步会改变问题本身

起点变了,一步近似也不够准确

论文先回顾 Rectified Flow 的插值路径:

\[z_t=t z_1+(1-t)z_0,\]

其中 $z_1$ 是噪声,$z_0$ 是高质量图像的 latent。预训练模型学习在这种中间状态上预测速度场。超分推理时,输入却变成了退化图像的编码 $z_{\mathrm{LR}}$。

作者指出两种差距:低质量 latent 不一定落在预训练过程相应时间的分布上;即使起点匹配,一次 Euler 更新也未必能准确到达目标分布。把 LR 直接视为某个中间时刻,并不能自动解决这两件事。

单步输出可以写成:

\[\hat z_0=z_{\mathrm{LR}}-t_1G_\theta(z_{\mathrm{LR}},t_1,c), \qquad \hat x=\mathcal D_{\mathrm{VAE}}(\hat z_0).\]

这里 $G_\theta$ 预测的是速度,而不是直接输出 RGB。它必须通过任务适配,把 LR 到 HR 的映射压进一次更新。

一个需要补充的数学边界是:训练时为样本构造直线插值,不保证学到的边缘速度场在推理时处处具有直线轨迹。 因此,不能由 Rectified Flow 的名称推出“单步积分天然精确”。这是对论文预备知识段落的理解限定。

DiT 的重复纹理有可测量的空间周期

论文将周期性伪影与 patch 化表示联系起来:像素空间的伪影周期与 DiT patch 大小、VAE 缩放共同相关。作者进一步用频谱观察这些结构化误差,称其为高频 spectral leakage。

这里应区分观察与因果解释。重复图案在频域产生集中能量,是可以检查的现象;要证明所有网格伪影都由某个唯一机制导致,还需要更强的控制实验。StrSR 的补充材料确实给出 NFE 与网格频率的对照,但没有把解码器、训练数据和采样器等潜在影响全部排除。

直观效果:FDL 改变了哪些细节

论文 FDL 消融:未使用 FDL 的鸟类羽毛恢复结果
未使用 FDL
论文 FDL 消融:使用 FDL 后的鸟类羽毛恢复结果
使用 FDL

图:原论文 FDL 消融图的两幅完整图像,来自 TeX 中 fig:vis-ablation 左侧。观察胸前放大区域,纹理的重复方式、线条清晰度发生变化。这组示例没有同时给出 GT,因而适合说明外观差异,不能单独证明细节更忠实。点击可查看原尺寸。

这组结果也说明,频谱约束并不等于简单低通滤波。作者希望减少的是不自然的周期性误差,同时保留细粒度纹理。判断它是否成功,要同时看伪影、真实纹理和与 GT 的对应关系,不能只比较谁更锐。

方法总览:各个模块分别负责什么

StrSR 原论文训练框架:双编码器、单步 DiT、空间对抗约束与频率分布损失

图:原论文训练框架 fig:overall(作者原文,CC BY 4.0),由官方 TeX 中 figs/pdf/overall.pdf 渲染。下方是生成路径,上方和右侧是训练约束。锁表示冻结的预训练模块;判别器仍有可训练头。图中没有展开单步 latent 更新,需结合上一节公式理解。

模块输入与输出解决的问题
VAE图像 → 空间 latent;最终 latent → RGB保留用于复原的空间结构,并连接像素空间与 DiT
VLM + MLPLR 图像及固定指令 → 语义条件序列为纹理类别和物体语义提供线索
DiT + LoRALR latent、时间、语义条件 → 速度预测学习单步 LR → HR 映射
CLIP-ConvNeXt 判别器预测 / HR 图像 → 多层局部及全局 logits让输出具备自然图像的纹理统计
FDL 特征分支预测 / HR 图像 → 特征频谱分布距离抑制异常周期性结构

VLM 条件不是必须先生成一段 caption

论文把 VLM 输出经 MLP 投影后,直接替代原有文本条件。当前 FLUX 训练源码进一步揭示:Qwen3-VL 接收 LR 图像和固定图像描述指令,读取最后一层 hidden states,排除图像 token 位置,再把剩余 token 的表示投影给 DiT。它没有先自回归生成完整描述,再将描述重新编码。

这些虽然是非图像 token 位置的 hidden states,却已经经过多模态上下文处理,可以携带图像信息。MLP 的输入宽度取自 Qwen 配置,输出宽度取自 DiT 的 joint_attention_dim,不能把代码里的 fallback 数字当成实际权重的维度。

“非对称”指生成器与判别器的结构不同

作者报告,用 DiT 同时构造生成器和判别器时会出现快速训练崩溃。因此采用卷积式 CLIP-ConvNeXt 提取多尺度特征,并用多个可训练头判别局部纹理与全局表示。

论文认为卷积的局部归纳偏置更适合检查周期性纹理。源码确认 CLIP 特征骨干被冻结,训练的是判别头。这个设计减少了可训练判别器部分的负担,但 CLIP-ConvNeXt-XXLarge 本身仍不是可以忽略的训练成本。

标题中的 trajectory regularization 也不应读成一个显式的轨迹曲率损失。最终目标主要通过重建、感知和对抗损失适配单步映射;没有要求学生逐点拟合一条多步教师轨迹。

数据全流程:训练与测试分别流过什么

下面用 batch size $B$、目标图像尺寸 $H\times W$ 和语义序列长度 $L$ 表示。通道数取决于具体骨干;论文未统一给出完整张量规格。

阶段数据 / Shape含义及来源
训练 HRRGB,$B\times3\times1024\times1024$论文使用中心裁剪的高质量图像
合成 LRRealESRGAN 退化输出模拟模糊、缩放、噪声、JPEG 等;当前配置再 resize 回目标尺寸供 VAE 使用
VAE 输入$B\times3\times H\times W$,归一化至 $[-1,1]$当前 FLUX 路径使用目标尺寸的低质量图像
空间表示$B\times C_z\times H_z\times W_z$,随后 patchify / pack表示复原的起点;具体 $C_z,H_z,W_z$ 应由实际 VAE 配置与 packing 确认
VLM 输入LR RGB,另经 Qwen processor 处理当前训练使用 low_LQ;与 VAE 的输入分辨率路径不同
语义表示$B\times L\times d_{\mathrm{cond}}$FLUX 代码默认最多保留 512 个非图像 token,MLP 投影后按 batch padding
DiT 输出与 packed latent 对应的速度序列单次前向后积分、unpack、反归一化与解码
最终输出$B\times3\times H\times W$训练时与 HR 比较;测试时不需要 HR

表中的张量记号用于解释数据结构,并非论文报告了所有维度。尤其不能照搬 FLUX.1 的 latent 参数到 FLUX.2。代码中 VLM hidden size 与条件宽度均动态读取,本文没有加载权重配置来进一步核验它们。

还有一处实现差别:论文把 LR latent 表述为确定性起点,当前训练与推理源码却调用 latent_dist.sample()。这不等于从纯高斯噪声生成图像,但意味着逐次输出的可重复性还受 VAE posterior sampling 和随机种子影响。

Training:用什么约束单步输出

空间约束:内容对应与输出真实性

生成器的论文目标为:

\[\mathcal L_G=\mathcal L_1+\lambda_1\mathcal L_{\mathrm{LPIPS}} +\lambda_2\mathcal L_{\mathrm{Ra}}^G +\lambda_3\mathcal L_{\mathrm{FDL}}.\]

L1 维持预测与 GT 的像素对应;LPIPS 提供特征空间的感知约束;GAN 鼓励自然图像外观。三者共同决定感知与失真的折中,任何一个都不能独立保证细节真实。

RaGAN 的关键是相对比较。设 $C$ 为判别器 logit,则:

\[g(x,y)=\operatorname{sigmoid}\left(C(x)-\mathbb E_y[C(y)]\right).\]

它衡量当前样本相对于另一组样本的真实性。判别器推动真实样本高于生成样本,生成器推动相反方向。论文消融支持 RaGAN 在所测无参考指标上优于普通 non-saturating GAN,但这并不构成对任意数据和骨干都更稳定的保证。

判别器还使用加噪一致性形式的近似 R1:

\[\mathcal L_{\mathrm{R1}}=\mathbb E_{x,\epsilon} \left\|D(x)-D(x+\epsilon)\right\|_2^2.\]

小幅高斯扰动前后保持判别输出相近,以限制过敏感的判别边界。它不是直接计算标准 R1 的输入梯度范数。论文设置扰动尺度为 0.005,R1 权重为 10。

频谱约束:比较特征的振幅和相位分布

FDL 先用预训练特征提取器 $\Phi$ 处理预测与 GT,再对特征做 DFT。令 $\mathcal A$、$\mathcal P$ 分别为振幅和相位:

\[\begin{aligned} \mathcal L_{\mathrm{FDL}}={}& \operatorname{SW}\left(\mathcal A_{\Phi(x_{\mathrm{HR}})}, \mathcal A_{\Phi(\hat x)}\right)\\ &+\lambda\operatorname{SW}\left(\mathcal P_{\Phi(x_{\mathrm{HR}})}, \mathcal P_{\Phi(\hat x)}\right). \end{aligned}\]

SW 是 Sliced Wasserstein 距离,通过投影后的分布比较衡量差异。直观上,振幅反映不同频率成分的强弱,相位与结构的位置关系相关。FDL 约束的是这些特征频率成分的分布,并非要求每个 RGB 像素的 FFT 系数严格逐点相等。

FDL 不是 StrSR 首次提出的损失。 论文明确引用 Ni 等人在 CVPR 2024 的 Misalignment-robust frequency distribution loss for image transformation。StrSR 的贡献应表述为将其用于 DiT 单步超分的周期性伪影,并与对抗适配、训练阶段安排结合。当前代码通过 FDL_pytorch.FDL_loss() 调用外部实现;特征提取器、投影数量和内部相位权重等默认值需要继续锁定依赖源码,本文不补造这些参数。

为什么 FDL 在第二阶段才加入

依据论文重绘的 StrSR 两阶段训练与推理边界

图:依据正文训练设置和补充材料两阶段消融重绘。训练先进行 40k 步任务适配,再用 20k 步加入 FDL;下方列出测试时保留的模块。

配置论文报告
第一阶段40,000 steps;L1 = 1、LPIPS = 3、GAN = 0.1、FDL = 0
第二阶段再训练 20,000 steps;FDL 权重改为 0.002
更新方式生成器 / 判别器 1:1 交替更新
可训练生成部分DiT LoRA,rank = 256;语义投影层
LoRA alpha补充材料给出 256
优化器AdamW;生成器学习率 $5\times10^{-6}$,判别器 $10^{-6}$
资源4 张 NVIDIA A800,bf16;正文 batch size = 4

补充材料比较了训练早期就加入 FDL 的损失曲线。作者报告它会干扰 GAN 和感知损失的优化,引发不稳定。因此先学习 LR 到 HR 的适配,再对频谱细化。这提供了阶段顺序的实验依据,但没有证明 40k / 20k 是最优分配,也没有充分扫描 FDL 权重与启用时机。

Inference:单步之外仍有哪些计算

按当前 FLUX 推理源码,处理顺序为:

  1. 将输入按放大倍率做 Bicubic 上采样,作为目标尺寸的 VAE 输入;原始 LR 提供 Qwen 条件。
  2. Qwen3-VL 与投影层生成条件表示,VAE 编码图像并完成 latent 变换。
  3. DiT 前向一次,按指定时间系数更新 latent。
  4. 解码回 RGB;大图可以分块运行,重叠区域加权融合,再恢复目标尺寸。

公开 FLUX 第二阶段配置设定 model_t = 800、coeff_t = 800,代码分别归一化到 0.8,用于模型时间输入与积分系数。论文正文未明确给出这两个值,因此它们属于代码证据。

NFE = 1 说的是每次单步生成中的 DiT 求值次数。VLM、VAE 编解码仍需计算;若整图切成多块,DiT 会对每块求值。FDL 和判别器不进入推理。

论文速度图报告,RTX A6000 上 StrSR-F 为 1.052 s、StrSR-Z 为 1.591 s,HYPIR 为 1.054 s,TSD-SR 为 0.894 s。作者将其描述为 1024×1024 图像的 ×4 超分计时,但正文没有充分拆明 VLM、预处理与分块是否计入,输入 / 输出尺寸口径也应在复现时确认。这些数字不能直接作为某张任意大图的端到端承诺。官方 README 的推理要求为显存至少 40 GB,“单步”也不意味着适合端侧。

Evaluation:三类数据和三类证据

论文训练使用完整 LSDIR 与 Aesthetic-4K 的前 60,000 张图像,裁剪到 1024×1024,并用 RealESRGAN 管线合成 LR。测试均为 ×4:DIV2K-val 使用合成退化;RealSR 使用真实配对数据;RealLQ250 为真实低质量数据,其主表只列无参考指标。

所有指标通过 pyiqa 计算,但它们回答的问题不同。

指标能支持的判断不能直接推出的结论
PSNR / SSIM与 GT 的像素 / 结构相近程度高分必然有自然、丰富的细节
LPIPS / DISTS与 GT 的感知特征 / 纹理结构距离所有局部语义和细节均正确
NIQE、MANIQA、MUSIQ、QAlign、QualiCLIP图像质量模型偏好的外观生成内容忠于输入或历史真实场景

下面数字均为作者报告,本文没有重新运行测试。完整版表格、颜色空间、裁边规则及测试预处理应以论文和对应评测实现为准,不能仅由 pyiqa 名称推定完全相同的协议。

实验与证据:主张具体成立在哪里

FLUX 版本的感知指标较强,像素精度存在折中

数据集 / 方法PSNR ↑LPIPS ↓DISTS ↓MANIQA ↑
DIV2K-val / PiSA-SR23.360.34420.17890.5706
DIV2K-val / HYPIR21.780.35510.14570.5673
DIV2K-val / StrSR-F21.700.29920.12880.5864
RealSR / PiSA-SR25.600.27440.17450.6277
RealSR / StrSR-Z22.150.32150.19580.5941
RealSR / StrSR-F23.770.25990.16650.6333

来源:正文 DIV2K-val 与 RealSR 主表,以上为选取的比较行。粗体仅比较本表同数据集行。

StrSR-F 相比 PiSA-SR,在 RealSR 上的 LPIPS 从 0.2744 降到 0.2599,同时 PSNR 从 25.60 降到 23.77。这是感知质量与失真的不同取舍。Z-Image 版本在这个数据集的 LPIPS、DISTS 又都落后于 PiSA-SR,所以“两个版本均优于所有单步方法”不是主表支持的精确表述。

补充材料还列出 SwinIR:RealSR 的 LPIPS = 0.2593、DISTS = 0.1609,均略好于 StrSR-F。这进一步限定了领先范围:主表中的单步扩散方法集合,不等于全部超分方法。

RealLQ250 上,StrSR-F 的 NIQE = 3.4693、MANIQA = 0.6138、QAlign = 4.2851,在列出的单步方法中最好;MUSIQ = 69.2050 则低于 TSD-SR 的 71.0490。无参考结果说明外观竞争力,不能证明没有幻觉。

同骨干 HYPIR 对照:方法收益与基础模型收益要拆开

补充材料把 HYPIR 迁移到 FLUX,并声明使用相同训练数据、训练步数与 LoRA rank / alpha。这个对照比直接跨骨干排名更有解释力。

DIV2K-valLPIPS ↓DISTS ↓NIQE ↓MANIQA ↑
HYPIR-FLUX0.29660.13183.52870.5533
StrSR-FLUX0.29920.12883.03790.5864

StrSR 的 DISTS 和几项无参考指标更好,LPIPS 则略差。可支持的结论是:训练方案在相同基础模型上改善了部分质量维度。它还不足以证明每个模块都独立有效,因为这个对照没有逐一隔离所有改动。

GAN 和 VLM 消融支持外观收益,缺少同等强度的忠实性证据

正文消融 / DIV2K-valMANIQA ↑MUSIQ ↑QAlign ↑
无 GAN0.472054.0864.1629
普通 GAN,替代 RaGAN0.493061.8204.4570
无条件 embedding0.504358.8684.1291
普通文本编码,替代 VLM0.530062.0934.3435
完整设置0.575465.1064.4779

补充材料将正文这组消融说明为 Z-Image 设置,并另列 FLUX 消融。这些消融数值与最终主表并不完全相同,不能拼接成一条未经说明的性能递增链。

从数据看,GAN、相对损失和 VLM 都对质量评分有贡献。不过,这张表没有同步报告 PSNR、LPIPS、文字识别或其他语义正确性指标。因此它对“生成更像自然图像”的支撑,强于对“恢复了输入中正确细节”的支撑。

网格频率分析比“看起来有伪影”更进一步

补充材料定义 GFLR:对预测与 HR 的残差做傅里叶变换,比较网格频率附近和其余背景的平均功率,再取对数。它专门测量误差是否集中在 patch-grid 相关频率。

NFE10 × GFLR,网格周期 T = 16 ↓10 × GFLR,对照周期 T = 11 ↓
19.28 ± 0.265.90 ± 0.36
28.59 ± 0.285.82 ± 0.36
48.70 ± 0.285.78 ± 0.36
88.73 ± 0.275.78 ± 0.36

来源:补充材料 GFLR 表;保留原表的 10 倍缩放。该段未充分说明 ± 的统计含义,不能自行称为置信区间。

结果支持:单步误差在网格频率处更集中,多步有所缓解。但从 2 到 8 步并不单调下降;这不是“步数越多伪影越少”的完整曲线。该表比较的是 NFE,也不是 FDL 的独立定量消融。FDL 的证据主要来自频谱、末层特征和视觉对照;若补上有无 FDL 的 GFLR、配对保真指标与多种子的比较,因果链会更完整。

补充材料对 SeedVR2 的比较来自其 Hugging Face Space,主要展示选定图像的外观差异,缺少同配置定量对照。它可作为案例观察,不能推出 StrSR 普遍优于 SeedVR2。

总结

StrSR 提供了一条具体的研究思路:当单步生成出现稳定的结构化错误时,可以先将错误转成可测量的频率现象,再安排与任务适配相协调的训练约束。双编码器、卷积判别器和后期 FDL 共同构成了这套方案。

它的适用方向是重视自然观感的真实照片超分,尤其是容易出现重复高频纹理的场景。对于文字、精确图案和必须忠于观测的复原需求,还需要额外证据。作者也明确承认像素保真、文字区域和大模型部署成本的局限。

这项工作的启发在于问题诊断与对照设计:看具体失败模式,测对应频率,做同骨干比较,并分别检查外观与保真。FDL 是已有方法,预训练底座贡献也很大;将这些边界说清楚,才能准确理解 StrSR 新增了什么,以及下一步还需要验证什么。