Diffusers documentation

DDIMInverseScheduler

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

DDIMInverseScheduler

DDIMInverseScheduler est le planificateur inversé issu de Denoising Diffusion Implicit Models (DDIM) de Jiaming Song, Chenlin Meng et Stefano Ermon. L’implémentation s’appuie principalement sur la définition de l’inversion DDIM issue de Null-text Inversion for Editing Real Images using Guided Diffusion Models.

DDIMInverseScheduler

classe diffusers.DDIMInverseScheduler

< >

( num_train_timesteps: int = 1000beta_start: float = 0.0001beta_end: float = 0.02beta_schedule: typing.Literal['linear', 'scaled_linear', 'squaredcos_cap_v2'] = 'linear'trained_betas: numpy.ndarray | list[float] | None = Noneclip_sample: bool = Trueset_alpha_to_one: bool = Truesteps_offset: int = 0prediction_type: typing.Literal['epsilon', 'sample', 'v_prediction'] = 'epsilon'clip_sample_range: float = 1.0timestep_spacing: typing.Literal['leading', 'trailing'] = 'leading'rescale_betas_zero_snr: bool = False**kwargs )

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.0001) — Valeur de départ de beta pour l'inférence.
  • beta_end (float, par défaut 0.02) — La valeur finale de beta.
  • beta_schedule (str, par défaut "linear") — Le planning des bêtas, une correspondance entre une plage de bêtas et une séquence de bêtas pour faire avancer le modèle. Choisissez parmi linear, scaled_linear ou squaredcos_cap_v2.
  • trained_betas (np.ndarray, facultatif) — Transmettez un tableau de betas directement au constructeur pour contourner beta_start et beta_end.
  • clip_sample (bool, par défaut True) — Applique un seuil à l'échantillon prédit pour la stabilité numérique.
  • clip_sample_range (float, par défaut 1.0) — L'amplitude maximale pour le rognage des échantillons. Valable uniquement lorsque clip_sample=True.
  • set_alpha_to_one (bool, par défaut True) — Chaque étape de diffusion utilise la valeur du produit des alphas à cette étape et à l’étape précédente. Pour l’étape finale, il n’y a pas d’alpha précédent. Si cette option est True, le produit de l’alpha précédent est fixé à 0, sinon il utilise la valeur de l’alpha à l’étape num_train_timesteps - 1.
  • 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.
  • prediction_type (str, defaults to epsilon, optional) — 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 "leading") — 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.
  • rescale_betas_zero_snr (bool, par défaut False) — Indique s'il faut rééchelonner les betas pour obtenir un SNR terminal nul. Cela permet au modèle de générer des échantillons très clairs et très sombres, au lieu de se limiter à des échantillons de luminosité moyenne. Lié de manière lâche à --offset_noise.

DDIMInverseScheduler est le planificateur inverse de DDIMScheduler.

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.

scale_model_input

< >

( sample: Tensortimestep: int | None = None ) → torch.Tensor

Paramètres

  • sample (torch.Tensor) — L'échantillon d'entrée.
  • timestep (int, facultatif) — 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_timesteps

< >

( num_inference_steps: intdevice: typing.Union[str, torch.device, NoneType] = 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.

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

étape

< >

( model_output: Tensortimestep: intsample: Tensorreturn_dict: bool = True ) → ~schedulers.scheduling_ddim_inverse.DDIMInverseSchedulerOutput or tuple

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.
  • return_dict (bool, facultatif, par défaut True) — Indique s'il faut retourner un ~schedulers.scheduling_ddim_inverse.DDIMInverseSchedulerOutput ou un tuple.

Retourne

~schedulers.scheduling_ddim_inverse.DDIMInverseSchedulerOutput ou tuple

Si True, ~schedulers.scheduling_ddim_inverse.DDIMInverseSchedulerOutput est renvoyé, sinon un tuple est renvoyé 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).

Update on GitHub