VDE: Training-Free Accelerating Rectified Flow Model via Velocity Decomposition and Estimation¶
会议: CVPR 2026
arXiv: 2605.23381
代码: https://github.com/Tan-Junwen/VDE
领域: 扩散模型 / 生成加速
关键词: 整流流模型, 训练无关加速, 速度分解, 缓存失配, 输入自适应估计
一句话总结¶
针对整流流(Rectified Flow)生成模型采样慢的问题,本文提出 VDE:把每步预测的速度沿当前输入分解为平行分量和正交分量,利用这两个分量"标量系数随时间近似线性、正交方向短期几乎不变"的规律,在大部分步骤上用线性外推 + 方向复用直接从当前输入估计速度、跳过模型前向,从而在 FLUX/Qwen-Image/Wan2.1 上取得 2.04–3.22× 加速且画质几乎无损(Qwen-Image 上 LPIPS 比最强基线再降 52.2%)。
研究背景与动机¶
领域现状:整流流模型把生成建模成一个 ODE 速度场积分过程——从噪声 \(x_0\) 出发,每一步用网络 \(u_\theta(x_t,c,t)\) 预测瞬时速度 \(v_t\),沿 \(\frac{dx_t}{dt}=v_t\) 数值积分到数据样本 \(x_1\)。它在图像、视频、3D 生成上都达到了 SOTA,但推理要执行几十步迭代采样,延迟高,难以部署到实时或算力受限场景。
现有痛点:主流的训练无关加速走的是"缓存-复用(cache-and-reuse)"范式——把某些中间特征(注意力输出、Transformer block 残差、整模型残差等)在前几步算好存下来,后续步骤直接复用以跳过冗余计算(如 DeepCache、TeaCache、EasyCache、PAB)。这些方法虽然会用某种变化率指标来决定何时触发复用,但本质上复用的是静态的旧特征。
核心矛盾:采样过程中输入 \(x_t\) 是动态演化的,而被复用的缓存是静态的,两者之间存在不可避免的"缓存-输入失配(cache-input mismatch)"。这种失配会直接传导到输出,造成"输出-输入失配"——即近似出来的输出无法准确响应当前的输入状态,最终表现为纹理软化、高频细节丢失、结构走样,画质下降。
本文目标:在不训练、不改模型的前提下,构造一个轻量估计函数 \(\hat v_t=f_{\text{est}}(x_t,t,I_{\text{hist}})\),直接从当前输入 \(x_t\) 估出速度而非复用旧特征,从根上消除缓存-输入失配带来的输出-输入失配。
切入角度:作者把速度 \(v_t\) 相对于当前输入 \(x_t\) 做正交分解,发现进入"稳定阶段"后存在两条强而稳定的时间规律——标量系数随时间平滑且局部线性,正交方向短期几乎恒定。这意味着速度可以被解析地"传播"出来,而不必每步都做完整前向。
核心 idea:把加速范式从"缓存-复用"换成"分解-估计(decompose-and-estimate)":每步速度 = 平行分量 + 正交分量,系数用历史值线性外推、正交方向直接复用,再与当前输入重新合成速度——因为合成时显式依赖 \(x_t\),估计天然是输入自适应的。
方法详解¶
整体框架¶
VDE 要解决的是"如何不做完整前向也能算准这一步的速度"。它的核心观察是:网络输出的速度 \(v_t\) 相对当前输入 \(x_t\) 可以被唯一正交分解成"沿着 \(x_t\) 的平行分量"和"垂直于 \(x_t\) 的正交分量",而这两个分量在采样中段表现出极强的可预测性。基于此,VDE 把采样过程分成两段:预热阶段每步都做完整前向(让模型先稳定地勾勒出全局轮廓);进入稳定阶段后切换到"锚点-估计"模式——只在周期性的锚点步做完整前向并分解出真值三元组 \((\alpha_t,\beta_t,u_t)\),锚点之间的非锚点步全部用解析估计、不调用模型。
整条 pipeline 是:输入当前 latent \(x_t\) → 判断处于预热还是稳定阶段 → 若是锚点步则完整前向并做速度分解,缓存系数与正交方向 → 若是非锚点步则用最近两个锚点的系数线性外推、复用最近锚点的正交方向 → 把外推系数、复用方向与当前 \(x_t\) 重新合成 \(\hat v_t\) → 数值积分得到下一步 latent,循环至生成结束。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["当前 latent x_t"] --> B{"预热阶段?"}
B -->|是·每步完整前向| F["完整前向 u_θ"]
B -->|否·稳定阶段| C{"锚点步?"}
C -->|是| D["速度分解<br/>解析出 α_t,β_t,u_t"]
C -->|否| E["分量估计<br/>系数线性外推 + 方向复用"]
F --> D
D --> G["速度合成<br/>v̂_t = α̂_t x_t + β̂_t‖x_t‖û_t"]
E --> G
G --> H["ODE 积分 → 下一步"]
H --> A
关键设计¶
1. 速度正交分解:把"输出对输入的响应"拆成可分析的两路
这是整个方法的数学地基,针对的是"速度作为一个高维向量整体难以预测"的问题。VDE 把任意时刻的速度 \(v_t\) 相对当前 latent \(x_t\) 做唯一正交分解:
其中 \(\alpha_t,\beta_t\in\mathbb{R}\) 是标量系数,\(u_t\in\mathbb{R}^d\) 是满足 \(u_t^\top x_t=0\) 的单位正交方向。给定一次前向得到的 \(v_t\),分解可解析计算:平行系数 \(\alpha_t=\frac{\langle v_t,x_t\rangle}{\lVert x_t\rVert^2}\);正交残差 \(r_t=v_t-\alpha_t x_t\);再归一化得到方向与系数 \(u_t=\frac{r_t}{\lVert r_t\rVert}\)、\(\beta_t=\frac{\lVert r_t\rVert}{\lVert x_t\rVert}\)。这样三元组 \((\alpha_t,\beta_t,u_t)\) 就完整刻画了 \(v_t\) 相对 \(x_t\) 的关系。关键在于:分解显式地把"当前输入 \(x_t\)"放进了参数化里,后面合成速度时只要换上新的 \(x_t\),估计就自动随输入变化——这正是它区别于缓存复用的地方(缓存复用的是与输入解耦的静态特征)。
2. 两条时间规律:系数局部线性 + 正交方向短期稳定
光有分解还不够,三元组在真正跑模型前仍是未知的;本设计回答的是"为什么这些分量可以被预测出来"。作者对每个模型采样 500 条轨迹、逐步做分解,发现经过初始预热后采样进入一个"稳定阶段",呈现两条规律:(1) 系数可预测——\(\alpha_t,\beta_t\) 随时间平滑演化,相邻步之间局部线性极强,因此可由近期历史值外推可靠估计;(2) 正交方向稳定——单位方向 \(u_t\) 在短区间内几乎不变,相邻步的余弦相似度通常 >0.99,可安全复用多步而误差很小。定量上(两步线性外推、跨三个模型)系数误差极低(\(\alpha\) 误差 0.80%/1.53%/1.09%,\(\beta\) 误差 1.41%/1.83%/1.42%),方向复用误差仅 0.41%/0.51%/0.08%,从经验上坐实了这两条规律。作者进一步给出稳定阶段的形式化判据:当步 \(i,i{+}1\) 的线性外推能准确预测步 \(i{+}2\)(相对误差 \(\max(\cdots)<\epsilon\))且 \(u_i^\top u_{i+1}>\delta\) 时进入稳定阶段,经验取 \(\epsilon=0.02\)、\(\delta=0.99\);在 10000 条轨迹上观察到这一转变总是发生在最初几步,故主实验里直接用一个保守的固定预热步数。
3. 锚点-估计运行机制:少数完整前向锚定,多数步骤解析合成
这是把上面两条规律落成加速器的执行逻辑,针对的是"如何在保证不漂移的前提下最大化跳过的前向次数"。稳定阶段被切成若干"锚点 + 非锚点"区段:锚点步做完整前向并分解出真值 \((\alpha_t,\beta_t,u_t)\);对锚点之间的非锚点步 \(t\),系数用最近两个锚点 \(t_1>t_2\) 线性外推
正交方向直接复用最近锚点 \(\hat u_t=u_{t_2}\),最后与当前 \(x_t\) 解析合成 \(\hat v_t=\hat\alpha_t x_t+\hat\beta_t\lVert x_t\rVert\hat u_t\)。这些运算只是变量间的简单算术,相对一次完整前向代价可忽略。锚点间隔 \(n\) 控制速度-质量权衡:间隔越大跳过越多、加速越高,但保真度略降;经验上稳定阶段用两步间隔(\(n{=}2\))平衡最佳。同时"周期性锚点做完整前向"起到防止误差累积的作用——隔几步就用真实模型状态重新锚定一次,避免外推误差无限传播。
损失函数 / 训练策略¶
VDE 是训练无关(training-free)方法:不引入任何训练目标、不微调模型、不需要离线 profiling 数据,纯在推理时插入。唯一的"超参数"是预热步数与锚点间隔 \(n\)。实现上:FLUX.1 [dev] 跑前 7 步与最后 1 步、中间用 2/3/4 步间隔对应 fast/medium/slow;Qwen-Image 跑前 11 步与最后 1 步、中间 2 或 5 步间隔;Wan2.1 跑前 11 步(间隔 2)或前 9 步(间隔 4)加最后 1 步。
实验关键数据¶
主实验¶
图像生成在 FLUX.1 [dev] 与 Qwen-Image 上,从 MS-COCO 2017 验证集随机取 1000 样本、512×512 分辨率,基线为 \(T{=}50\) 步采样。
| 模型 | 方法 | 加速 | NFE | SSIM↑ | PSNR↑ | LPIPS↓ | ImageReward↑ |
|---|---|---|---|---|---|---|---|
| FLUX.1 | \(T{=}50\) 基线 | 1.00× | 50 | - | - | - | 0.976 |
| FLUX.1 | EasyCache-fast | 2.91× | - | 0.7240 | 19.59 | 0.3197 | 0.986 |
| FLUX.1 | VDE-fast | 3.01× | 16 | 0.8267 | 23.19 | 0.1997 | 0.969 |
| FLUX.1 | EasyCache-slow | 2.09× | - | 0.7428 | 19.81 | 0.2793 | 0.980 |
| FLUX.1 | VDE-slow | 2.21× | 22 | 0.8877 | 25.81 | 0.1243 | 0.978 |
| Qwen-Image | \(T{=}50\) 基线 | 1.00× | 100 | - | - | - | 1.295 |
| Qwen-Image | EasyCache-slow | 1.97× | - | 0.8708 | 23.83 | 0.1445 | 1.282 |
| Qwen-Image | VDE-slow | 2.04× | 48 | 0.9362 | 28.58 | 0.0691 | 1.295 |
要点:VDE-fast 在与 EasyCache-fast 几乎同延迟下(3.01× vs 2.91×、NFE 仅 16),SSIM 从 0.7240 提到 0.8267、LPIPS 从 0.3197 降到 0.1997;VDE-slow 相对最强基线 EasyCache-slow,SSIM +19.5%、PSNR +30.3%、LPIPS −55.4%。在 Qwen-Image 上 VDE-slow 的 LPIPS 0.0691 比最强基线降 52.2%,且 ImageReward 1.295 与 \(T{=}50\) 满步基线持平。
视频生成在 Wan2.1-1.3B(81 帧、832×480、VBench 946 prompts):
| 方法 | 加速 | NFE | SSIM↑ | PSNR↑ | LPIPS↓ | VBench(%)↑ |
|---|---|---|---|---|---|---|
| \(T{=}50\) 基线 | 1× | 100 | - | - | - | 81.30 |
| TeaCache | 2.00× | - | 0.8057 | 22.57 | 0.1277 | 81.04 |
| EasyCache | 2.54× | - | 0.8337 | 25.24 | 0.0952 | 80.49 |
| VDE-fast | 2.50× | 40 | 0.8658 | 24.69 | 0.0754 | 80.43 |
| VDE-slow | 2.08× | 48 | 0.8902 | 25.92 | 0.0554 | 80.32 |
VDE 在结构与感知相似度(SSIM/PSNR/LPIPS)上全面优于 PAB/TeaCache/EasyCache,VBench 接近原模型。
消融实验¶
Table 3:在 FLUX.1(前 9 步 + 最后 1 步、间隔 2)下,把真值分量逐一替换为估计值,看各分量对重建质量的影响。
| 配置 | SSIM↑ | PSNR↑ | LPIPS↓ | 说明 |
|---|---|---|---|---|
| True \(u_t\)(仅系数估计) | 0.9893 | 40.79 | 0.0132 | 系数外推几乎无损 |
| True \(\beta_t\) | 0.9262 | 28.76 | 0.0874 | 只保真 \(\beta\) 不够 |
| True \(\alpha_t\) | 0.9263 | 28.78 | 0.0860 | 只保真 \(\alpha\) 不够 |
| True \(u_t,\beta_t\) | 0.9916 | 41.79 | 0.0100 | 最好 |
| True \(u_t,\alpha_t\) | 0.9899 | 41.02 | 0.0124 | 次好 |
| True \(\alpha_t,\beta_t\)(估计方向) | 0.9265 | 28.78 | 0.0874 | 方向复用引入主要误差 |
| Estim. \(\alpha_t,\beta_t,u_t\)(全估计=VDE) | 0.8931 | 26.15 | 0.1198 | 全部在线估计仍保真 |
Table 4:锚点间隔 \(n\) 的速度-质量权衡(FLUX.1、前 7 步 + 最后 1 步)。
| 间隔 | 加速 | SSIM↑ | PSNR↑ | LPIPS↓ |
|---|---|---|---|---|
| \(n{=}1\) | 1.69× | 0.9283 | 28.76 | 0.0801 |
| \(n{=}2\) | 2.21× | 0.8877 | 25.81 | 0.1243 |
| \(n{=}3\) | 2.70× | 0.8499 | 24.02 | 0.1679 |
| \(n{=}4\) | 3.01× | 0.8267 | 23.19 | 0.1997 |
| \(n{=}5\) | 3.22× | 0.8064 | 22.56 | 0.2168 |
关键发现¶
- 系数估计几乎无损、误差主要来自方向复用:只估计系数(True \(u_t\))SSIM 仍达 0.9893;而复用方向(True \(\alpha_t,\beta_t\))SSIM 掉到 0.9265——说明线性外推的标量系数极准,正交方向复用是受控但相对更大的近似来源,这也解释了为什么 Table 3 里同时保真 \(u_t\) 的配置质量最高。
- 间隔 \(n{=}2\) 是甜点:\(n\) 从 1 增到 5,加速从 1.69× 升到 3.22×,但 LPIPS 从 0.0801 涨到 0.2168;\(n{=}2\)(2.21×)兼顾速度与保真,对应主表的 VDE-slow。
- 分辨率/长宽比鲁棒:Qwen-Image 上 256×256 到 1024×1024,加速稳定在约 2×、CLIP 几乎不变,方法对分辨率不敏感、语义对齐得以保持。
亮点与洞察¶
- 范式转换很干净:把"缓存-复用静态特征"换成"分解-估计动态合成",一句话点破了缓存类方法的病根(缓存-输入失配),且解法的合成式 \(\hat v_t=\hat\alpha_t x_t+\hat\beta_t\lVert x_t\rVert\hat u_t\) 显式带 \(x_t\),天然输入自适应——这是它比 TeaCache/EasyCache 更保真的本质原因。
- 正交分解 + 经验规律的组合很聪明:先用一个无损的数学分解把高维速度降成"2 个标量 + 1 个方向",再分别发现标量局部线性、方向短期稳定——降维之后规律才暴露出来、才可外推,这个"先分解再找规律"的思路可迁移到其他需要预测网络中间量的加速场景。
- 几乎零成本落地:训练无关、无需 profiling、只是几步算术,可直接插到 FLUX/Qwen/Wan 这类整流流模型上,工程友好。
- 周期锚点 = 防漂移开关:用少量真实前向定期重锚,把外推误差累积截断,是把"短期规律"安全用到长采样轨迹上的关键工程细节。
局限与展望¶
- 依赖"稳定阶段"假设:方法的有效性建立在采样中段系数线性、方向稳定之上;预热阶段必须老老实实每步前向,主实验为稳妥用了固定预热步数,若某些模型/采样器稳定阶段来得晚或不明显,加速收益会缩水。
- 正交方向复用是主要误差源:消融显示方向复用比系数外推误差大得多,激进增大间隔时画质下降主要由它驱动;如何同样廉价地估计方向演化(而非纯复用)是可改进点。
- 超参需按模型手调:预热步数与锚点间隔在 FLUX/Qwen/Wan 上各不相同,论文用固定配置,自动按轨迹动态切换稳定阶段的判据(Eq.8)虽给出但主实验未启用,端到端自适应仍有空间。
- 加速比中等:2.04–3.22× 相比一些激进蒸馏/少步方法不算极致,但胜在训练无关且画质几乎无损,定位是"高保真"而非"极速"。
相关工作与启发¶
- vs TeaCache / EasyCache(缓存类):它们缓存并复用 Transformer block 残差/整模型残差等静态特征,靠变化率指标决定何时复用;本文指出这类复用与动态输入解耦,必然产生缓存-输入失配。VDE 改为从当前输入解析合成速度,消除失配,同延迟下 LPIPS/SSIM 明显更优(Qwen-Image LPIPS 再降 52.2%)。
- vs PAB / AdaCache / OmniCache:同属训练无关、复用注意力或特征的缓存路线,差异同上——VDE 不复用特征本身,只复用"分解后的正交方向"并对系数做外推,复用粒度更细、更贴合输入。
- vs 训练类加速(蒸馏 / 量化 / 一致性 / 架构压缩):这些需要额外数据和优化、可能损害泛化;VDE 完全训练无关、即插即用,代价是加速比更温和但保真度更高。
- vs 朴素减步(\(T{=}24/18\)):直接减采样步会显著掉点(FLUX \(T{=}18\) SSIM 0.686、LPIPS 0.337);VDE 在相近加速下保真度远高,说明"估计速度"比"少算几步"更聪明地利用了采样轨迹的结构。
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ 把加速从"缓存-复用"重构为"速度分解-估计",并用正交分解 + 两条经验规律支撑,视角新且自洽。
- 实验充分度: ⭐⭐⭐⭐ 覆盖 FLUX/Qwen/Wan 三个图像与视频模型、含分量替换/间隔/分辨率三组消融,但加速比区间偏温和、未与少步蒸馏类方法正面对比。
- 写作质量: ⭐⭐⭐⭐⭐ 动机→规律→方法→验证逻辑清晰,公式与图表对分解和规律的支撑到位。
- 价值: ⭐⭐⭐⭐ 训练无关、即插即用、高保真,对整流流模型部署有直接实用价值。