Diffusers documentation
DDPM
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
< source >( unet: UNet2DModelscheduler: DDPMScheduler )
Parámetros
- unet (UNet2DModel) —
Un
UNet2DModelpara desruidar los latentes de la imagen codificada. - scheduler (SchedulerMixin) —
Un scheduler para usar en combinación con
unetpara 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__
< 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
Parámetros
- batch_size (
int, opcional, valor predeterminado 1) — El número de imágenes a generar. - generator (
torch.Generator, opcional) — Untorch.Generatorpara 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 predeterminadoTrue) — 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.
ImagePipelineOutput
clase diffusers.ImagePipelineOutput
< source >( images: list[PIL.Image.Image] | numpy.ndarray )
Clase de salida para pipelines de imágenes.