Diffusers documentation
AutoencoderKLCogVideoX
AutoencoderKLCogVideoX
Le modèle d'auto-encodeur variationnel 3D (VAE) avec perte KL utilisé dans CogVideoX a été introduit dans CogVideoX: Text-to-Video Diffusion Models with An Expert Transformer par l'Université Tsinghua & ZhipuAI.
Le modèle peut être chargé à l'aide du fragment de code suivant.
from diffusers import AutoencoderKLCogVideoX
vae = AutoencoderKLCogVideoX.from_pretrained("THUDM/CogVideoX-2b", subfolder="vae", dtype=torch.float16).to("cuda") # or "mps", "xpu", "cpu"AutoencoderKLCogVideoX
classe diffusers.AutoencoderKLCogVideoX
< source >( in_channels: int = 3out_channels: int = 3down_block_types: tuple[str] = ('CogVideoXDownBlock3D', 'CogVideoXDownBlock3D', 'CogVideoXDownBlock3D', 'CogVideoXDownBlock3D')up_block_types: tuple[str] = ('CogVideoXUpBlock3D', 'CogVideoXUpBlock3D', 'CogVideoXUpBlock3D', 'CogVideoXUpBlock3D')block_out_channels: tuple[int] = (128, 256, 256, 512)latent_channels: int = 16layers_per_block: int = 3act_fn: str = 'silu'norm_eps: float = 1e-06norm_num_groups: int = 32temporal_compression_ratio: float = 4sample_height: int = 480sample_width: int = 720scaling_factor: float = 1.15258426shift_factor: float | None = Nonelatents_mean: tuple[float] | None = Nonelatents_std: tuple[float] | None = Noneforce_upcast: float = Trueuse_quant_conv: bool = Falseuse_post_quant_conv: bool = Falseinvert_scale_latents: bool = False )
Paramètres
- in_channels (int, facultatif, valeur par défaut 3) — Nombre de canaux de l'image d'entrée.
- out_channels (int, facultatif, par défaut 3) — Nombre de canaux dans la sortie.
- down_block_types (
tuple[str], facultatif, par défaut("DownEncoderBlock2D",)) — tuple des types de blocs de sous-échantillonnage. - up_block_types (
tuple[str], facultatif, par défaut("UpDecoderBlock2D",)) — tuple de types de blocs de suréchantillonnage. - block_out_channels (
tuple[int], facultatif, par défaut(64,)) — tuplet des canaux de sortie des blocs. - act_fn (
str, facultatif, par défaut"silu") — La fonction d'activation à utiliser. - sample_size (
int, facultatif, par défaut32) — Taille de l'échantillon d'entrée. - scaling_factor (
float, facultatif, valeur par défaut1.15258426) — L'écart-type par composante de l'espace latent entraîné, calculé à l'aide du premier lot du jeu d'entraînement. Il est utilisé pour mettre à l'échelle l'espace latent afin qu'il ait une variance unitaire lors de l'entraînement du modèle de diffusion. Les latents sont mis à l'échelle avec la formulez = z * scaling_factoravant d'être transmis au modèle de diffusion. Lors du décodage, les latents sont remis à l'échelle d'origine avec la formule :z = 1 / scaling_factor * z. Pour plus de détails, consultez les sections 4.3.2 et D.1 de l'article High-Resolution Image Synthesis with Latent Diffusion Models. - force_upcast (
bool, facultatif, par défautTrue) — Si activé, force le VAE à s’exécuter en float32 pour les pipelines à haute résolution d’image, tels que SD-XL. Le VAE peut être affiné / entraîné sur une plage inférieure sans perdre trop de précision, auquel casforce_upcastpeut être défini surFalse- voir : https://huggingface.co/madebyollin/sdxl-vae-fp16-fix
Un modèle VAE avec perte KL pour encoder des images en latents et décoder des représentations latentes en images. Utilisé dans CogVideoX.
Ce modèle hérite de ModelMixin. Consultez la documentation de la classe parente pour ses méthodes génériques implémentées pour tous les modèles (téléchargement ou sauvegarde, par exemple).
décoder
< source >( z: Tensorreturn_dict: bool = True ) → ~models.vae.DecoderOutput or tuple
Paramètres
- z (
torch.Tensor) — Lot d’entrée de vecteurs latents. - return_dict (
bool, facultatif, par défautTrue) — Indique s'il faut retourner un~models.vae.DecoderOutputplutôt qu'un simple tuple.
Retourne
~models.vae.DecoderOutput ou tuple
Si return_dict est True, un ~models.vae.DecoderOutput est renvoyé, sinon un simple tuple est renvoyé.
Décoder un lot d'images.
encode
< source >( x: Tensorreturn_dict: bool = True )
Encode un lot d'images en latents.
enable_tiling
< source >( tile_sample_min_height: int | None = Nonetile_sample_min_width: int | None = Nonetile_overlap_factor_height: float | None = Nonetile_overlap_factor_width: float | None = None )
Paramètres
- tile_sample_min_height (
int, facultatif) — Hauteur minimale requise pour qu'un échantillon soit séparé en tuiles le long de la dimension de hauteur. - tile_sample_min_width (
int, facultatif) — Largeur minimale requise pour qu'un échantillon soit séparé en tuiles le long de la dimension de la largeur. - tile_overlap_factor_height (
int, facultatif) — La quantité minimale de chevauchement entre deux tuiles verticales consécutives. Cela permet de s'assurer qu'aucun artefact de tuilage n'est produit le long de la dimension de hauteur. La valeur doit être comprise entre 0 et 1. Définir une valeur plus élevée peut entraîner le traitement de davantage de tuiles, ce qui ralentit le processus de décodage. - tile_overlap_factor_width (
int, facultatif) — La quantité minimale de chevauchement entre deux tuiles horizontales consécutives. Cela permet de s'assurer qu'aucun artefact de tuilage n'est produit le long de la dimension de la largeur. La valeur doit être comprise entre 0 et 1. Définir une valeur plus élevée peut entraîner le traitement de davantage de tuiles, ce qui ralentit le processus de décodage.
Active le décodage VAE par tuiles. Lorsque cette option est activée, le VAE divise le tenseur d’entrée en tuiles pour effectuer le décodage et l’encodage en plusieurs étapes. Cela est utile pour économiser une grande quantité de mémoire et pour permettre le traitement d’images plus grandes.
forward
< source >( sample: Tensorsample_posterior: bool = Falsereturn_dict: bool = Truegenerator: typing.Optional[torch.Generator] = None ) → ~models.vae.DecoderOutput or tuple
Paramètres
- sample (
torch.Tensor) — Échantillon d'entrée. - sample_posterior (
bool, facultatif, par défautFalse) — Indique s'il faut échantillonner à partir de la postérieure. - return_dict (
bool, facultatif, par défautTrue) — Indique s'il faut retourner unDecoderOutputplutôt qu'un simple tuple. - generator (
torch.Generator, facultatif) — Untorch.Generatorpour rendre l'échantillonnage déterministe.
Retourne
~models.vae.DecoderOutput ou tuple
Si return_dict est True, un ~models.vae.DecoderOutput est renvoyé, sinon un simple tuple est renvoyé.
tiled_decode
< source >( z: Tensorreturn_dict: bool = True ) → ~models.vae.DecoderOutput or tuple
Paramètres
- z (
torch.Tensor) — Lot d’entrée de vecteurs latents. - return_dict (
bool, facultatif, par défautTrue) — Indique s'il faut retourner un~models.vae.DecoderOutputplutôt qu'un simple tuple.
Retourne
~models.vae.DecoderOutput ou tuple
Si return_dict est True, un ~models.vae.DecoderOutput est renvoyé, sinon un simple tuple est renvoyé.
Décoder un lot d'images à l'aide d'un décodeur tuilé.
tiled_encode
< source >( x: Tensor ) → torch.Tensor
Encoder un lot d'images à l'aide d'un encodeur tuilé.
Lorsque cette option est activée, le VAE divise le tenseur d’entrée en tuiles pour calculer l’encodage en plusieurs étapes. Cela est utile pour maintenir une utilisation de la mémoire constante, indépendamment de la taille de l’image. Le résultat final de l’encodage par tuiles diffère de celui de l’encodage non tuilé, car chaque tuile utilise un encodeur différent. Pour éviter les artefacts de tuilage, les tuiles se chevauchent et sont fusionnées pour former une sortie lisse. Vous pouvez encore observer des variations de la taille des tuiles dans la sortie, mais elles devraient être beaucoup moins perceptibles.
AutoencoderKLOutput
classe diffusers.models.modeling_outputs.AutoencoderKLOutput
< source >( latent_dist: DiagonalGaussianDistribution )
Sortie de la méthode d'encodage d'AutoencoderKL.
DecoderOutput
classe diffusers.models.autoencoders.vae.DecoderOutput
< source >( sample: Tensorcommit_loss: typing.Optional[torch.FloatTensor] = None )
Sortie de la méthode de décodage.