Diffusers documentation

FlowMatchEulerDiscreteScheduler

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.43.0).
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