Metadata-Version: 2.4
Name: skrample
Version: 0.5.1
Summary: Composable sampling functions for diffusion models
Author: Beinsezii
Author-email: Beinsezii <beinsezii@gmail.com>
License-Expression: Apache-2.0
Requires-Dist: numpy>=2.0
Requires-Dist: skrample[beta-schedule,brownian-noise,cdf-schedule,diffusers-wrapper,pytorch] ; extra == 'all'
Requires-Dist: scipy>=1.12 ; extra == 'beta-schedule'
Requires-Dist: torchsde>=0.2.6 ; extra == 'brownian-noise'
Requires-Dist: scipy>=1.12 ; extra == 'cdf-schedule'
Requires-Dist: skrample[test] ; extra == 'dev'
Requires-Dist: torch>=2.5 ; extra == 'diffusers-wrapper'
Requires-Dist: torch>=2.5 ; extra == 'pytorch'
Requires-Dist: skrample[all] ; extra == 'scripts'
Requires-Dist: matplotlib>=3.10.1 ; extra == 'scripts'
Requires-Dist: skrample[scripts] ; extra == 'test'
Requires-Dist: accelerate>=1.3 ; extra == 'test'
Requires-Dist: diffusers>=0.32 ; extra == 'test'
Requires-Dist: protobuf>=5.29 ; extra == 'test'
Requires-Dist: pyright>=1.1.400 ; extra == 'test'
Requires-Dist: pytest-xdist>=3.6.1 ; extra == 'test'
Requires-Dist: pytest>=8.3 ; extra == 'test'
Requires-Dist: ruff>=0.12.1 ; extra == 'test'
Requires-Dist: sentencepiece>=0.2 ; extra == 'test'
Requires-Dist: transformers>=4.48 ; extra == 'test'
Requires-Python: >=3.12
Provides-Extra: all
Provides-Extra: beta-schedule
Provides-Extra: brownian-noise
Provides-Extra: cdf-schedule
Provides-Extra: dev
Provides-Extra: diffusers-wrapper
Provides-Extra: pytorch
Provides-Extra: scripts
Provides-Extra: test
Description-Content-Type: text/markdown

# Skrample 0.5.1
Composable sampling functions for diffusion models

## Status
Mostly complete for common models, superseding all diffusers features in [quickdif](https://github.com/Beinsezii/quickdif.git)

### 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
 - `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
- Euler
- DPM
  - 1st order, 2nd order, 3rd order
  - SDE
- Adams/IPNDM
- UniP & UniPC
  - N order, limited to 9 for stability
  - Custom solver via other SkrampleSampler types
- SPC
  - Basic fully customizable midpoint corrector

### Schedules
- Linear
- Scaled
  - `uniform` flag, AKA `"trailing"` in diffusers
- SigmaCDF
- ZSNR

### Schedule modifiers
- Karras
- Exponential
- FlowShift
- Beta
- Hyper

### Predictors
- Epsilon
- Velocity / vpred
- Flow

### Noise generators
- Random
- Brownian
- Offset
- Pyramid

## Integrations
### Diffusers
- [X] Compatibility for pipelines
  - [X] SD1
  - [X] SDXL
  - [X] SD3
  - [X] Flux
- [X] Import from config
  - [X] Sampler
  - [X] Schedule
  - [X] Predictor
- [X] Manage state
  - [X] Steps
  - [X] Higher order
  - [X] Generators
  - [X] Config as presented

## Implementations
### quickdif
My diffusers cli [quickdif](https://github.com/Beinsezii/quickdif) has full support for all major Skrample features, allowing extremely fine-grained customization.
