Diffusers documentation

KDPM2DiscreteScheduler

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

KDPM2DiscreteScheduler

Le KDPM2DiscreteScheduler s’inspire de l’article Elucidating the Design Space of Diffusion-Based Generative Models, et le planificateur a été porté et créé par Katherine Crowson.

Le code source original peut être trouvé sur crowsonkb/k-diffusion.

KDPM2DiscreteScheduler

classe diffusers.KDPM2DiscreteScheduler

< >

( num_train_timesteps: int = 1000beta_start: float = 0.00085beta_end: float = 0.012beta_schedule: str = 'linear'trained_betas: numpy.ndarray | list[float] | None = Noneuse_karras_sigmas: bool = Falseuse_exponential_sigmas: bool = Falseuse_beta_sigmas: bool = Falseprediction_type: str = 'epsilon'timestep_spacing: str = 'linspace'steps_offset: int = 0 )

Paramètres

  • num_train_timesteps (int, par défaut 1000) — Le nombre d'étapes de diffusion pour entraîner le modèle.
  • beta_start (float, par défaut 0.00085) — La valeur de départ de beta pour l'inférence.
  • beta_end (float, par défaut 0.012) — La valeur finale de beta.
  • beta_schedule (str, par défaut "linear") — Le plan de beta, une correspondance entre une plage de beta et une séquence de betas pour faire avancer le modèle. Choisissez entre linear ou scaled_linear.
  • trained_betas (np.ndarray ou list[float], facultatif) — Transmettez un tableau de betas directement au constructeur pour contourner beta_start et beta_end.
  • 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 pendant le processus d'échantillonnage. Si True, les sigmas sont déterminés selon une séquence de niveaux de bruit {σi}.
  • 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 pendant le processus d'é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 pendant le processus d'échantillonnage. Consultez Beta Sampling is All You Need pour plus d'informations.
  • prediction_type (str, defaults to "epsilon") — Prediction type of the scheduler function; can be epsilon (predicts the noise of the diffusion process), sample (directly predicts the noisy sample) or v_prediction` (see section 2.4 of Imagen Video paper).
  • timestep_spacing (str, par défaut "linspace") — La manière dont les timesteps doivent être mis à l'échelle. Reportez-vous au Tableau 2 de l'article Common Diffusion Noise Schedules and Sample Steps are Flawed pour plus d'informations.
  • steps_offset (int, par défaut 0) — Un décalage ajouté aux étapes d'inférence, tel que requis par certaines familles de modèles.

KDPM2DiscreteScheduler s’inspire de DPMSolver2 et de l’Algorithme 2 de l’article Elucidating the Design Space of Diffusion-Based Generative Models.

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.

add_noise

< >

( original_samples: Tensornoise: Tensortimesteps: Tensor ) → torch.Tensor

Paramètres

  • original_samples (torch.Tensor) — Les échantillons originaux auxquels du bruit sera ajouté.
  • noise (torch.Tensor) — Le tenseur de bruit à ajouter aux échantillons d'origine.
  • timesteps (torch.Tensor) — Les timesteps auxquels ajouter du bruit, déterminant le niveau de bruit à partir de l'ordonnancement.

Retourne

torch.Tensor

Les échantillons bruités avec un bruit ajouté mis à l'échelle selon le calendrier des pas de temps.

Ajouter du bruit aux échantillons d'origine selon le calendrier de bruit aux pas de temps spécifiés.

index_for_timestep

< >

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

Paramètres

  • timestep (float ou torch.Tensor) — La valeur de timestep à rechercher dans le planning.
  • schedule_timesteps (torch.Tensor, facultatif) — Le calendrier des timesteps à explorer. Si None, utilise self.timesteps.

Retourne

int

L'indice de la pas de temps dans le planning. Pour la toute première étape, renvoie le deuxième indice si plusieurs correspondances existent, afin d'éviter de sauter un sigma lors d'un démarrage en cours de planning (par exemple, pour l'image-vers-image).

Trouver l'index d'une étape de temps donnée dans le calendrier des étapes de temps.

scale_model_input

< >

( sample: Tensortimestep: typing.Union[float, torch.Tensor] ) → torch.Tensor

Paramètres

  • sample (torch.Tensor) — L'échantillon d'entrée.
  • timestep (float ou torch.Tensor) — L'étape temporelle actuelle dans la chaîne de diffusion.

Retourne

torch.Tensor

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

Assure l'interchangeabilité avec les planificateurs qui doivent mettre à l'échelle l'entrée du modèle de débruitage en fonction de l'étape temporelle actuelle.

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_timesteps

< >

( num_inference_steps: intdevice: typing.Union[str, torch.device, NoneType] = Nonenum_train_timesteps: int | None = None )

Paramètres

  • num_inference_steps (int) — 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.
  • num_train_timesteps (int, facultatif) — Le nombre d'étapes de diffusion utilisées pour entraîner le modèle. Si None, self.config.num_train_timesteps est utilisé.

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

étape

< >

( model_output: typing.Union[torch.Tensor, numpy.ndarray]timestep: typing.Union[float, torch.Tensor]sample: typing.Union[torch.Tensor, numpy.ndarray]return_dict: bool = True )

Paramètres

  • model_output (torch.Tensor ou np.ndarray) — La sortie directe du modèle de diffusion appris.
  • timestep (float ou torch.Tensor) — L'étape discrète actuelle dans la chaîne de diffusion.
  • sample (torch.Tensor ou np.ndarray) — Une instance actuelle d'un échantillon créée par le processus de diffusion.
  • return_dict (bool, par défaut True) — Indique s'il faut retourner un KDPM2DiscreteSchedulerOutput ou un tuple.

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).

SchedulerOutput

classe diffusers.schedulers.scheduling_utils.SchedulerOutput

< >

( prev_sample: Tensor )

Paramètres

  • prev_sample (torch.Tensor de forme (batch_size, num_channels, height, width) pour les images) — Échantillon calculé (x_{t-1}) de l'étape temporelle précédente. prev_sample doit être utilisé comme entrée du modèle suivante dans la boucle de débruitage.

Classe de base pour la sortie de la fonction step d’un planificateur.

Update on GitHub