DC-Solver: Improving Predictor-Corrector Diffusion Sampler via Dynamic Compensation
<|reference_start|>DC-Solver: Improving Predictor-Corrector Diffusion Sampler via Dynamic Compensation: Diffusion probabilistic models (DPMs) have shown remarkable performance in visual synthesis but are computationally expensive due to the need for multiple evaluations during the sampling. Recent predictor-corrector diffusion samplers have significantly reduced the required number of function evaluations (NFE), but inherently suffer from a misalignment issue caused by the extra corrector step, especially with a large classifier-free guidance scale (CFG). In this paper, we introduce a new fast DPM sampler called DC-Solver, which leverages dynamic compensation (DC) to mitigate the misalignment of the predictor-corrector samplers. The dynamic compensation is controlled by compensation ratios that are adaptive to the sampling steps and can be optimized on only 10 datapoints by pushing the sampling trajectory toward a ground truth trajectory. We further propose a cascade polynomial regression (CPR) which can instantly predict the compensation ratios on unseen sampling configurations. Additionally, we find that the proposed dynamic compensation can also serve as a plug-and-play module to boost the performance of predictor-only samplers. Extensive experiments on both unconditional sampling and conditional sampling demonstrate that our DC-Solver can consistently improve the sampling quality over previous methods on different DPMs with a wide range of resolutions up to 1024$\times$1024. Notably, we achieve 10.38 FID (NFE=5) on unconditional FFHQ and 0.394 MSE (NFE=5, CFG=7.5) on Stable-Diffusion-2.1. Code is available at https://github.com/wl-zhao/DC-Solver<|reference_end|>
@article{zhao2024dc-solver:,
    title={DC-Solver: Improving Predictor-Corrector Diffusion Sampler via Dynamic
  Compensation},
    author={Wenliang Zhao, Haolin Wang, Jie Zhou, Jiwen Lu},
    journal={arXiv preprint arXiv:2409.03755},
    year={2024},
    archivePrefix={arXiv},
    eprint={2409.03755},
    primaryClass={cs.CV}
}