🤗 Diffusers ist die hochmoderne Bibliothek für Diffusionsmodelle von Hugging Face, die speziell für die Generierung von Bildern, Audio und sogar molekularen 3D-Strukturen entwickelt wurde. Egal, ob Sie nach einfachen Inferenzlösungen suchen oder Ihre eigenen Diffusionsmodelle trainieren möchten, 🤗 Diffusers ist ein modularer Werkzeugkasten, der beides unterstützt.
Projektadresse: https://github.com/huggingface/diffusers
Hochmoderne Diffusions-Pipelines (Diffusion Pipelines)
Austauschbare Rausch-Scheduler (Noise Schedulers)
Vorab trainierte Modelle (Pretrained Models)
# Offizielles Paket
pip install --upgrade diffusers[torch]
# Von der Community gepflegte Conda-Version
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
Aufgabe | Pipeline | Empfohlenes Modell |
---|---|---|
Unbedingte Bildgenerierung | DDPMPipeline | google/ddpm-ema-church-256 |
Text zu Bild | StableDiffusionPipeline | stable-diffusion-v1-5/stable-diffusion-v1-5 |
Text zu Bild (unCLIP) | UnCLIPPipeline | kakaobrain/karlo-v1-alpha |
Text zu Bild (DeepFloyd IF) | IFPipeline | DeepFloyd/IF-I-XL-v1.0 |
Text zu Bild (Kandinsky) | KandinskyPipeline | kandinsky-community/kandinsky-2-2-decoder |
Kontrollierbare Generierung | StableDiffusionControlNetPipeline | lllyasviel/sd-controlnet-canny |
Bildbearbeitung | StableDiffusionInstructPix2PixPipeline | timbrooks/instruct-pix2pix |
Bild zu Bild | StableDiffusionImg2ImgPipeline | stable-diffusion-v1-5/stable-diffusion-v1-5 |
Bildreparatur | StableDiffusionInpaintPipeline | runwayml/stable-diffusion-inpainting |
Bildvarianten | StableDiffusionImageVariationPipeline | lambdalabs/sd-image-variations-diffusers |
Bild-Superauflösung | StableDiffusionUpscalePipeline | stabilityai/stable-diffusion-x4-upscaler |
Latente Raum-Superauflösung | StableDiffusionLatentUpscalePipeline | stabilityai/sd-x2-latent-upscaler |
Dokumenttyp | Lerninhalte |
---|---|
Tutorial | Erlernen der grundlegenden Fähigkeiten der Bibliothek, wie z. B. die Verwendung von Modellen und Schedulern zum Aufbau von Diffusionssystemen, das Trainieren eigener Diffusionsmodelle |
Loading | Wie man alle Komponenten der Bibliothek (Pipelines, Modelle und Scheduler) lädt und konfiguriert und wie man verschiedene Scheduler verwendet |
Pipelines for inference | Wie man Pipelines für verschiedene Inferenzaufgaben, Batch-Generierung, Steuerung der Generierungsausgabe und Zufälligkeit verwendet |
Optimization | Wie man Pipelines optimiert, um sie auf Hardware mit begrenztem Speicher auszuführen und die Inferenz zu beschleunigen |
Training | Wie man eigene Diffusionsmodelle für verschiedene Aufgaben trainiert |
🤗 Diffusers ist derzeit eine der vollständigsten und benutzerfreundlichsten Bibliotheken für Diffusionsmodelle. Sie bietet nicht nur eine Vielzahl von vortrainierten Modellen und Pipelines, sondern unterstützt auch benutzerdefiniertes Training und Optimierung. Ob KI-Forscher, Entwickler oder Kreative, in dieser Bibliothek finden Sie die Werkzeuge, die Sie benötigen, um verschiedene generative KI-Anwendungen zu realisieren.