Home
Login

Bibliothèque de modèles de diffusion de pointe, prenant en charge la génération d'images, de vidéos et d'audio.

Apache-2.0Python 29.4khuggingfacediffusers Last Updated: 2025-06-23

Présentation détaillée du projet 🤗 Diffusers

Aperçu du projet

🤗 Diffusers est la bibliothèque de modèles de diffusion la plus avancée développée par Hugging Face, spécialisée dans la génération d'images, d'audio et même de structures moléculaires 3D. Que vous recherchiez des solutions d'inférence simples ou que vous souhaitiez entraîner vos propres modèles de diffusion, 🤗 Diffusers est une boîte à outils modulaire qui prend en charge les deux.

Adresse du projet : https://github.com/huggingface/diffusers

Caractéristiques principales

Philosophie de conception

  • L'utilisabilité prime sur la performance (usability over performance)
  • La simplicité prime sur la facilité (simple over easy)
  • La personnalisation prime sur l'abstraction (customizability over abstractions)

Trois composants principaux

  1. Pipelines de diffusion de pointe (Diffusion Pipelines)

    • Exécutez l'inférence en quelques lignes de code
    • Prend en charge diverses tâches de génération
  2. Planificateurs de bruit interchangeables (Noise Schedulers)

    • Prend en charge différentes vitesses de diffusion
    • Qualité de sortie réglable
  3. Modèles pré-entraînés (Pretrained Models)

    • Peuvent être utilisés comme blocs de construction
    • Combinés avec des planificateurs pour créer des systèmes de diffusion de bout en bout

Méthode d'installation

Version PyTorch

# Paquet officiel
pip install --upgrade diffusers[torch]

# Version conda maintenue par la communauté
conda install -c conda-forge diffusers

Version Flax

pip install --upgrade diffusers[flax]

Démarrage rapide

Génération de texte à image

from diffusers import DiffusionPipeline
import torch

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

Système de diffusion personnalisé

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

Principales tâches et modèles pris en charge

Tâche Pipeline Modèle recommandé
Génération d'images inconditionnelle DDPMPipeline google/ddpm-ema-church-256
Texte à image StableDiffusionPipeline stable-diffusion-v1-5/stable-diffusion-v1-5
Texte à image (unCLIP) UnCLIPPipeline kakaobrain/karlo-v1-alpha
Texte à image (DeepFloyd IF) IFPipeline DeepFloyd/IF-I-XL-v1.0
Texte à image (Kandinsky) KandinskyPipeline kandinsky-community/kandinsky-2-2-decoder
Génération contrôlable StableDiffusionControlNetPipeline lllyasviel/sd-controlnet-canny
Édition d'image StableDiffusionInstructPix2PixPipeline timbrooks/instruct-pix2pix
Image à image StableDiffusionImg2ImgPipeline stable-diffusion-v1-5/stable-diffusion-v1-5
Restauration d'image StableDiffusionInpaintPipeline runwayml/stable-diffusion-inpainting
Variations d'image StableDiffusionImageVariationPipeline lambdalabs/sd-image-variations-diffusers
Super-résolution d'image StableDiffusionUpscalePipeline stabilityai/stable-diffusion-x4-upscaler
Super-résolution d'espace latent StableDiffusionLatentUpscalePipeline stabilityai/sd-x2-latent-upscaler

Structure de la documentation

Type de documentation Contenu d'apprentissage
Tutorial Apprendre les compétences de base de la bibliothèque, telles que l'utilisation de modèles et de planificateurs pour construire des systèmes de diffusion, et l'entraînement de vos propres modèles de diffusion
Loading Comment charger et configurer tous les composants de la bibliothèque (pipelines, modèles et planificateurs), et comment utiliser différents planificateurs
Pipelines for inference Comment utiliser les pipelines pour différentes tâches d'inférence, la génération par lots, le contrôle de la sortie de génération et du caractère aléatoire
Optimization Comment optimiser les pipelines pour fonctionner sur du matériel à mémoire limitée et accélérer l'inférence
Training Comment entraîner vos propres modèles de diffusion pour différentes tâches

Écosystème communautaire

Projets intégrés

  • Microsoft TaskMatrix
  • InvokeAI
  • InstantID
  • Apple ML Stable Diffusion
  • Lama Cleaner
  • Grounded Segment Anything
  • Stable DreamFusion
  • DeepFloyd IF
  • BentoML
  • Kohya_ss

Résumé

🤗 Diffusers est l'une des bibliothèques de modèles de diffusion les plus complètes et les plus faciles à utiliser actuellement disponibles. Elle offre non seulement une riche collection de modèles et de pipelines pré-entraînés, mais prend également en charge l'entraînement et l'optimisation personnalisés. Que vous soyez chercheur en IA, développeur ou créateur, vous trouverez dans cette bibliothèque les outils nécessaires pour mettre en œuvre diverses applications d'IA générative.

Star History Chart