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.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

FlowMatchEulerDiscreteScheduler

FlowMatchEulerDiscreteScheduler est basé sur l'échantillonnage par correspondance de flux introduit dans 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 )

Paramètres

  • num_train_timesteps (int, par défaut 1000) — Le nombre d'étapes de diffusion pour entraîner le modèle.
  • shift (float, par défaut 1.0) — La valeur de décalage pour l'ordonnancement des pas de temps.
  • use_dynamic_shifting (bool, par défaut False) — Indique s'il faut appliquer un décalage des timesteps en temps réel en fonction de la résolution de l'image.
  • base_shift (float, par défaut 0.5) — Valeur destinée à stabiliser la génération d’images. Augmenter base_shift réduit la variation et l’image devient plus cohérente avec la sortie souhaitée.
  • max_shift (float, par défaut 1.15) — Variation autorisée appliquée aux vecteurs latents. Augmenter max_shift encourage une plus grande variation et l’image peut devenir plus exagérée ou stylisée.
  • base_image_seq_len (int, par défaut 256) — La longueur de séquence de base de l'image.
  • max_image_seq_len (int, par défaut 4096) — La longueur maximale de la séquence d'image.
  • invert_sigmas (bool, par défaut False) — Indique s'il faut inverser les sigmas.
  • shift_terminal (float, par défaut None) — Valeur finale de l'horizon temporel décalé.
  • use_karras_sigmas (bool, par défaut False) — Indique s'il faut utiliser les sigmas de Karras pour les tailles de pas dans le calendrier de bruit lors de l'échantillonnage.
  • use_exponential_sigmas (bool, par défaut False) — Indique s'il faut utiliser des sigmas exponentiels pour les tailles de pas dans le calendrier de bruit lors de l'échantillonnage.
  • use_beta_sigmas (bool, par défaut False) — Indique s'il faut utiliser des sigmas bêta pour les tailles de pas dans le calendrier de bruit lors de l'échantillonnage.
  • time_shift_type (str, par défaut “exponential”) — Le type de décalage dynamique des pas de temps dépendant de la résolution à appliquer. Soit “exponential”, soit “linear”.
  • stochastic_sampling (bool, par défaut False) — Indique s'il faut utiliser l'échantillonnage stochastique.

Planificateur Euler.

Ce modèle hérite de SchedulerMixin et ConfigMixin. Consultez la documentation de la classe parente pour les méthodes génériques que la bibliothèque implémente pour tous les planificateurs, telles que le chargement et l'enregistrement.

index_for_timestep

< >

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

Paramètres

  • timestep (float ou torch.FloatTensor) — Le timestep pour lequel trouver l'index.
  • schedule_timesteps (torch.FloatTensor, facultatif) — Les timesteps du planning à utiliser pour la validation. Si None, les timesteps du planificateur sont utilisés.

Retourne

int

L'indice de la pas de temps.

Obtenir l'index pour l'étape de temps donnée.

scale_noise

< >

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

Paramètres

  • sample (torch.FloatTensor) — L'échantillon d'entrée.
  • timestep (torch.FloatTensor) — L'étape temporelle actuelle dans la chaîne de diffusion.
  • noise (torch.FloatTensor) — Le tenseur de bruit.

Retourne

torch.FloatTensor

Un échantillon d'entrée mis à l'échelle.

Processus avant dans le flow-matching

set_begin_index

< >

( begin_index: int = 0 )

Paramètres

  • begin_index (int, par défaut 0) — L'index de début pour le planificateur.

Définit l'index de début pour le planificateur. Cette fonction doit être exécutée depuis le pipeline avant l'inférence.

set_shift

< >

( shift: float )

Paramètres

  • shift (float) — La valeur de décalage à définir.

Définit la valeur de décalage pour le planificateur.

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 )

Paramètres

  • num_inference_steps (int, facultatif) — Le nombre d'étapes de diffusion utilisées lors de la génération d'échantillons avec un modèle pré-entraîné.
  • device (str ou torch.device, facultatif) — L'appareil vers lequel les timesteps doivent être déplacés. Si None, les timesteps ne sont pas déplacés.
  • sigmas (list[float], facultatif) — Valeurs personnalisées pour les sigmas à utiliser à chaque étape de diffusion. Si None, les sigmas sont calculés automatiquement.
  • mu (float, facultatif) — Détermine la quantité de décalage appliquée aux sigmas lors de l’application d’un décalage des pas de temps dépendant de la résolution.
  • timesteps (list[float], facultatif) — Valeurs personnalisées des timesteps à utiliser pour chaque étape de diffusion. Si None, les timesteps sont calculés automatiquement.

Définit les pas de temps discrets utilisés pour la chaîne de diffusion (à exécuter avant l'inférence).

étape

< >

( 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

Paramètres

  • model_output (torch.FloatTensor) — La sortie directe du modèle de diffusion appris.
  • timestep (float) — L'étape discrète actuelle dans la chaîne de diffusion.
  • sample (torch.FloatTensor) — Une instance actuelle d'un échantillon créé par le processus de diffusion.
  • s_churn (float) —
  • s_tmin (float) —
  • s_tmax (float) —
  • s_noise (float, par défaut 1.0) — Facteur d'échelle pour le bruit ajouté à l'échantillon.
  • generator (torch.Generator, facultatif) — Un générateur de nombres aléatoires.
  • per_token_timesteps (torch.Tensor, facultatif) — Les timesteps pour chaque jeton de l'échantillon.
  • return_dict (bool, par défaut True) — Indique s'il faut retourner un FlowMatchEulerDiscreteSchedulerOutput ou un tuple.

Retourne

FlowMatchEulerDiscreteSchedulerOutput ou tuple

Si True est retourné, FlowMatchEulerDiscreteSchedulerOutput est retourné, sinon un tuple est retourné dont le premier élément est le tenseur d'échantillon.

Prédit l'échantillon de l'étape temporelle précédente en inversant l'EDS. Cette fonction propage le processus de diffusion à partir des sorties du modèle appris (le plus souvent le bruit prédit).

stretch_shift_to_terminal

< >

( t: Tensor ) → torch.Tensor

Paramètres

  • t (torch.Tensor) — Un tenseur de pas de temps à étirer et décaler.

Retourne

torch.Tensor

Un tenseur de pas de temps ajustés tel que la valeur finale soit égale à self.config.shift_terminal.

Étire et décale le calendrier des pas de temps pour s'assurer qu'il se termine à la valeur de configuration shift_terminal configurée.

Référence : https://github.com/Lightricks/LTX-Video/blob/a01a171f8fe3d99dce2728d60a73fecf4d4238ae/ltx_video/schedulers/rf.py#L51

time_shift

< >

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

Paramètres

  • mu (float) — Le paramètre mu pour le décalage temporel.
  • sigma (float) — Le paramètre sigma pour le décalage temporel.
  • t (torch.Tensor) — Les pas de temps d'entrée.

Retourne

torch.Tensor

Les pas de temps décalés dans le temps.

Appliquer un décalage temporel aux sigmas.

Update on GitHub