Fast ODE solver for diffusion probabilistic model sampling
Top 25.2% on sourcepulse
DPM-Solver provides a fast, high-order ODE solver specifically designed for diffusion probabilistic models, enabling high-quality sample generation in as few as 10-20 steps. It supports both discrete-time and continuous-time diffusion models without requiring additional training, making it a versatile tool for researchers and practitioners in generative AI.
How It Works
DPM-Solver implements a family of solvers for the underlying ODEs of diffusion models. It offers both single-step (Runge-Kutta-like) and multi-step (Adams-Bashforth-like) methods with convergence orders up to 3. The improved DPM-Solver++ variant incorporates dynamic thresholding for enhanced sample quality in pixel-space models. The library provides a model_wrapper
to seamlessly integrate various diffusion model types (noise, data, velocity, score prediction) and sampling strategies (unconditional, classifier, classifier-free guidance).
Quick Start & Requirements
diffusers
. For direct use, copy dpm_solver_pytorch.py
or dpm_solver_jax.py
.diffusers
simplifies setup. Direct usage requires defining noise schedules and model wrappers.Highlighted Details
diffusers
, Stable-Diffusion, and DeepFloyd-IF.Maintenance & Community
The project is associated with academic research from Tsinghua University. It has seen significant adoption and integration into major diffusion model libraries.
Licensing & Compatibility
The repository does not explicitly state a license in the provided README. Users should verify licensing for commercial or closed-source use.
Limitations & Caveats
The README suggests that DPM-Solver cannot improve sample quality if the base diffusion model performs poorly with 1000-step DDIM. Dynamic thresholding is noted as only valid for pixel-space diffusion models.
1 year ago
Inactive