Diffusers documentation
FlowMatchEulerDiscreteScheduler
FlowMatchEulerDiscreteScheduler
FlowMatchEulerDiscreteScheduler est basé sur l'échantillonnage par correspondance de flux introduit dans Stable Diffusion 3.
FlowMatchEulerDiscreteScheduler
classe 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 )
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. Augmenterbase_shiftré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. Augmentermax_shiftencourage 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
< source >( timestep: typing.Union[float, torch.FloatTensor]schedule_timesteps: typing.Optional[torch.FloatTensor] = None ) → int
Obtenir l'index pour l'étape de temps donnée.
scale_noise
< source >( sample: FloatTensortimestep: typing.Union[float, torch.FloatTensor]noise: typing.Optional[torch.FloatTensor] = None ) → torch.FloatTensor
Processus avant dans le flow-matching
set_begin_index
< source >( begin_index: int = 0 )
Définit l'index de début pour le planificateur. Cette fonction doit être exécutée depuis le pipeline avant l'inférence.
Définit la valeur de décalage pour le planificateur.
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 )
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 (
stroutorch.device, facultatif) — L'appareil vers lequel les timesteps doivent être déplacés. SiNone, les timesteps ne sont pas déplacés. - sigmas (
list[float], facultatif) — Valeurs personnalisées pour les sigmas à utiliser à chaque étape de diffusion. SiNone, 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. SiNone, 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
< 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
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éfautTrue) — Indique s'il faut retourner unFlowMatchEulerDiscreteSchedulerOutputou 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
< source >( t: Tensor ) → torch.Tensor
É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.
time_shift
< source >( mu: floatsigma: floatt: Tensor ) → torch.Tensor
Appliquer un décalage temporel aux sigmas.