Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ Removed sampling.common.Predictor and functions

Separated Karras/Beta/Exponential/SigmoidCDf into new SubSchedule type

Lots of other small improvements
Removed predictor functions

Schedules precompute alphas

### Additions
Add sampling.functional
Expand All @@ -21,8 +23,12 @@ Add SkrampleWrapperCore, RKUltraWrapperScheduler

Add Sinner modifier

### Fixes
Small bugs with plot_skrample.py
### Improvements
Brownian rework

plot_skrample rework

too many to list

## 0.5.3
### Fixes
Expand Down
80 changes: 53 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,52 +1,83 @@
# Skrample 0.5.3
# Skrample 0.6.0
Composable sampling functions for diffusion models

## Status
Mostly complete for common models, superseding all diffusers features in [quickdif](https://github.com/Beinsezii/quickdif.git)
Production-tested on all popular diffusion models. The library has significantly matured since 0.5

### Quickstart
Fastest way to jump in is [examples](./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()`

### Feature Flags
- `beta-schedule` -> `scipy` : For the `Beta()` schedule modifier
- `brownian-noise` -> `torchsde` : For the `Brownian()` noise generator
- `cdf-schedule` -> `scipy` : For the `SigmoidCDF()` schedule
- `cdf-schedule` -> `scipy` : For the `Probit()` schedule
- `diffusers-wrapper` -> `torch` : For the `diffusers` integration module
- `pytorch` -> `torch` : For the `pytorch` module
- `pytorch.noise` : Custom generators
- `all` : All of the above
- `dev` : For running `tests/`

### Samplers
### Structured Samplers
These samplers are written inside-out to be compatible with Diffusers and similar frameworks

- Euler
- Stochastic
- DPM
- 1st order, 2nd order, 3rd order
- SDE
- Order 1-3
- Stochastic
- Adams/IPNDM
- Order 1-9
- Stochastic
- UniP & UniPC
- N order, limited to 9 for stability
- Custom solver via other SkrampleSampler types
- Order 1-9
- Stochastic
- Custom predictor via other SkrampleSampler types
- SPC
- Basic fully customizable midpoint corrector

### Functional Samplers
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

### Schedules
- Linear
- Flow-matching default
- Scaled
- `uniform` flag, AKA `"trailing"` in diffusers
- SigmaCDF
- Variance-preserving default
- ZSNR

### Schedule modifiers
### Subschedules
Replaces sigmas on an existing schedule

- Karras
- Exponential
- FlowShift
- Beta
- Probit

### Schedule Modifiers
Modifies timestep spacing of a schedule

- FlowShift
- Hyper
- Sinner

### Predictors
- Epsilon
- Velocity / vpred
- Flow
### Models
- Data / Sample / X-Pred
- Noise / Epsilon / Ε-Pred
- Velocity / V-Pred
- Flow / U-pred

### Noise generators
- Random
Expand All @@ -56,21 +87,16 @@ Fastest way to jump in is [examples](./examples/). The classes and functions the

## Integrations
### Diffusers
- [X] Compatibility for pipelines
- [X] SD1
- [X] SDXL
- [X] SD3
- [X] Flux
- [X] Compatibile with DiffusionPipeline
- [X] Import from config
- [X] Sampler
- [X] Schedule
- [X] Predictor
- [X] Manage state
- [X] Steps
- [X] Higher order
- [X] Generators
- [X] Config as presented
- [X] Structured sampler wrapper
- [X] Functional sampler wrappers
- [X] RKUltra
- [X] DynasauRK

## Implementations
### quickdif
My diffusers cli [quickdif](https://github.com/Beinsezii/quickdif) has full support for all major Skrample features, allowing extremely fine-grained customization.
My diffusers cli [quickdif](https://github.com/Beinsezii/quickdif) has full support for all major Diffusers-compatible Skrample features, allowing extremely fine-grained customization.
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "skrample"
version = "0.6.0-dev"
version = "0.6.0"
description = "Composable sampling functions for diffusion models"
readme = "README.md"
authors = [{ name = "Beinsezii", email = "beinsezii@gmail.com" }]
Expand Down
Loading