res_multistep サンプラーの特徴
論文は Improved Order Analysis and Design of Exponential Integrator for Diffusion Models Sampling。RES = Refined Exponential Solver。
Comparative Analysis of Euler Ancestral and Res Multistep Samplers in NVIDIA Cosmos for Text-to-Video Generation では res_multistep は euler_ancestral に比べて、動画生成 AI では構造の安定性で優れていると主張している。
ComfyUI の res_multistep のソースコードは comfy/k_diffusion/sampling.py の res_multistep。
概要
DPM Solver++ のような既存の指数積分サンプラーにはバグがあって精度が低下していた。res_multistep はそのバグを修正したもの。res_multistep なら蒸留モデル等で一桁ステップで生成するときでも安定した生成が可能。
res_multistep_cfg_pp は CFG が1を超える時に使う。_ancestral はステップごとにノイズを追加する SDE 版。
論文の背景
Diffusion Probabilistic Models (DPM) のサンプリングは、通常「逆拡散 (reverse diffusion) の過程」を近似する形で行われる。この過程は微分方程式 (ODE または SDE) を解くことで実装される。しかし従来のサンプラーは遅い。そこで、より高次 (高精度) なソルバー、特に “指数積分 (Exponential Integrator, EI)” を用いる手法が登場した。これらは少ないステップ (少ない NFE = Number of Function Evaluations) で高品質サンプリングを目指す。
しかし論文の著者らは、「既存の高次 EI ベースのサンプリング手法 (たとえば DPM-Solver++ やそれ以前の EI サンプラー) には重大な設計上の欠陥 (order degeneration) がある」ことを発見した。
既存 EI サンプラーは “劣化” していた
高次数の数値ソルバ (たとえば 2nd- or 3rd-order) を名乗っている既存の EI サンプラーは、本来その順序を保証するべき「order conditions」を満たしていない。よって名目上の高次でも、実質の誤差削減が伴っていない。
結果として、理論上期待される誤差収束 (および高精度) が得られず、アルゴリズムによってはステップスケジューリング (timestep schedule) のような “ささいな設計の差” によって大きく性能が変わってしまう。たとえば、効率の悪いステップスケジュールなら、最適化されたスケジュールと同じ品質を得るために倍のステップ数が必要になることもある。
設計の再検討と「理論に忠実な」EI ソルバ (Refined Exponential Solver: RES) の提案
著者らは DPM の微分方程式 (逆拡散 / probability-flow ODE) を改めて定式化し直し、数値解析で必要な順序条件をすべて満たす EI ソルバー “Refined Exponential Solver (RES)” を設計した。この RES ソルバーによって理論的な誤差境界 (error bound) が改善され、実用でも サンプリング効率と安定性の両方 が向上する。
たとえば、NFE = 9 の設定で、従来の DPM-Solver++ (single-step variant) を RES に置き換えるだけで、数値的な「欠陥 (numerical defects)」が 25.2% 減少、かつ FID が 16.77 → 12.51 へ ≒25.4% 改善する。