diffusers README

The project's README from github.com/huggingface/diffusers. As one markdown file: README.md.



GitHub GitHub release GitHub release Contributor Covenant X account

🤗 Diffusers is the go-to library for state-of-the-art pretrained diffusion models for generating images, audio, and even 3D structures of molecules. Whether you're looking for a simple inference solution or training your own diffusion models, 🤗 Diffusers is a modular toolbox that supports both. Our library is designed with a focus on usability over performance, simple over easy, and customizability over abstractions.

🤗 Diffusers offers three core components:

Installation

We recommend installing 🤗 Diffusers in a virtual environment from PyPI or Conda. For more details about installing PyTorch, please refer to their official documentation.

PyTorch

With pip (official package):

pip install --upgrade diffusers[torch]

With conda (maintained by the community):

conda install -c conda-forge diffusers

Apple Silicon (M1/M2) support

Please refer to the How to use Stable Diffusion in Apple Silicon guide.

Quickstart

Generating outputs is super easy with 🤗 Diffusers. To generate an image from text, use the from_pretrained method to load any pretrained diffusion model (browse the Hub for 30,000+ checkpoints):

from diffusers import DiffusionPipeline
import torch

pipeline = DiffusionPipeline.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5", dtype=torch.float16)
pipeline.to("cuda")
pipeline("An image of a squirrel in Picasso style").images[0]

You can also dig into the models and schedulers toolbox to build your own diffusion system:

from diffusers import DDPMScheduler, UNet2DModel
from PIL import Image
import torch

scheduler = DDPMScheduler.from_pretrained("google/ddpm-cat-256")
model = UNet2DModel.from_pretrained("google/ddpm-cat-256").to("cuda")
scheduler.set_timesteps(50)

sample_size = model.config.sample_size
noise = torch.randn((1, 3, sample_size, sample_size), device="cuda")
input = noise

for t in scheduler.timesteps:
    with torch.no_grad():
        noisy_residual = model(input, t).sample
        prev_noisy_sample = scheduler.step(noisy_residual, t, input).prev_sample
        input = prev_noisy_sample

image = (input / 2 + 0.5).clamp(0, 1)
image = image.cpu().permute(0, 2, 3, 1).numpy()[0]
image = Image.fromarray((image * 255).round().astype("uint8"))
image

Check out the Quickstart to launch your diffusion journey today!

How to navigate the documentation

Documentation What can I learn?
Quickstart A basic crash course for loading pipelines, generating outputs, and applying common inference optimizations.
Loading Guides for how to load and configure all the components (pipelines, models, and schedulers) of the library, as well as how to use different schedulers.
Modular Diffusers Build flexible diffusion systems from modular pipeline components.
Optimization Guides for how to optimize your diffusion model to run faster and consume less memory.
Training Guides for how to train a diffusion model for different tasks with different training techniques.

Contribution

We ❤️ contributions from the open-source community! If you want to contribute to this library, please check out our Contribution guide. If you are using an AI agent, please point it at the project conventions in .ai/ first (install them as a plugin with claude plugin marketplace add huggingface/diffusers, or a skill at a time with diffusers-cli skills add <name>) — see Coding with AI agents. You can look out for issues you'd like to tackle to contribute to the library.

Also, say 👋 in our public Discord channel Join us on Discord. We discuss the hottest trends about diffusion models, help each other with contributions, personal projects or just hang out ☕.

Task Pipeline 🤗 Hub
Unconditional Image Generation DDPM google/ddpm-ema-church-256
Text-to-Image Stable Diffusion Text-to-Image stable-diffusion-v1-5/stable-diffusion-v1-5
Text-to-Image unCLIP kakaobrain/karlo-v1-alpha
Text-to-Image DeepFloyd IF DeepFloyd/IF-I-XL-v1.0
Text-to-Image Kandinsky kandinsky-community/kandinsky-2-2-decoder
Text-guided Image-to-Image ControlNet lllyasviel/sd-controlnet-canny
Text-guided Image-to-Image InstructPix2Pix timbrooks/instruct-pix2pix
Text-guided Image-to-Image Stable Diffusion Image-to-Image stable-diffusion-v1-5/stable-diffusion-v1-5
Text-guided Image Inpainting Stable Diffusion Inpainting stable-diffusion-v1-5/stable-diffusion-inpainting
Image Variation Stable Diffusion Image Variation lambdalabs/sd-image-variations-diffusers
Super Resolution Stable Diffusion Upscale stabilityai/stable-diffusion-x4-upscaler
Super Resolution Stable Diffusion Latent Upscale stabilityai/sd-x2-latent-upscaler

Thank you for using us ❤️.

Credits

This library concretizes previous work by many different authors and would not have been possible without their great research and implementations. We'd like to thank, in particular, the following implementations which have helped us in our development and without which the API could not have been as polished today:

We also want to thank @heejkoo for the very helpful overview of papers, code and resources on diffusion models, available here as well as @crowsonkb and @rromb for useful discussions and insights.

Citation

@misc{von-platen-etal-2022-diffusers,
  author = {Patrick von Platen and Suraj Patil and Anton Lozhkov and Pedro Cuenca and Nathan Lambert and Kashif Rasul and Mishig Davaadorj and Dhruv Nair and Sayak Paul and William Berman and Yiyi Xu and Steven Liu and Thomas Wolf},
  title = {Diffusers: State-of-the-art diffusion models},
  year = {2022},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/huggingface/diffusers}}
}

diffusers (huggingface/diffusers)

Searching Database…

34.7K ·GitHub
这是什么东西?Diffusers 是 Hugging Face 的 Python 库,提供最先进的预训练扩散模型,可以生成图像、音频,甚至 3D 分子结构,全部基于 PyTorch。
它是一个我直接运行的应用,还是需要写代码调用的库?是需要写代码调用的库——一个由三部分组成的模块化工具箱:开箱即用的扩散 pipeline(用于推理)、可互换的噪声调度器,以及可以自由组合的预训练模型。
我怎么把它加到项目里?在虚拟环境中通过 PyPI 或 Conda 安装——pip install diffusers——装好就能直接用。
我需要先安装 PyTorch 吗?是的——Diffusers 构建在 PyTorch 之上,所以要按照 PyTorch 官方安装文档先把 PyTorch 装好。
它开箱即用就很快吗?不完全是——它的设计更注重易用性而非性能,注重可定制性而非抽象封装,不过仓库里另有专门的优化指南,介绍更快、更省内存的推理方法。
能在我的 Mac 上运行吗?可以——支持 Apple Silicon M1/M2,官方还提供了在它上面运行 Stable Diffusion 的指南。
用它都能跑哪些模型?除了 Stable Diffusion,它还支持更新的模型系列,比如 Flux 和 Qwen-Image(两者都列在仓库的主题标签里),此外还能使用 Hugging Face Hub 上更庞大的 checkpoint 生态。
除了文字生成图片,它还能做什么?pipeline 表格涵盖无条件生成、文字引导的图生图、图像修补、图像变体和超分辨率;仓库还提供文字生成视频、图生视频、视频转视频以及音频生成。
它用的人多吗?非常广泛——超过 14,000 个其他 GitHub 仓库在使用 Diffusers,项目约有 34,700 颗星,是 PyTorch 上做扩散模型的首选工具箱。
Size
110.5 MB
Stars
34.7K
Age
4y
Commits · 90 Days