Diffusers documentation

Overview

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Overview

🤗 Diffusers provides a collection of training scripts for you to train your own diffusion models. You can find all of our training scripts in diffusers/examples.

Each training script is:

  • Self-contained: the training script does not depend on any local files, and all packages required to run the script are installed from the requirements.txt file.
  • Easy-to-tweak: the training scripts are an example of how to train a diffusion model for a specific task and won’t work out-of-the-box for every training scenario. You’ll likely need to adapt the training script for your specific use-case. To help you with that, we’ve fully exposed the data preprocessing code and the training loop so you can modify it for your own use.
  • Beginner-friendly: the training scripts are designed to be beginner-friendly and easy to understand, rather than including the latest state-of-the-art methods to get the best and most competitive results. Any training methods we consider too complex are purposefully left out.
  • Single-purpose: each training script is expressly designed for only one task to keep it readable and understandable.

Our current collection of training scripts include:

Training SDXL-support LoRA-support Flax-support
unconditional image generation Open In Colab
text-to-image 👍 👍 👍
textual inversion Open In Colab 👍
DreamBooth Open In Colab 👍 👍 👍
ControlNet 👍 👍
InstructPix2Pix 👍
Custom Diffusion
T2I-Adapters 👍
Kandinsky 2.2 👍
Wuerstchen 👍

These examples are actively maintained, so please feel free to open an issue if they aren’t working as expected. If you feel like another training example should be included, you’re more than welcome to start a Feature Request to discuss your feature idea with us and whether it meets our criteria of being self-contained, easy-to-tweak, beginner-friendly, and single-purpose.

Install

Make sure you can successfully run the latest versions of the example scripts by installing the library from source in a new virtual environment:

git clone https://github.com/huggingface/diffusers
cd diffusers
pip install .

Then navigate to the folder of the training script (for example, DreamBooth) and install the requirements.txt file. Some training scripts have a specific requirement file for SDXL, LoRA or Flax. If you’re using one of these scripts, make sure you install its corresponding requirements file.

cd examples/dreambooth
pip install -r requirements.txt
# to train SDXL with DreamBooth
pip install -r requirements_sdxl.txt

To speedup training and reduce memory-usage, we recommend:

  • using PyTorch 2.0 or higher to automatically use scaled dot product attention during training (you don’t need to make any changes to the training code)
  • installing xFormers to enable memory-efficient attention
< > Update on GitHub