🤗 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
Pipelines de diffusion de pointe (Diffusion Pipelines)
Planificateurs de bruit interchangeables (Noise Schedulers)
Modèles pré-entraînés (Pretrained Models)
# Paquet officiel
pip install --upgrade diffusers[torch]
# Version conda maintenue par la communauté
conda install -c conda-forge diffusers
pip install --upgrade diffusers[flax]
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]
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
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 |
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 |
🤗 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.