Composable sampling functions for diffusion models
Production-tested on all popular diffusion models. The library has significantly matured since 0.5
Fastest way to jump in is examples. The classes and functions themselves have docstrings and type hints, so it's recommended to make liberal use of your IDE or python help()
beta-schedule->scipy: For theBeta()schedule modifierbrownian-noise->torchsde: For theBrownian()noise generatorcdf-schedule->scipy: For theProbit()schedulediffusers-wrapper->torch: For thediffusersintegration modulepytorch->torch: For thepytorchmodulepytorch.noise: Custom generators
all: All of the abovedev: For runningtests/
These samplers are written inside-out to be compatible with Diffusers and similar frameworks
- Euler
- Stochastic
- DPM
- Order 1-3
- Stochastic
- Adams/IPNDM
- Order 1-9
- Stochastic
- UniP & UniPC
- Order 1-9
- Stochastic
- Custom predictor via other SkrampleSampler types
- SPC
- Basic fully customizable midpoint corrector
These samplers are written using closures similar to ksampler
- RKUltra
- Arbitrary Runge-Kutta solver
- Order 1-15, customizable through tableaux system
- Stochastic
- DynasauRK
- Procedural Runge-Kutta solver
- Order 2-4
- Stochastic
- RKMoire
- Experimental
- Embedded Runge-Kutta solver
- Order 2-6, customizable through tableaux system
- Linear
- Flow-matching default
- Scaled
- Variance-preserving default
- ZSNR
Replaces sigmas on an existing schedule
- Karras
- Exponential
- Beta
- Probit
Modifies timestep spacing of a schedule
- FlowShift
- Hyper
- Sinner
- Data / Sample / X-Pred
- Noise / Epsilon / Ε-Pred
- Velocity / V-Pred
- Flow / U-pred
- Random
- Brownian
- Offset
- Pyramid
- Compatibile with DiffusionPipeline
- Import from config
- Sampler
- Schedule
- Predictor
- Structured sampler wrapper
- Functional sampler wrappers
- RKUltra
- DynasauRK
My diffusers cli quickdif has full support for all major Diffusers-compatible Skrample features, allowing extremely fine-grained customization.