Diffusers documentation
HeliosScheduler
HeliosScheduler
HeliosScheduler est basé sur l'échantillonnage par correspondance de flux pyramidale introduit dans Helios.
HeliosScheduler
classe diffusers.HeliosScheduler
< source >( num_train_timesteps: int = 1000shift: float = 1.0stages: int = 3stage_range: list = [0, 0.3333333333333333, 0.6666666666666666, 1]gamma: float = 0.3333333333333333thresholding: bool = Falseprediction_type: str = 'flow_prediction'solver_order: int = 2predict_x0: bool = Truesolver_type: str = 'bh2'lower_order_final: bool = Truedisable_corrector: list = []solver_p: SchedulerMixin = Noneuse_flow_sigmas: bool = Truescheduler_type: str = 'unipc'use_dynamic_shifting: bool = Falsetime_shift_type: typing.Literal['exponential', 'linear'] = 'exponential' )
convert_model_output
< source >( model_output: Tensor*argssample: Tensor = Nonesigma: Tensor = None**kwargs ) → torch.Tensor
Paramètres
- model_output (
torch.Tensor) — La sortie directe du modèle de diffusion appris. - timestep (
int) — L'étape discrète actuelle dans la chaîne de diffusion. - sample (
torch.Tensor) — Une instance actuelle d'un échantillon créé par le processus de diffusion. - sigma (
torch.Tensor, facultatif) — La valeur sigma de l'étape actuelle dans le calendrier de bruit.
Retourne
torch.Tensor
La sortie du modèle converti.
Convertir la sortie du modèle vers le type correspondant dont l'algorithme UniPC a besoin.
initialiser les timesteps et les sigmas globaux
Initialiser les timesteps pour chaque étape
multistep_uni_c_bh_update
< source >( this_model_output: Tensor*argslast_sample: Tensor = Nonethis_sample: Tensor = Noneorder: int = Nonesigma_before: Tensor = Nonesigma: Tensor = None**kwargs ) → torch.Tensor
Paramètres
- this_model_output (
torch.Tensor) — Les sorties du modèle àx_t. - this_timestep (
int) — L'étape temporelle actuellet. - last_sample (
torch.Tensor) — L'échantillon généré avant le dernier prédicteurx_{t-1}. - this_sample (
torch.Tensor) — L'échantillon généré après le dernier prédicteurx_{t}. - order (
int) — La valeur depde UniC-p à cette étape. L'ordre d'exactitude effectif doit êtreorder + 1. - sigma_before (
torch.Tensor, facultatif) — Le sigma de l'étape précédente dans le calendrier de bruit. - sigma (
torch.Tensor, facultatif) — La valeur sigma de l'étape actuelle dans le calendrier de bruit.
Retourne
torch.Tensor
Le tenseur d'échantillon corrigé à l'étape temporelle actuelle.
Une étape pour la version UniC (B(h)).
multistep_uni_p_bh_update
< source >( model_output: Tensor*argssample: Tensor = Noneorder: int = Nonesigma: Tensor = Nonesigma_next: Tensor = None**kwargs ) → torch.Tensor
Paramètres
- model_output (
torch.Tensor) — La sortie directe du modèle de diffusion appris à l'étape temporelle actuelle. - prev_timestep (
int) — L'étape discrète précédente dans la chaîne de diffusion. - sample (
torch.Tensor) — Une instance actuelle d'un échantillon créé par le processus de diffusion. - order (
int) — L’ordre de UniP à ce pas de temps (correspond au p de UniPC-p). - sigma (
torch.Tensor, facultatif) — La valeur sigma de l'étape actuelle dans le calendrier de bruit. - sigma_next (
torch.Tensor, facultatif) — Le sigma de l'étape suivante dans le calendrier de bruit.
Retourne
torch.Tensor
Le tenseur d'échantillon à l'étape temporelle précédente.
Une étape pour UniP (version B(h)). Sinon, self.solver_p est utilisé si spécifié.
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.
set_timesteps
< source >( num_inference_steps: intstage_index: int | None = Nonedevice: typing.Union[str, torch.device] = Nonesigmas: bool | None = Nonemu: bool | None = Noneis_amplify_first_chunk: bool = False )
Définir les timesteps et les sigmas pour chaque étape
time_shift
< source >( mu: floatsigma: floatt: Tensor ) → torch.Tensor
Appliquer un décalage temporel aux sigmas.
scheduling_helios
Update on GitHub