Diffusers documentation

DDPM

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

DDPM

Denoising Diffusion Probabilistic Models (DDPM), de Jonathan Ho, Ajay Jain y Pieter Abbeel, propone un modelo de difusión con el mismo nombre. En la biblioteca 🤗 Diffusers, DDPM se refiere tanto al discrete denoising scheduler del artículo como al pipeline.

El resumen del artículo es:

Presentamos resultados de alta calidad en la síntesis de imágenes utilizando modelos probabilísticos de difusión, una clase de modelos de variables latentes inspirados en consideraciones de la termodinámica de no equilibrio. Nuestros mejores resultados se obtienen entrenando sobre un límite variacional ponderado diseñado según una conexión novedosa entre los modelos probabilísticos de difusión y el denoising score matching con dinámica de Langevin, y nuestros modelos admiten de forma natural un esquema de descompresión progresiva con pérdida que puede interpretarse como una generalización de la decodificación autoregresiva. En el conjunto de datos no condicionado CIFAR10, obtenemos una puntuación Inception de 9,46 y una puntuación FID del estado del arte de 3,17. En LSUN 256x256, obtenemos una calidad de muestra similar a la de ProgressiveGAN.

El código original se puede encontrar en hohonathanho/diffusion.

Asegúrate de consultar la guía de Schedulers para aprender a explorar el equilibrio entre la velocidad y la calidad del scheduler, y consulta la sección reutilizar componentes entre pipelines para aprender a cargar eficientemente los mismos componentes en múltiples pipelines.

DDPMPipeline

clase diffusers.DDPMPipeline

< >

( unet: UNet2DModelscheduler: DDPMScheduler )

Parámetros

  • unet (UNet2DModel) — Un UNet2DModel para desruidar los latentes de la imagen codificada.
  • scheduler (SchedulerMixin) — Un scheduler para usar en combinación con unet para desruidar la imagen codificada. Puede ser uno de DDPMScheduler o DDIMScheduler.

Pipeline para la generación de imágenes.

Este modelo hereda de DiffusionPipeline. Consulta la documentación de la clase superior para los métodos genéricos implementados en todas las tuberías (descarga, guardado, ejecución en un dispositivo específico, etc.).

__call__

< >

( 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

Parámetros

  • batch_size (int, opcional, valor predeterminado 1) — El número de imágenes a generar.
  • generator (torch.Generator, opcional) — Un torch.Generator para hacer que la generación sea determinista.
  • num_inference_steps (int, opcional, valor predeterminado 1000) — El número de pasos de desruido. Más pasos de desruido suelen conducir a una imagen de mayor calidad a costa de una inferencia más lenta.
  • output_type (str, opcional, valor predeterminado "pil") — El formato de salida de la imagen generada. Elija entre "pil" (PIL.Image), "np" (np.array) o "pt" (torch.Tensor).
  • return_dict (bool, opcional, valor predeterminado True) — Indica si se debe devolver un ImagePipelineOutput en lugar de una tupla simple.

Devuelve

ImagePipelineOutput o tuple

Si return_dict es True, se devuelve ImagePipelineOutput; en caso contrario, se devuelve una tuple cuyo primer elemento es una lista con las imágenes generadas

La función de llamada para el pipeline de generación.

Ejemplo:

>>> from diffusers import DDPMPipeline

>>> # load model and scheduler
>>> pipe = DDPMPipeline.from_pretrained("google/ddpm-cat-256")

>>> # run pipeline in inference (sample random noise and denoise)
>>> image = pipe().images[0]

>>> # save image
>>> image.save("ddpm_generated_image.png")

ImagePipelineOutput

clase diffusers.ImagePipelineOutput

< >

( images: list[PIL.Image.Image] | numpy.ndarray )

Parámetros

  • images (List[PIL.Image.Image] o np.ndarray) — Lista de imágenes PIL desruidas de longitud batch_size o matriz NumPy de forma (batch_size, height, width, num_channels).

Clase de salida para pipelines de imágenes.

Update on GitHub