Diffusers documentation

ScoreSdeVeScheduler

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

ScoreSdeVeScheduler

ScoreSdeVeScheduler é um agendador de equação diferencial estocástica (SDE) com variância explosiva. Foi introduzido no artigo Score-Based Generative Modeling through Stochastic Differential Equations, de Yang Song, Jascha Sohl-Dickstein, Diederik P. Kingma, Abhishek Kumar, Stefano Ermon e Ben Poole.

O resumo do artigo é:

Criar ruído a partir de dados é fácil; criar dados a partir de ruído é modelagem generativa. Apresentamos uma equação diferencial estocástica (SDE) que transforma suavemente uma distribuição de dados complexa em uma distribuição a priori conhecida, injetando lentamente ruído, e uma SDE de tempo reverso correspondente que transforma a distribuição a priori de volta para a distribuição de dados, removendo lentamente o ruído. Crucialmente, a SDE de tempo reverso depende apenas do campo de gradiente dependente do tempo (também conhecido como score) da distribuição de dados perturbada. Aproveitando os avanços na modelagem generativa baseada em score, podemos estimar esses scores com precisão usando redes neurais e usar solucionadores numéricos de SDE para gerar amostras. Mostramos que esse framework encapsula abordagens anteriores em modelagem generativa baseada em score e modelagem probabilística de difusão, permitindo novos procedimentos de amostragem e novas capacidades de modelagem. Em particular, introduzimos um framework preditor-corretor para corrigir erros na evolução da SDE de tempo reverso discretizada. Também derivamos uma ODE neural equivalente que amostra da mesma distribuição que a SDE, mas que adicionalmente permite o cálculo exato de verossimilhança e uma eficiência de amostragem aprimorada. Além disso, fornecemos uma nova maneira de resolver problemas inversos com modelos baseados em score, como demonstrado com experimentos em geração condicional de classe, inpainting de imagem e colorização. Combinado com múltiplas melhorias arquiteturais, alcançamos desempenho recorde para geração incondicional de imagens em CIFAR-10 com um Inception score de 9.89 e FID de 2.20, uma verossimilhança competitiva de 2.99 bits/dim, e demonstramos pela primeira vez a geração de alta fidelidade de imagens de 1024 x 1024 a partir de um modelo generativo baseado em score.

ScoreSdeVeScheduler

classe diffusers.ScoreSdeVeScheduler

< >

( num_train_timesteps: int = 2000snr: float = 0.15sigma_min: float = 0.01sigma_max: float = 1348.0sampling_eps: float = 1e-05correct_steps: int = 1 )

Parâmetros

  • num_train_timesteps (int, padrão 2000) — O número de etapas de difusão para treinar o modelo.
  • snr (float, padrão 0.15) — Um coeficiente que pondera o passo da amostra de model_output (da rede) até o ruído aleatório.
  • sigma_min (float, padrão 0.01) — A escala de ruído inicial para a sequência de sigma no procedimento de amostragem. O sigma mínimo deve espelhar a distribuição dos dados.
  • sigma_max (float, padrão 1348.0) — O valor máximo usado para o intervalo de timesteps contínuos passados para o modelo.
  • sampling_eps (float, padrão 1e-5) — O valor final da amostragem, onde os timesteps diminuem progressivamente de 1 para epsilon.
  • correct_steps (int, padrão 1) — O número de etapas de correção executadas em uma amostra gerada.

ScoreSdeVeScheduler é um agendador de equação diferencial estocástica (SDE) com variância explosiva.

Este modelo herda de SchedulerMixin e ConfigMixin. Consulte a documentação da superclasse para os métodos genéricos que a biblioteca implementa para todos os agendadores, como carregamento e salvamento.

add_noise

< >

( original_samples: Tensornoise: Tensortimesteps: Tensor ) → torch.Tensor

Parâmetros

  • original_samples (torch.Tensor) — As amostras originais às quais o ruído será adicionado.
  • noise (torch.Tensor) — O tensor de ruído a ser adicionado às amostras originais.
  • timesteps (torch.Tensor) — Os timesteps nos quais adicionar ruído, determinando o nível de ruído a partir do agendamento.

Retorna

torch.Tensor

As amostras ruidosas com ruído adicionado, escalado de acordo com a agenda de passos temporais.

Adicione ruído às amostras originais de acordo com o agendamento de ruído nos timesteps especificados. Este é o processo de difusão direta.

get_adjacent_sigma

< >

( timesteps: Tensort: Tensor ) → torch.Tensor

Parâmetros

  • timesteps (torch.Tensor) — O tensor de índices discretos de timestep.
  • t (torch.Tensor) — O tensor dos valores contínuos de timestep.

Retorna

torch.Tensor

