Diffusers documentation

FlowMatchEulerDiscreteScheduler

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

FlowMatchEulerDiscreteScheduler

FlowMatchEulerDiscreteScheduler é baseado na amostragem por flow-matching introduzida em Stable Diffusion 3.

FlowMatchEulerDiscreteScheduler

classe diffusers.FlowMatchEulerDiscreteScheduler

< >

( num_train_timesteps: int = 1000shift: float = 1.0use_dynamic_shifting: bool = Falsebase_shift: float | None = 0.5max_shift: float | None = 1.15base_image_seq_len: int = 256max_image_seq_len: int = 4096invert_sigmas: bool = Falseshift_terminal: float = Noneuse_karras_sigmas: bool = Falseuse_exponential_sigmas: bool = Falseuse_beta_sigmas: bool = Falsetime_shift_type: typing.Literal['exponential', 'linear'] = 'exponential'stochastic_sampling: bool = False )

Parâmetros

  • num_train_timesteps (int, padrão 1000) — O número de etapas de difusão para treinar o modelo.
  • shift (float, padrão 1.0) — O valor de deslocamento para o agendamento de passos de tempo.
  • use_dynamic_shifting (bool, padrão False) — Se deve aplicar o timestep shifting em tempo real com base na resolução da imagem.
  • base_shift (float, padrão 0.5) — Valor para estabilizar a geração de imagens. Aumentar base_shift reduz a variação e a imagem fica mais consistente com a saída desejada.
  • max_shift (float, padrão 1.15) — Variação de valor permitida para os vetores latentes. Aumentar max_shift incentiva mais variação e a imagem pode ficar mais exagerada ou estilizada.
  • base_image_seq_len (int, padrão 256) — O comprimento da sequência de imagem base.
  • max_image_seq_len (int, padrão 4096) — O comprimento máximo da sequência de imagem.
  • invert_sigmas (bool, padrão False) — Se deve inverter os sigmas.
  • shift_terminal (float, padrão None) — O valor final do cronograma de passos de tempo deslocados.
  • use_karras_sigmas (bool, padrão False) — Se deve usar sigmas de Karras para os tamanhos de passo no agendamento de ruído durante a amostragem.
  • use_exponential_sigmas (bool, padrão False) — Se deve usar sigmas exponenciais para os tamanhos de passo no agendamento de ruído durante a amostragem.
  • use_beta_sigmas (bool, padrão False) — Se deve usar beta sigmas para os tamanhos de passo no agendamento de ruído durante a amostragem.
  • time_shift_type (str, padrão “exponential”) — O tipo de deslocamento de passo de tempo dinâmico dependente da resolução a ser aplicado. Pode ser “exponential” ou “linear”.
  • stochastic_sampling (bool, padrão False) — Se deve usar amostragem estocástica.

Euler scheduler.

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.

index_for_timestep

< >

( timestep: typing.Union[float, torch.FloatTensor]schedule_timesteps: typing.Optional[torch.FloatTensor] = None ) → int

Parâmetros

  • timestep (float ou torch.FloatTensor) — O timestep para o qual encontrar o índice.
  • schedule_timesteps (torch.FloatTensor, opcional) — Os timesteps do agendamento para validação. Se None, os timesteps do agendador são usados.

Retorna

int

O índice do passo de tempo.

Obtenha o índice para o timestep dado.

scale_noise

< >

( sample: FloatTensortimestep: typing.Union[float, torch.FloatTensor]noise: typing.Optional[torch.FloatTensor] = None ) → torch.FloatTensor

Parâmetros

  • sample (torch.FloatTensor) — A amostra de entrada.
  • timestep (torch.FloatTensor) — O timestep atual na cadeia de difusão.
  • noise (torch.FloatTensor) — O tensor de ruído.

Retorna

torch.FloatTensor

Uma amostra de entrada escalada.

Processo de propagação no flow-matching

set_begin_index

< >

