Buckets:

|
download
raw
5.44 kB

Installation

Diffusers is tested on Python 3.8+ and PyTorch 2.6+. Install PyTorch according to your system and setup.

Create a virtual environment for easier management of separate projects and to avoid compatibility issues between dependencies. Use uv, a Rust-based Python package and project manager, to create a virtual environment and install Diffusers.

uv venv my-env
source my-env/bin/activate

Install Diffusers with one of the following methods.

PyTorch only supports Python 3.8 - 3.11 on Windows.

uv pip install diffusers["torch"] transformers

To install Diffusers with PyTorch on NVIDIA Spark devices (such as an RTX Spark laptop) running ARM64, install PyTorch from the NVIDIA PyPI index. These devices require NVIDIA's ARM64 builds of PyTorch, which are not available on the default PyPI index or the standard PyTorch wheel index.

Run the command below to check if your system detects an NVIDIA GPU.

nvidia-smi

Install PyTorch from the NVIDIA PyPI index, then install Diffusers.

uv pip install torch --index-url https://pypi.nvidia.com
uv pip install diffusers
conda install -c conda-forge diffusers

A source install installs the main version instead of the latest stable version. The main version is useful for staying updated with the latest changes but it may not always be stable. If you run into a problem, open an Issue and we will try to resolve it as soon as possible.

Make sure Accelerate is installed.

uv pip install accelerate

Install Diffusers from source with the command below.

uv pip install git+https://github.com/huggingface/diffusers

Devices

Diffusers runs on any accelerator supported by PyTorch. The examples throughout the docs use "cuda" because it is the most common setup, but nothing is CUDA-specific. Swap in the device string for your hardware, such as "xpu" for Intel GPUs, "mps" for Apple silicon, or "cpu".

device = "cuda"  # or "mps", "xpu", "cpu"
pipeline.to(device)

To pick the device at runtime instead of hardcoding it, use torch.accelerator.

import torch

device = torch.accelerator.current_accelerator().type if torch.accelerator.is_available() else "cpu"

Editable install

An editable install is recommended for development workflows or if you're using the main version of the source code. A special link is created between the cloned repository and the Python library paths. This avoids reinstalling a package after every change.

Clone the repository and install Diffusers with the following commands.

git clone https://github.com/huggingface/diffusers.git
cd diffusers
uv pip install -e ".[torch]"

You must keep the diffusers folder if you want to keep using the library with the editable install.

Update your cloned repository to the latest version of Diffusers with the command below.

cd ~/diffusers/
git pull

Cache

Model weights and files are downloaded from the Hub to a cache, which is usually your home directory. Change the cache location with the HF_HOME or HF_HUB_CACHE environment variables or configuring the cache_dir parameter in methods like from_pretrained().

export HF_HOME="/path/to/your/cache"
export HF_HUB_CACHE="/path/to/your/hub/cache"
from diffusers import DiffusionPipeline

pipeline = DiffusionPipeline.from_pretrained(
    "black-forest-labs/FLUX.1-dev",
    cache_dir="/path/to/your/cache"
)

Cached files allow you to use Diffusers offline. Set the HF_HUB_OFFLINE environment variable to 1 to prevent Diffusers from connecting to the internet.

export HF_HUB_OFFLINE=1

For more details about managing and cleaning the cache, take a look at the Understand caching guide.

Telemetry logging

Diffusers gathers telemetry information during from_pretrained() requests. The data gathered includes the Diffusers and PyTorch version, the requested model or pipeline class, and the path to a pretrained checkpoint if it is hosted on the Hub.

This usage data helps us debug issues and prioritize new features. Telemetry is only sent when loading models and pipelines from the Hub, and it is not collected if you're loading local files.

Opt-out and disable telemetry collection with the HF_HUB_DISABLE_TELEMETRY environment variable.

export HF_HUB_DISABLE_TELEMETRY=1
set HF_HUB_DISABLE_TELEMETRY=1

Xet Storage Details

Size:
5.44 kB
·
Xet hash:
8f0dc5ffd89f53ae4e1e3ca984d91bac8d17c4efff474f60c6fcc4b4b77c6242

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.