Diffusers documentation
DDPM
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
< source >( unet: UNet2DModelscheduler: DDPMScheduler )
Parâmetros
- unet (UNet2DModel) —
Um
UNet2DModelpara remover o ruído dos latentes da imagem codificada. - scheduler (SchedulerMixin) —
Um scheduler a ser usado em combinação com
unetpara 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__
< 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, padrão 1) — O número de imagens a serem geradas. - generator (
torch.Generator, opcional) — Umtorch.Generatorpara 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ãoTrue) — 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.
ImagePipelineOutput
classe diffusers.ImagePipelineOutput
< source >( images: list[PIL.Image.Image] | numpy.ndarray )
Classe de saída para pipelines de imagem.