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 se basa en el muestreo por flow-matching introducido en Stable Diffusion 3.

FlowMatchEulerDiscreteScheduler

clase 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, por defecto 1000) — El número de pasos de difusión para entrenar el modelo.
  • shift (float, valor predeterminado: 1.0) — El valor de desplazamiento para la programación de pasos de tiempo.
  • use_dynamic_shifting (bool, predeterminado en False) — Si se aplica el desplazamiento de timestep en tiempo real en función de la resolución de la imagen.
  • base_shift (float, valor predeterminado 0.5) — Valor para estabilizar la generación de imágenes. Aumentar base_shift reduce la variación y la imagen es más consistente con la salida deseada.
  • max_shift (float, valor predeterminado 1.15) — Cambio de valor permitido para los vectores latentes. Aumentar max_shift fomenta más variación y la imagen puede ser más exagerada o estilizada.
  • base_image_seq_len (int, por defecto 256) — La longitud de secuencia base de la imagen.
  • max_image_seq_len (int, por defecto 4096) — La longitud máxima de la secuencia de imagen.
  • invert_sigmas (bool, predeterminado en False) — Si se deben invertir los sigmas.
  • shift_terminal (float, predeterminado: None) — El valor final del calendario de pasos de tiempo desplazado.
  • use_karras_sigmas (bool, predeterminado en False) — Si se deben usar sigmas de Karras para los tamaños de paso en el programa de ruido durante la muestreo.
  • use_exponential_sigmas (bool, predeterminado en False) — Si se deben usar sigmas exponenciales para los tamaños de paso en el plan de ruido durante la muestreo.
  • use_beta_sigmas (bool, predeterminado en False) — Si se usan beta sigmas para los tamaños de paso en el plan de ruido durante la muestreo.
  • time_shift_type (str, por defecto “exponential”) — El tipo de desplazamiento de paso de tiempo dependiente de la resolución dinámica que se debe aplicar. Puede ser “exponential” o “linear”.
  • stochastic_sampling (bool, predeterminado en False) — Si se debe usar muestreo estocástico.

Euler scheduler.

Este modelo hereda de SchedulerMixin y ConfigMixin. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos los programadores, como la carga y el guardado.

index_for_timestep

< >

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

Parámetros

  • timestep (float o torch.FloatTensor) — El paso de tiempo para el que se busca el índice.
  • schedule_timesteps (torch.FloatTensor, opcional) — Los timesteps de la programación contra los que validar. Si es None, se utilizan los timesteps del programador.

Devuelve

int

El índice del paso de tiempo.

Obtén el índice para el paso de tiempo dado.

scale_noise

< >

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

Parámetros

  • sample (torch.FloatTensor) — La muestra de entrada.
  • timestep (torch.FloatTensor) — El paso de tiempo actual en la cadena de difusión.
  • noise (torch.FloatTensor) — El tensor de ruido.

Devuelve

torch.FloatTensor

Una muestra de entrada escalada.

Proceso de avance en flow-matching

set_begin_index

< >

( begin_index: int = 0 )

Parámetros

  • begin_index (int, por defecto 0) — El índice inicial del programador.

Establece el índice inicial para el programador. Esta función debe ejecutarse desde la tubería antes de la inferencia.

set_shift

< >

( shift: float )

Parámetros

  • shift (float) — El valor de desplazamiento que se debe establecer.

Establece el valor de desplazamiento para el programador.

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) — El número de pasos de difusión utilizados al generar muestras con un modelo preentrenado.
  • device (str o torch.device, opcional) — El dispositivo al que deben moverse los timesteps. Si es None, los timesteps no se mueven.
  • sigmas (list[float], opcional) — Valores personalizados para sigmas que se usarán en cada paso de difusión. Si es None, los sigmas se calculan automáticamente.
  • mu (float, opcional) — Determina la cantidad de desplazamiento aplicado a las sigmas al realizar el desplazamiento de pasos de tiempo dependiente de la resolución.
  • timesteps (list[float], opcional) — Valores personalizados para los timesteps que se usarán en cada paso de difusión. Si es None, los timesteps se calculan automáticamente.

Establece los pasos discretos utilizados para la cadena de difusión (para ejecutarse antes de la inferencia).

paso

< >

( 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) — La salida directa del modelo de difusión aprendido.
  • timestep (float) — El paso de tiempo discreto actual en la cadena de difusión.
  • sample (torch.FloatTensor) — Una instancia actual de una muestra creada por el proceso de difusión.
  • s_churn (float) —
  • s_tmin (float) —
  • s_tmax (float) —
  • s_noise (float, por defecto 1.0) — Factor de escala para el ruido añadido a la muestra.
  • generator (torch.Generator, opcional) — Un generador de números aleatorios.
  • per_token_timesteps (torch.Tensor, opcional) — Los pasos de tiempo para cada token en la muestra.
  • return_dict (bool, por defecto True) — Indica si se debe devolver un FlowMatchEulerDiscreteSchedulerOutput o una tupla.

Devuelve

FlowMatchEulerDiscreteSchedulerOutput o tuple

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

Predice la muestra del paso de tiempo anterior invirtiendo el SDE. Esta función propaga el proceso de difusión a partir de las salidas del modelo aprendido (con mayor frecuencia, el ruido predicho).

stretch_shift_to_terminal

< >

( t: Tensor ) → torch.Tensor

Parámetros

  • t (torch.Tensor) — Un tensor de pasos de tiempo que se estirará y desplazará.

Devuelve

torch.Tensor

Un tensor de pasos de tiempo ajustados de modo que el valor final sea igual a self.config.shift_terminal.

Estira y desplaza la programación de pasos de tiempo para garantizar que termine en el valor de configuración shift_terminal configurado.

Referencia: 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) — El parámetro mu para el desplazamiento en el tiempo.
  • sigma (float) — El parámetro sigma para el desplazamiento del tiempo.
  • t (torch.Tensor) — Los pasos de tiempo de entrada.

Devuelve

torch.Tensor

Los pasos de tiempo desplazados.

Aplicar el desplazamiento temporal a los sigmas.

Update on GitHub