Diffusers documentation

MiniMaxH3Scheduler

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

MiniMaxH3Scheduler

MiniMaxH3Scheduler est le planificateur Euler de flux rectifié (eta = 0) avec un décalage exponentiel de sigma utilisé par MiniMax-H3, sigma' = s * sigma / (1 + (s - 1) * sigma).

Les pipelines MiniMax-H3 enregistrent deux d’entre eux, car les latents vidéo et audio suivent deux calendriers distincts au sein d’un seul appel au transformateur par étape : scheduler porte le calendrier vidéo (shift=12.0 dans les points de contrôle publiés) et audio_scheduler le calendrier audio (shift=3.0).

MiniMaxH3Scheduler

classe diffusers.MiniMaxH3Scheduler

< >

( shift: float = 12.0stochastic_sampling: bool = Falseshift_provided_sigmas: bool | None = None )

Paramètres

  • shift (float, par défaut 12.0) — Décalage exponentiel appliqué à la grille des sigmas, sigma' = s*sigma / (1 + (s-1)*sigma). Les points de contrôle publiés utilisent 12.0 pour les latents vidéo et 3.0 pour les latents audio.
  • stochastic_sampling (bool, par défaut False) — Remplace le mélange d’Euler par une mise à jour de re-bruitage : prédit l’échantillon propre, puis le re-bruit jusqu’au sigma suivant avec du bruit frais. Les adaptateurs Pika H3 Flex à peu d’étapes ont été entraînés pour cette mise à jour ; ce n’est pas le cas des points de contrôle de base.
  • shift_provided_sigmas (bool, facultatif) — Indique si les sigmas explicites passés à set_timesteps() constituent une grille de base que le planificateur décale, comme sa grille linspace, ou un calendrier final utilisé tel quel. Si non défini, le calendrier est utilisé tel quel avec un avertissement de dépréciation ; la valeur par défaut devient True dans la version 0.44.0.

Planificateur Euler de flux rectifié (eta = 0) avec un décalage exponentiel de sigma, tel que utilisé par MiniMax-H3.

index_for_timestep

< >

( timestep: typing.Union[float, torch.Tensor] ) → int

Paramètres

  • timestep (float ou torch.Tensor) — Une valeur tirée de self.timesteps. L’ordonnancement est strictement croissant en t, donc la correspondance est unique.

Retourne

int

L'indice de timestep.

Associer une valeur de pas de temps à son index dans le calendrier.

scale_noise

< >

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

Paramètres

  • sample (torch.FloatTensor) — L'échantillon propre x_0.
  • timestep (float ou torch.FloatTensor) — Le temps cible dans [0, 1] ; 1 renvoie sample inchangé.
  • noise (torch.FloatTensor) — Le bruit à mélanger.

Retourne

torch.FloatTensor

L'échantillon bruité.

Processus avant du flux rectifié, selon la convention t de MiniMax-H3 : x_t = t*x_0 + (1 - t)*noise.

MiniMax-H3 utilise cela pour ajouter du bruit à ses ancres de conditionnement, où t est le niveau noise_aug et non une entrée du planning, de sorte que timestep est pris à la lettre et n'est pas recherché dans self.timesteps.

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.

set_shift

< >

( shift: float )

Paramètres

  • shift (float) — Le décalage exponentiel à utiliser pour le prochain planning.

Remplace le décalage sigma configuré ; à appeler avant set_timesteps().

MiniMax-H3 expose cette valeur par requête sous la forme de flow_shift (vidéo) / audio_flow_shift (audio).

set_timesteps

< >

( num_inference_steps: int | None = Nonedevice: typing.Union[str, torch.device, NoneType] = Nonesigmas: typing.Union[list[float], torch.Tensor, NoneType] = None )

Paramètres

  • num_inference_steps (int, facultatif) — Nombre de points de la grille de sigma, le terminal 0 inclus. Ignoré lorsque sigmas est fourni.
  • device (str ou torch.device, facultatif) — Appareil sur lequel les tenseurs du planning sont déplacés. La grille elle-même est toujours construite sur CPU en float32 afin que le planning ne dépende pas de l'accélérateur.
  • sigmas (list[float] ou torch.Tensor, facultatif) — Une grille explicite, strictement décroissante et se terminant à 0.0. Avec shift_provided_sigmas=True, il s’agit d’une grille de base dans [0, 1] qui subit le décalage comme la grille linspace ; sinon, elle est utilisée telle quelle (défaut obsolète).

Construire le calendrier sigma / timestep.

La grille est linspace(1, 0, num_inference_steps) passée à travers le décalage exponentiel, avec les doublons consécutifs fusionnés, ou les sigmas explicites, décalés également lorsque shift_provided_sigmas est défini. Le 0 terminal fait déjà partie de la grille — le décalage mappe 0 exactement sur 0 — de sorte que le planning contient num_inference_steps sigmas et pilote num_inference_steps - 1 évaluations du modèle, exposées sous la forme self.timesteps = 1 - sigmas[:-1].

étape

< >

( model_output: FloatTensortimestep: typing.Union[float, torch.FloatTensor]sample: FloatTensorgenerator: typing.Optional[torch.Generator] = Nonereturn_dict: bool = True ) → MiniMaxH3SchedulerOutput or tuple

Paramètres

  • model_output (torch.FloatTensor) — Prédiction de la vitesse du transformer à l'instant timestep.
  • timestep (float ou torch.FloatTensor) — L'étape temporelle actuelle, l'une des valeurs de self.timesteps (donc timestep == 1 - sigma).
  • sample (torch.FloatTensor) — L'échantillon actuel x_t.
  • generator (torch.Generator, facultatif) — Le générateur à partir duquel le bruit frais est tiré avec stochastic_sampling ; inutilisé dans le cas contraire.
  • return_dict (bool, par défaut True) — Indique s'il faut retourner un MiniMaxH3SchedulerOutput plutôt qu'un simple tuple.

Retourne

MiniMaxH3SchedulerOutput ou tuple

l'échantillon pour l'étape suivante.

Effectuez une étape d'Euler (eta = 0) ou une étape de re-bruitage avec stochastic_sampling.

La sortie du modèle est une vitesse orientée vers les données, de sorte que l'estimation débruitée est x0 = x_t + (1 - t) * v — notez le +, contrairement à la convention habituelle de flow-match. La mise à jour est ensuite le mélange x_next = r*x_t + (1 - r)*x0 avec r = sigma_next / sigma, évalué en float32 pour les échantillons en demi-précision. Avec stochastic_sampling, la mise à jour est x_next = (1 - sigma_next) * x0 + sigma_next * noise avec du bruit frais issu de generator, le tout en float32, de sorte que la dernière étape (sigma_next = 0) renvoie x0.

MiniMaxH3SchedulerOutput

classe diffusers.schedulers.scheduling_minimax_h3.MiniMaxH3SchedulerOutput

< >

( prev_sample: FloatTensor )

Paramètres

  • prev_sample (torch.FloatTensor) — Échantillon calculé x_{t+1} pour l'étape suivante de la boucle de débruitage.

Classe de sortie pour la sortie de la fonction step du planificateur.

Update on GitHub