Os valores de sigma para o índice de passo de tempo adjacente (anterior).

Retorna o valor de sigma correspondente ao índice do passo anterior. Quando o passo é zero (sem passo anterior), retorna zero.

scale_model_input

< >

( sample: Tensortimestep: int | None = None ) → torch.Tensor

Parâmetros

  • sample (torch.Tensor) — A amostra de entrada.
  • timestep (int, opcional) — O timestep atual na cadeia de difusão.

Retorna

torch.Tensor

Uma amostra de entrada escalada.

Garante a intercambiabilidade com agendadores que precisam escalar a entrada do modelo de desruidamento dependendo do passo de tempo atual.

set_sigmas

< >

( num_inference_steps: intsigma_min: float | None = Nonesigma_max: float | None = Nonesampling_eps: float | None = None )

Parâmetros

  • num_inference_steps (int) — O número de etapas de difusão usadas ao gerar amostras com um modelo pré-treinado.
  • sigma_min (float, opcional) — O valor inicial da escala de ruído (sobrepõe o valor fornecido durante a instanciação do agendador).
  • sigma_max (float, opcional) — O valor final da escala de ruído (sobrepõe o valor fornecido durante a instanciação do agendador).
  • sampling_eps (float, opcional) — O valor final do timestep (sobrepõe o valor fornecido durante a instanciação do scheduler).

Define as escalas de ruído usadas para a cadeia de difusão (a ser executada antes da inferência). Os sigmas controlam o peso dos componentes de drift e diffusion da atualização da amostra.

set_timesteps

< >

( num_inference_steps: intsampling_eps: float | None = Nonedevice: typing.Union[str, torch.device, NoneType] = None )

Parâmetros

  • num_inference_steps (int) — O número de etapas de difusão usadas ao gerar amostras com um modelo pré-treinado.
  • sampling_eps (float, opcional) — O valor final do timestep (sobrepõe o valor fornecido durante a instanciação do scheduler).
  • device (str ou torch.device, opcional) — O dispositivo para o qual os timesteps devem ser movidos. Se None, os timesteps não são movidos.

Define os passos de tempo contínuos usados para a cadeia de difusão (a ser executado antes da inferência).

step_correct

< >

( model_output: Tensorsample: Tensorgenerator: typing.Optional[torch.Generator] = Nonereturn_dict: bool = True ) → SchedulerOutput or tuple

Parâmetros

  • model_output (torch.Tensor) — A saída direta do modelo de difusão aprendido.
  • sample (torch.Tensor) — Uma instância atual de uma amostra criada pelo processo de difusão.
  • generator (torch.Generator, opcional) — Um gerador de números aleatórios.
  • return_dict (bool, opcional, padrão True) — Se deve ou não retornar um SchedulerOutput ou tuple.

Retorna

SchedulerOutput ou tuple

If return_dict is True, SchedulerOutput is returned, otherwise a tuple is returned where the first element is the sample tensor.

Corrija a amostra prevista com base no model_output da rede. Isso é frequentemente executado repetidamente após fazer a previsão para o timestep anterior.

step_pred

< >

( model_output: Tensortimestep: intsample: Tensorgenerator: typing.Optional[torch.Generator] = Nonereturn_dict: bool = True ) → SdeVeOutput or tuple

Parâmetros

  • model_output (torch.Tensor) — A saída direta do modelo de difusão aprendido.
  • timestep (int) — O timestep discreto atual na cadeia de difusão.
  • sample (torch.Tensor) — Uma instância atual de uma amostra criada pelo processo de difusão.
  • generator (torch.Generator, opcional) — Um gerador de números aleatórios.
  • return_dict (bool, opcional, padrão True) — Se deve ou não retornar um SdeVeOutput ou tuple.

Retorna

SdeVeOutput ou tuple

If return_dict is True, SdeVeOutput is returned, otherwise a tuple is returned where the first element is the sample tensor.

Preveja a amostra do passo de tempo anterior revertendo o SDE. Esta função propaga o processo de difusão a partir das saídas do modelo aprendido (na maioria das vezes, o ruído previsto).

SdeVeOutput

classe diffusers.schedulers.scheduling_sde_ve.SdeVeOutput

< >

( prev_sample: Tensorprev_sample_mean: Tensor )

Parâmetros

  • prev_sample (torch.Tensor de forma (batch_size, num_channels, height, width) para imagens) — Amostra calculada (x_{t-1}) do passo de tempo anterior. prev_sample deve ser usado como entrada do modelo no loop de remoção de ruído.
  • prev_sample_mean (torch.Tensor de forma (batch_size, num_channels, height, width) para imagens) — Média de prev_sample média sobre os timesteps anteriores.

Classe de saída para a saída da função step do agendador.

Update on GitHub