DDPM

DDPM

Denoising Diffusion Probabilistic Modelsarrow-up-right (DDPM) by Jonathan Ho, Ajay Jain and Pieter Abbeel proposes a diffusion based model of the same name. In the 🌍 Diffusers library, DDPM refers to the discrete denoising scheduler from the paper as well as the pipeline.

The abstract from the paper is:

We present high quality image synthesis results using diffusion probabilistic models, a class of latent variable models inspired by considerations from nonequilibrium thermodynamics. Our best results are obtained by training on a weighted variational bound designed according to a novel connection between diffusion probabilistic models and denoising score matching with Langevin dynamics, and our models naturally admit a progressive lossy decompression scheme that can be interpreted as a generalization of autoregressive decoding. On the unconditional CIFAR10 dataset, we obtain an Inception score of 9.46 and a state-of-the-art FID score of 3.17. On 256x256 LSUN, we obtain sample quality similar to ProgressiveGAN.

The original codebase can be found at hohonathanho/diffusionarrow-up-right.

Make sure to check out the Schedulers guidearrow-up-right to learn how to explore the tradeoff between scheduler speed and quality, and see the reuse components across pipelinesarrow-up-right section to learn how to efficiently load the same components into multiple pipelines.

DDPMPipeline

class diffusers.DDPMPipeline

<source>arrow-up-right

( unetscheduler )

Parameters

Pipeline for image generation.

This model inherits from DiffusionPipelinearrow-up-right. Check the superclass documentation for the generic methods implemented for all pipelines (downloading, saving, running on a particular device, etc.).

__call__

<source>arrow-up-right

( batch_size: int = 1generator: typing.Union[torch._C.Generator, typing.List[torch._C.Generator], NoneType] = Nonenum_inference_steps: int = 1000output_type: typing.Optional[str] = 'pil'return_dict: bool = True ) β†’ ImagePipelineOutputarrow-up-right or tuple

Parameters

  • batch_size (int, optional, defaults to 1) β€” The number of images to generate.

  • generator (torch.Generator, optional) β€” A torch.Generatorarrow-up-right to make generation deterministic.

  • num_inference_steps (int, optional, defaults to 1000) β€” The number of denoising steps. More denoising steps usually lead to a higher quality image at the expense of slower inference.

  • output_type (str, optional, defaults to "pil") β€” The output format of the generated image. Choose between PIL.Image or np.array.

  • return_dict (bool, optional, defaults to True) β€” Whether or not to return a ImagePipelineOutputarrow-up-right instead of a plain tuple.

Returns

ImagePipelineOutputarrow-up-right or tuple

If return_dict is True, ImagePipelineOutputarrow-up-right is returned, otherwise a tuple is returned where the first element is a list with the generated images

The call function to the pipeline for generation.

Example:

Copied

ImagePipelineOutput

class diffusers.ImagePipelineOutput

<source>arrow-up-right

( images: typing.Union[typing.List[PIL.Image.Image], numpy.ndarray] )

Parameters

  • images (List[PIL.Image.Image] or np.ndarray) β€” List of denoised PIL images of length batch_size or NumPy array of shape (batch_size, height, width, num_channels).

Output class for image pipelines.

Last updated