Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

onediff

Package Overview
Dependencies
Maintainers
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

onediff

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

  • 1.2.0
  • PyPI
  • Socket score

Maintainers
3


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

  • Out-of-the-box acceleration for popular UIs/libs(such as HF diffusers and ComfyUI)
  • PyTorch code compilation tools and strong optimized GPU Kernels for diffusion models

News


Documentation

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

Use with HF diffusers and ComfyUI

Performance comparison

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 a way to run SVD with TensorRT on Feb 29 2024.

Quality Evaluation

We also maintain a repository for benchmarking the quality of generation after acceleration: odeval

Community and Support

Installation

0. OS and GPU Compatibility
1. 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"
2. 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.

Nexfort

Install Nexfort is Optional. 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
OneFlow

Install OneFlow is Optional.

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
    
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 .

Or install for development:

# install for dev
cd onediff && python3 -m pip install -e '.[dev]'

# code formatting and linting
pip3 install pre-commit
pre-commit install
pre-commit run --all-files

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.

More about onediff

Architecture

Features

FunctionalityDetails
Compiling TimeAbout 1 minute (SDXL)
Deployment MethodsPlug and Play
Dynamic Image Size SupportSupport with no overhead
Model SupportSD1.5~2.1, SDXL, SDXL Turbo, etc.
Algorithm SupportSD standard workflow, LoRA, ControlNet, SVD, InstantID, SDXL Lightning, etc.
SD Framework SupportComfyUI, Diffusers, SD-webui
Save & Load Accelerated ModelsYes
Time of LoRA SwitchingHundreds of milliseconds
LoRA OccupancyTens of MB to hundreds of MB.
Device SupportNVIDIA 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 TypeModelsHF diffusersComfyUISD web UI
CommunityEnterpriseCommunityEnterpriseCommunityEnterprise
ImageSD 1.5stablestablestablestablestablestable
SD 2.1stablestablestablestablestablestable
SDXLstablestablestablestablestablestable
LoRAstablestablestable
ControlNetstablestable
SDXL Turbostablestable
LCMstablestable
SDXL DeepCachealphaalphaalphaalpha
InstantIDbetabeta
VideoSVD(stable Video Diffusion)stablestablestablestable
SVD DeepCachealphaalphaalphaalpha

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 Enterprise Edition

If you need Enterprise-level Support for your system or business, you can email us at contact@siliconflow.com, or contact us through the website: https://siliconflow.cn/pricing

 onediff Enterprise Editiononediff Community Edition
More Extreme and Dedicated optimization(usually another 20~100% performance gain) for the most used modelYes
Technical Support for deploymentHigh priority supportCommunity

Citation

@software{Cai_OneDiff_An_out-of-the-box_2024,
author = {Cai, Shenghang},
month = jun,
title = {{OneDiff: An out-of-the-box acceleration library for diffusion models}},
url = {https://github.com/siliconflow/onediff},
version = {1.1.0},
year = {2024}
}

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc