Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.


Docker image build CI testing

OneDiff

OneDiff is an out-of-the-box acceleration library for diffusion models, it provides:

For example:

News

OneDiff is the abbreviation of "one line of code to accelerate diffusion models". Here is the latest news:

Community and Support

Here is the introduction of OneDiff Community.


The Full Introduction of OneDiff:

About OneDiff

Architecture

OneDiff interfaces with various front-end sd frameworks upward, and uses a custom virtual machine mixed with PyTorch as the inference engine downward.

State-of-the-art performance

SDXL E2E time

  • Model stabilityai/stable-diffusion-xl-base-1.0;
  • Image size 1024*1024, batch size 1, steps 30;
  • NVIDIA A100 80G SXM4;

SVD E2E time

  • Model stabilityai/stable-video-diffusion-img2vid-xt;
  • Image size 576*1024, batch size 1, steps 25, decoder chunk size 5;
  • NVIDIA A100 80G SXM4;

Features

Main Function Details
Compiling Time About 1 minute (SDXL)
Deployment Methods Plug and Play
Dynamic Image Size Support Support with no overhead
Model Support SD1.5~2.1, SDXL, SDXL Turbo, etc.
Algorithm Support SD standard workflow, LoRA, ControlNet, SVD, InstantID, SDXL Lightning, etc.
SD Framework Support ComfyUI, Diffusers, SD-webui
Save & Load Accelerated Models Yes
Time of LoRA Switching Hundreds of milliseconds
LoRA Occupancy Tens of MB to hundreds of MB.
Device Support NVIDIA GPU 3090 RTX/4090 RTX/A100/A800/A10 etc. (Compatibility with Ascend in progress)

Acceleration for State-of-the-art models

OneDiff supports the acceleration for SOTA models.

  • stable: release for public usage, and has long-term support;
  • beta: release for professional usage, and has long-term support;
  • alpha: early release for expert usage, and is under active development;
AIGC Type Models HF diffusers ComfyUI SD web UI
Community Enterprise Community Enterprise Community Enterprise
Image SD 1.5 stable stable stable stable beta beta
SD 2.1 stable stable stable stable beta beta
SDXL stable stable stable stable beta beta
LoRA stable stable beta
ControlNet stable stable
SDXL Turbo stable stable
LCM stable stable
SDXL DeepCache stable beta stable beta
InstantID stable stable
Video SVD(stable Video Diffusion) stable beta stable beta
SVD DeepCache stable beta stable beta

Note: Enterprise Edition contains all the functionality in Community Edition.

Acceleration for production environment

PyTorch Module compilation

Avoid compilation time for new input shape

Avoid compilation time for online serving

Compile and save the compiled result offline, then load it online for serving

OneDiff Quality Evaluation

We also maintain a repository for benchmarking the quality of generation after acceleration using OneDiff: OneDiffGenMetrics

OneDiff Enterprise Edition

If you need Enterprise-level Support for your system or business, you can

OneDiff Enterprise Edition can be subscripted for one month and one GPU and the cost is low.

  OneDiff Enterprise Edition OneDiff Community Edition
Multiple Resolutions Yes(No time cost for most of the cases) Yes(No time cost for most of the cases)
More Extreme and Dedicated optimization(usually another 20~100% performance gain) for the most used model Yes
Tools for specific(very large scale) server side deployment Yes
Technical Support for deployment High priority support Community
Get the experimental features Yes

Installation

OS and GPU support

  • Linux
    • If you want to use OneDiff on Windows, please use it under WSL.
  • NVIDIA GPUs

OneDiff Installation

1. Install OneFlow

NOTE: We have updated OneFlow frequently for OneDiff, so please install OneFlow by the links below.

  • CUDA 11.8

    For NA/EU users

    python3 -m pip install -U --pre oneflow -f https://github.com/siliconflow/oneflow_releases/releases/expanded_assets/community_cu118
    

    For CN users

    python3 -m pip install -U --pre oneflow -f https://oneflow-pro.oss-cn-beijing.aliyuncs.com/branch/community/cu118
    
Click to get OneFlow packages for other CUDA versions.
  • CUDA 12.1

    For NA/EU users

    python3 -m pip install -U --pre oneflow -f https://github.com/siliconflow/oneflow_releases/releases/expanded_assets/community_cu121
    

    For CN users

    python3 -m pip install -U --pre oneflow -f https://oneflow-pro.oss-cn-beijing.aliyuncs.com/branch/community/cu121
    
  • CUDA 12.2

    For NA/EU users

    python3 -m pip install -U --pre oneflow -f https://github.com/siliconflow/oneflow_releases/releases/expanded_assets/community_cu122
    

    For CN users

    python3 -m pip install -U --pre oneflow -f https://oneflow-pro.oss-cn-beijing.aliyuncs.com/branch/community/cu122
    

2. Install torch and diffusers

Note: You can choose the latest versions you want for diffusers or transformers.

python3 -m pip install "torch" "transformers==4.27.1" "diffusers[torch]==0.19.3"

3. Install OneDiff

  • From PyPI
python3 -m pip install --pre onediff
  • From source
git clone https://github.com/siliconflow/onediff.git
cd onediff && python3 -m pip install -e .

NOTE: If you intend to utilize plugins for ComfyUI/StableDiffusion-WebUI, we highly recommend installing OneDiff from the source rather than PyPI. This is necessary as you'll need to manually copy (or create a soft link) for the relevant code into the extension folder of these UIs/Libs.

4. (Optional)Login huggingface-cli

python3 -m pip install huggingface_hub
 ~/.local/bin/huggingface-cli login

Release

  • run examples to check it works

    cd onediff_diffusers_extensions
    python3 examples/text_to_image.py
    
  • bump version in these files:

    .github/workflows/pub.yml
    src/onediff/__init__.py
    
  • install build package

    python3 -m pip install build
    
  • build wheel

    rm -rf dist
    python3 -m build
    
  • upload to pypi

    twine upload dist/*
    

Metadata

Release files for onediff 1.0.0.dev202404160125

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for onediff 1.0.0.dev202404160125
File Size Uploaded
onediff-1.0.0.dev202404160125.tar.gz 73.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for onediff 1.0.0.dev202404160125
File Interpreter ABI Platform
onediff-1.0.0.dev202404160125-py3-none-any.whl Python 3 none any Details

Total release size: 157.2 kB

Release files / onediff-1.0.0.dev202404160125.tar.gz

Download URL onediff-1.0.0.dev202404160125.tar.gz
Size 73.3 kB
Tags Source
SHA-256 checksum
How to use checksums
8d4c799cab34c8641a56bb84fe24b5990d75750fec32de6ba7a68ecb7c0c105c
BLAKE2b-256 checksum
How to use checksums
b9e466b6c939c4391faae76a80e1fcd55a529f8da9f82da5916fafb90167ed71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.19

Release files / onediff-1.0.0.dev202404160125-py3-none-any.whl

Download URL onediff-1.0.0.dev202404160125-py3-none-any.whl
Size 84.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c16135a4bd7e1b9127aff39c3d50f57187c2efa76b35dc25b8c16ff8b44f141e
BLAKE2b-256 checksum
How to use checksums
b13f3ee51be3609d5202dddbc569cf23c9e4cb6fd5fead3749a744c03c9b9b0d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.19

Release history Release notifications | RSS feed

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

This release

0.11.4

1 release file

0.10.0

1 release file

0.9.0

1 release file

0.8.0

1 release file

0.7.0

1 release file

0.6.0

1 release file

0.5.0

1 release file

0.4.0

1 release file

0.3.0

1 release file

0.2.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page