DPM-Solver: A Fast ODE Solver for Diffusion Probabilistic Model Sampling in Around 10 Steps
Diffusion probabilistic models (DPMs) are emerging powerful generative
models. Despite their high-quality generation performance, DPMs still suffer
from their slow sampling as they generally need hundreds or thousands of
sequential function evaluations (steps) of large neural networks to draw a
sample. Sampling from DPMs can be viewed alternatively as solving the
corresponding diffusion ordinary differential equations (ODEs). In this work,
we propose an exact formulation of the solution of diffusion ODEs. The
formulation analytically computes the linear part of the solution, rather than
leaving all terms to black-box ODE solvers as adopted in previous works. By
applying change-of-variable, the solution can be equivalently simplified to an
exponentially weighted integral of the neural network. Based on our
formulation, we propose DPM-Solver, a fast dedicated high-order solver for
diffusion ODEs with the convergence order guarantee. DPM-Solver is suitable for
both discrete-time and continuous-time DPMs without any further training.
Experimental results show that DPM-Solver can generate high-quality samples in
only 10 to 20 function evaluations on various datasets. We achieve 4.70 FID in
10 function evaluations and 2.87 FID in 20 function evaluations on the CIFAR10
dataset, and a $4\sim 16\times$ speedup compared with previous state-of-the-art
training-free samplers on various datasets.