Diffusers documentation

DDPM

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
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 e Pieter Abbeel, propõe um modelo baseado em difusão com o mesmo nome. Na biblioteca 🤗 Diffusers, DDPM se refere ao discrete denoising scheduler do artigo, bem como ao pipeline.

O resumo do artigo é:

Apresentamos resultados de alta qualidade em síntese de imagens usando modelos probabilísticos de difusão, uma classe de modelos de variáveis latentes inspirada em considerações da termodinâmica de não equilíbrio. Nossos melhores resultados são obtidos treinando em um limite variacional ponderado projetado de acordo com uma nova conexão entre modelos probabilísticos de difusão e correspondência de escores de desruído com dinâmica de Langevin, e nossos modelos admitem naturalmente um esquema progressivo de descompressão com perdas que pode ser interpretado como uma generalização da decodificação autoregressiva. No conjunto de dados incondicional CIFAR10, obtemos uma pontuação Inception de 9,46 e uma pontuação FID do estado da arte de 3,17. Em 256x256 LSUN, obtemos qualidade de amostras semelhante à do ProgressiveGAN.

O código original pode ser encontrado em hohonathanho/diffusion.

Certifique-se de consultar o guia de Schedulers para aprender a explorar o compromisso entre a velocidade e a qualidade do scheduler, e veja a seção reutilização de componentes entre pipelines para aprender a carregar eficientemente os mesmos componentes em vários pipelines.

DDPMPipeline

classe diffusers.DDPMPipeline

< >

( unet: UNet2DModelscheduler: DDPMScheduler )

Parâmetros

  • unet (UNet2DModel) — Um UNet2DModel para remover o ruído dos latentes da imagem codificada.
  • scheduler (SchedulerMixin) — Um scheduler a ser usado em combinação com unet para desruidar a imagem codificada. Pode ser um de DDPMScheduler ou DDIMScheduler.

Pipeline para geração de imagens.

Este modelo herda de DiffusionPipeline. Consulte a documentação da superclasse para os métodos genéricos implementados para todos os pipelines (download, salvamento, execução em um 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, padrão 1) — O número de imagens a serem geradas.
  • generator (torch.Generator, opcional) — Um torch.Generator para tornar a geração determinística.
  • num_inference_steps (int, opcional, padrão 1000) — O número de etapas de remoção de ruído. Mais etapas de remoção de ruído geralmente resultam em uma imagem de maior qualidade, às custas de uma inferência mais lenta.
  • output_type (str, opcional, padrão "pil") — O formato de saída da imagem gerada. Escolha entre "pil" (PIL.Image), "np" (np.array) ou "pt" (torch.Tensor).
  • return_dict (bool, opcional, padrão True) — Se deve ou não retornar um ImagePipelineOutput em vez de uma tupla simples.

Retorna

ImagePipelineOutput ou tuple

Se return_dict for True, ImagePipelineOutput é retornado; caso contrário, uma tuple é retornada, onde o primeiro elemento é uma lista com as imagens geradas

A função de chamada do pipeline para geração.

Exemplo:

>>> 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

classe diffusers.ImagePipelineOutput

< >

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

Parâmetros

  • images (List[PIL.Image.Image] ou np.ndarray) — Lista de imagens PIL desruidas de comprimento batch_size ou array NumPy de forma (batch_size, height, width, num_channels).

Classe de saída para pipelines de imagem.

Update on GitHub