( begin_index: int = 0 )

Parâmetros

  • begin_index (int, padrão 0) — O índice inicial do agendador.

Define o índice inicial para o agendador. Esta função deve ser executada a partir do pipeline antes da inferência.

set_shift

< >

( shift: float )

Parâmetros

  • shift (float) — O valor de deslocamento a ser definido.

Define o valor de deslocamento para o agendador.

set_timesteps

< >

( num_inference_steps: int | None = Nonedevice: typing.Union[str, torch.device] = Nonesigmas: list[float] | None = Nonemu: float | None = Nonetimesteps: list[float] | None = None )

Parâmetros

  • num_inference_steps (int, opcional) — O número de etapas de difusão usadas ao gerar amostras com um modelo pré-treinado.
  • 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.
  • sigmas (list[float], opcional) — Valores personalizados para sigmas a serem usados em cada etapa de difusão. Se None, os sigmas são calculados automaticamente.
  • mu (float, opcional) — Determina a quantidade de deslocamento aplicada aos sigmas ao executar o deslocamento de passo de tempo dependente da resolução.
  • timesteps (list[float], opcional) — Valores personalizados para os timesteps a serem usados em cada etapa de difusão. Se None, os timesteps são calculados automaticamente.

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

etapa

< >

( model_output: FloatTensortimestep: typing.Union[float, torch.FloatTensor]sample: FloatTensors_churn: float = 0.0s_tmin: float = 0.0s_tmax: float = infs_noise: float = 1.0generator: typing.Optional[torch.Generator] = Noneper_token_timesteps: typing.Optional[torch.Tensor] = Nonereturn_dict: bool = True ) → FlowMatchEulerDiscreteSchedulerOutput or tuple

Parâmetros

  • model_output (torch.FloatTensor) — A saída direta do modelo de difusão aprendido.
  • timestep (float) — O timestep discreto atual na cadeia de difusão.
  • sample (torch.FloatTensor) — Uma instância atual de uma amostra criada pelo processo de difusão.
  • s_churn (float) —
  • s_tmin (float) —
  • s_tmax (float) —
  • s_noise (float, padrão 1.0) — Fator de escala para o ruído adicionado à amostra.
  • generator (torch.Generator, opcional) — Um gerador de números aleatórios.
  • per_token_timesteps (torch.Tensor, opcional) — Os timesteps para cada token na amostra.
  • return_dict (bool, padrão True) — Se deve ou não retornar um FlowMatchEulerDiscreteSchedulerOutput ou uma tupla.

Retorna

FlowMatchEulerDiscreteSchedulerOutput ou tuple

Se True for o valor de `return_dict`, FlowMatchEulerDiscreteSchedulerOutput é retornado, caso contrário, uma tupla é retornada, onde o primeiro elemento é o tensor da amostra.

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

stretch_shift_to_terminal

< >

( t: Tensor ) → torch.Tensor

Parâmetros

  • t (torch.Tensor) — Um tensor de timesteps a ser esticado e deslocado.

Retorna

torch.Tensor

Um tensor de timesteps ajustados de modo que o valor final seja igual a self.config.shift_terminal.

Estica e desloca o cronograma de timesteps para garantir que ele termine no valor de configuração shift_terminal configurado.

Referência: https://github.com/Lightricks/LTX-Video/blob/a01a171f8fe3d99dce2728d60a73fecf4d4238ae/ltx_video/schedulers/rf.py#L51

time_shift

< >

( mu: floatsigma: floatt: Tensor ) → torch.Tensor

Parâmetros

  • mu (float) — O parâmetro mu para o deslocamento de tempo.
  • sigma (float) — O parâmetro sigma para o deslocamento de tempo.
  • t (torch.Tensor) — Os passos de tempo de entrada.

Retorna

torch.Tensor

Os timesteps deslocados no tempo.

Aplicar o deslocamento temporal aos sigmas.

Update on GitHub