Diffusers documentation
DDPM
DDPM
Denoising Diffusion Probabilistic Models (DDPM) de Jonathan Ho, Ajay Jain et Pieter Abbeel propose un modèle de diffusion portant le même nom. Dans la bibliothèque 🤗 Diffusers, DDPM désigne le discrete denoising scheduler de l’article ainsi que le pipeline.
L'abstract de l'article est :
Nous présentons des résultats de synthèse d’images de haute qualité à l’aide de modèles probabilistes de diffusion, une classe de modèles de variables latentes inspirée de considérations issues de la thermodynamique hors équilibre. Nos meilleurs résultats sont obtenus en entraînant sur une borne variationnelle pondérée, conçue selon une nouvelle connexion entre les modèles probabilistes de diffusion et l’ajustement du score de débruitage avec dynamique de Langevin. Nos modèles admettent naturellement un schéma de décompression progressive avec perte, qui peut être interprété comme une généralisation du décodage autorégressif. Sur le jeu de données non conditionnel CIFAR10, nous obtenons un score Inception de 9,46 et un score FID de l’état de l’art de 3,17. Sur LSUN 256x256, nous obtenons une qualité d’échantillons similaire à celle de ProgressiveGAN.
Le code source original peut être trouvé sur hohonathanho/diffusion.
Pensez à consulter le guide des Schedulers pour apprendre à explorer le compromis entre la vitesse et la qualité du scheduler, et à consulter la section réutilisation des composants entre les pipelines pour apprendre à charger efficacement les mêmes composants dans plusieurs pipelines.
DDPMPipeline
classe diffusers.DDPMPipeline
< source >( unet: UNet2DModelscheduler: DDPMScheduler )
Paramètres
- unet (UNet2DModel) —
Un
UNet2DModelpour débruyer les latents d'image encodés. - scheduler (SchedulerMixin) —
Un scheduler à utiliser en combinaison avec
unetpour débruyer l'image encodée. Peut être l'un des DDPMScheduler ou DDIMScheduler.
Pipeline pour la génération d'images.
Ce modèle hérite de DiffusionPipeline. Consultez la documentation de la classe parente pour les méthodes génériques implémentées pour tous les pipelines (téléchargement, sauvegarde, exécution sur un appareil particulier, etc.).
__call__
< source >( batch_size: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonenum_inference_steps: int = 1000output_type: str | None = 'pil'return_dict: bool = True ) → ImagePipelineOutput or tuple
Paramètres
- batch_size (
int, facultatif, valeur par défaut 1) — Le nombre d'images à générer. - generator (
torch.Generator, facultatif) — Untorch.Generatorpour rendre la génération déterministe. - num_inference_steps (
int, facultatif, valeur par défaut 1000) — Le nombre d'étapes de débruitage. Un plus grand nombre d'étapes de débruitage conduit généralement à une image de meilleure qualité, au prix d'une inférence plus lente. - output_type (
str, facultatif, par défaut"pil") — Le format de sortie de l'image générée. Choisissez entre"pil"(PIL.Image),"np"(np.array) ou"pt"(torch.Tensor). - return_dict (
bool, facultatif, par défautTrue) — Indique s'il faut retourner un ImagePipelineOutput plutôt qu'un simple tuple.
Retourne
ImagePipelineOutput ou tuple
Si return_dict est True, ImagePipelineOutput est retourné, sinon un tuple est retourné dont le premier élément est une liste contenant les images générées
La fonction d'appel du pipeline pour la génération.
ImagePipelineOutput
classe diffusers.ImagePipelineOutput
< source >( images: list[PIL.Image.Image] | numpy.ndarray )
Classe de sortie pour les pipelines d’images.