DeepCache

Paper:DeepCache: Accelerating Diffusion Models for Free

论文发现,在用 Diffusion 去噪的时候,U-Net 内部的上采样块,在去噪的连续两步中,输出的特征图在肉眼上几乎完全一样。

image.png
  • a:不同的 Prompt 对应的不同步的特征图。

    论文里是用上采样的倒数第二个Block的输出特征。作者对每个 Token 取绝对值的平均值 (或者 PCA压缩成一个通道),然后映射到彩色空间。

  • b:热力图,横纵坐标为时间步。作者将特征图展成一维,然后两两计算余弦相似度。

  • c:折线图,不同的模型在不同的数据集上,与当前步相似度大于0.95的临近步骤的比例。

也就是论文的核心发现:U-Net 内部的高层语义特征变化非常缓慢,具有极高的相似度

image.png

因此,论文在全量计算某个step后,会缓存高层的输出特征。然后在接下来的几步,只计算对应的浅层网络(更新低层细节)。

如果生硬地每隔 步雷打不动地更新一次缓存,在某些特征变化剧烈的去噪区间(如去噪进度到 40% 左右时,相似度会陡降)会导致图像质量下跌 。因为扩散模型在不同的去噪阶段,特征变化的剧烈程度是完全不同的。

为了解决这个问题,作者提出了非均匀空间采样 。通过引入中心点 和幂次 两个超参数,让全量推理步的索引在时间轴上呈二次方级变化

首先生成二次方级分布的初始序列:

其中, 为总的采样步数, 为全量推理的次数, 为采样核心时间步, 控制采样的非均匀剧烈程度。linear_space 是指再特定的区间内均匀切出 个数字。

比如:

然后映射回真实的时间步

也就是把 里的每个数先平方(因为 ,再加上中心点 。同时如果是负数,平方前我们保留其方向符号,即进行符号保留的幂运算

最终选出来的真实全量推理时间步集合为:


DeepCache
https://d4wnnn.github.io/2026/06/04/Notion/DeepCache/
作者
D4wn
发布于
2026年6月4日
许可协议