Skip to main content

an out-of-the-box acceleration library for diffusion models

Project description


OneDiff

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

For example:

OneDiff is the abbreviation of "one line of code to accelerate diffusion models".

News

The latest news:

Community and Support

Here is the introduction of OneDiff Community.

OS and GPU Compatibility


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;

Note that we haven't got the way to run SVD with TensorRT on Feb 29 2024.

Features

Functionality 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 should be careful to use;
AIGC Type Models HF diffusers ComfyUI SD web UI
Community Enterprise Community Enterprise Community Enterprise
Image SD 1.5 stable stable stable stable stable stable
SD 2.1 stable stable stable stable stable stable
SDXL stable stable stable stable stable stable
LoRA stable stable stable
ControlNet stable stable
SDXL Turbo stable stable
LCM stable stable
SDXL DeepCache alpha alpha alpha alpha
InstantID beta beta
Video SVD(stable Video Diffusion) stable stable stable stable
SVD DeepCache alpha alpha alpha alpha

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

  • Subscribe to the OneDiff Enterprise Edition directly through our website. Upon purchase, you'll gain immediate access to comprehensive support: https://siliconflow.com/onediff.html
  • For a more personalized approach, please email us at contact@siliconflow.com. Include details about your use case, deployment size, and any specific needs you might have.

The OneDiff Enterprise Edition is available for a monthly subscription and is designed to be cost-effective, even for systems utilizing a single GPU.

  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

OneDiff Installation

Install a compiler backend

When considering the choice between OneFlow and Nexfort, either one is optional, and only one is needed.

  • For DiT structural models or H100 devices, it is recommended to use Nexfort.

  • For all other cases, it is recommended to use OneFlow. Note that optimizations within OneFlow will gradually transition to Nexfort in the future.

(Optional) Install Nexfort

The detailed introduction of Nexfort is here.

python3 -m  pip install -U torch==2.3.0 torchvision==0.18.0 torchaudio==2.3.0 torchao==0.1
python3 -m  pip install -U nexfort
(Optional) 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
huggingface-cli login

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

onediff-1.2.0.dev202406150129.tar.gz (81.0 kB view details)

Uploaded Source

Built Distribution

onediff-1.2.0.dev202406150129-py3-none-any.whl (92.5 kB view details)

Uploaded Python 3

File details

Details for the file onediff-1.2.0.dev202406150129.tar.gz.

File metadata

File hashes

Hashes for onediff-1.2.0.dev202406150129.tar.gz
Algorithm Hash digest
SHA256 deac62f5cfa6dc58fe8099e78c99dbf73747ce56d69591790e4f5477c5b624bd
MD5 2919017bf76c1c59764dacc394e061f2
BLAKE2b-256 f273e1fe382ed5964ef49353ae91e9fc36f5939c30f1053b94e9fd5a030eeb9f

See more details on using hashes here.

File details

Details for the file onediff-1.2.0.dev202406150129-py3-none-any.whl.

File metadata

File hashes

Hashes for onediff-1.2.0.dev202406150129-py3-none-any.whl
Algorithm Hash digest
SHA256 b606d99724d0a5b099a166445b400d33c2d0f5fa8922460222e6b0ed4d1eab46
MD5 4e432f7c41efd56a23c4945f32f1a486
BLAKE2b-256 fe54b01cf3e74da61a30a92ab5bf6aceb8e2c73270a632adce51c6ba83c491bb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page