v0.1.0

EricLBuehler/diffusion-rsv0.1.0Jan 7, 2025by EricLBuehler

AI Summary

Initial release of diffusion-rs, a Rust library for diffusion models with Python bindings. The library supports loading DDUF files, optimized kernels (sdpa, layernorm), Metal memory optimization, bnb 8bit quantization, and device offloading. Both Rust crates and Python wheels are available.

Key Highlights

  • Initial release with both Rust crates (crates.io) and Python wheels (PyPI) available
  • MSRV is Rust 1.79.0
  • Support for loading DDUF files with much faster loading in later updates
  • Optimized kernels including sdpa and layernorm with Metal autorelease for memory efficiency
  • CLI tool (diffusers_cli) and Python API with type hints

New Features

  • DDUF file loading support
  • Optimized kernels (sdpa, layernorm) for better performance
  • Flux SDPA execution in f32
  • CLI tool (diffusers_cli) for command-line usage
  • Metal autorelease for optimized memory usage
  • Python API with type hint files
  • Batching support for prompts
  • bnb 8bit quantization support
  • Device offloading support
  • Logging integration
  • Faster DDUF file loading

Full Release Notes

🎉 Initial release of diffusion-rs!

Check out the installation guide and examples for getting started! 
- [Python pacakges](https://pypi.org/search/?q=diffusion-rs) are available as wheels on PyPi for easy download.
- [Rust crates](https://crates.io/crates/diffusion_rs_core) are also available on crates.io!

## MSRV
The [MSRV](https://github.com/rust-lang/api-guidelines/discussions/231) is 1.79.0.

## What's Changed
* Support loading from dduf files by @EricLBuehler in https://github.com/EricLBuehler/diffusion-rs/pull/1
* Use more optimized kernels (sdpa, layernorm) by @EricLBuehler in https://github.com/EricLBuehler/diffusion-rs/pull/2
* Run flux sdpa in f32 by @EricLBuehler in https://github.com/EricLBuehler/diffusion-rs/pull/3
* Nicer examples and api, integrate logging by @EricLBuehler in https://github.com/EricLBuehler/diffusion-rs/pull/4
* Add some CI by @EricLBuehler in https://github.com/EricLBuehler/diffusion-rs/pull/6
* Add a cli: diffusers_cli by @EricLBuehler in https://github.com/EricLBuehler/diffusion-rs/pull/5
* Refine cli by @EricLBuehler in https://github.com/EricLBuehler/diffusion-rs/pull/7
* Use metal autorelease to optimize memory usage by @EricLBuehler in https://github.com/EricLBuehler/diffusion-rs/pull/8
* Better docs and readme by @EricLBuehler in https://github.com/EricLBuehler/diffusion-rs/pull/9
* Add python api, restructure by @EricLBuehler in https://github.com/EricLBuehler/diffusion-rs/pull/10
* Add an installation guide by @EricLBuehler in https://github.com/EricLBuehler/diffusion-rs/pull/11
* Integrate nn core to diffuse_rs_common by @EricLBuehler in https://github.com/EricLBuehler/diffusion-rs/pull/12
* Add python api type hint file by @EricLBuehler in https://github.com/EricLBuehler/diffusion-rs/pull/14
* flux: fix padding of prompts to support batching by @EricLBuehler in https://github.com/EricLBuehler/diffusion-rs/pull/15
* pipeline: respect silent option by @EricLBuehler in https://github.com/EricLBuehler/diffusion-rs/pull/16
* Support bnb 8bit by @EricLBuehler in https://github.com/EricLBuehler/diffusion-rs/pull/17
* Refactor scheduler & sampling by @EricLBuehler in https://github.com/EricLBuehler/diffusion-rs/pull/18
* Remove deprecated by @EricLBuehler in https://github.com/EricLBuehler/diffusion-rs/pull/19
* Support device offloading by @EricLBuehler in https://github.com/EricLBuehler/diffusion-rs/pull/21
* Update docs by @EricLBuehler in https://github.com/EricLBuehler/diffusion-rs/pull/20
* Much faster loading of DDUF files by @EricLBuehler in https://github.com/EricLBuehler/diffusion-rs/pull/23
* Final changes before release by @EricLBuehler in https://github.com/EricLBuehler/diffusion-rs/pull/24
* Prep docs for python release by @EricLBuehler in https://github.com/EricLBuehler/diffusion-rs/pull/25
* Rename diffuse-rs to diffusion-rs by @EricLBuehler in https://github.com/EricLBuehler/diffusion-rs/pull/26

## New Contributors
* @EricLBuehler made their first contribution in https://github.com/EricLBuehler/diffusion-rs/pull/1

**Full Changelog**: https://github.com/EricLBuehler/diffusion-rs/commits/v0.1.0