Diffusers documentation
FlowMatchEulerDiscreteScheduler
FlowMatchEulerDiscreteScheduler
FlowMatchEulerDiscreteScheduler se basa en el muestreo por flow-matching introducido en Stable Diffusion 3.
FlowMatchEulerDiscreteScheduler
clase diffusers.FlowMatchEulerDiscreteScheduler
< source >( 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. Aumentarbase_shiftreduce 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. Aumentarmax_shiftfomenta 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
< source >( timestep: typing.Union[float, torch.FloatTensor]schedule_timesteps: typing.Optional[torch.FloatTensor] = None ) → int
Parámetros
- timestep (
floatotorch.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 esNone, 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
< source >( sample: FloatTensortimestep: typing.Union[float, torch.FloatTensor]noise: typing.Optional[torch.FloatTensor] = None ) → torch.FloatTensor
Proceso de avance en flow-matching
set_begin_index
< source >( begin_index: int = 0 )
Establece el índice inicial para el programador. Esta función debe ejecutarse desde la tubería antes de la inferencia.
set_shift
< source >( shift: float )
Establece el valor de desplazamiento para el programador.
set_timesteps
< source >( 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 (
strotorch.device, opcional) — El dispositivo al que deben moverse los timesteps. Si esNone, los timesteps no se mueven. - sigmas (
list[float], opcional) — Valores personalizados para sigmas que se usarán en cada paso de difusión. Si esNone, 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 esNone, los timesteps se calculan automáticamente.
Establece los pasos discretos utilizados para la cadena de difusión (para ejecutarse antes de la inferencia).
paso
< source >( 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 defectoTrue) — Indica si se debe devolver unFlowMatchEulerDiscreteSchedulerOutputo 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
< source >( t: Tensor ) → torch.Tensor
Estira y desplaza la programación de pasos de tiempo para garantizar que termine en el valor de configuración shift_terminal configurado.
time_shift
< source >( mu: floatsigma: floatt: Tensor ) → torch.Tensor
Aplicar el desplazamiento temporal a los sigmas.