Diffusers documentation
AutoencoderKLAllegro
AutoencoderKLAllegro
Le modèle d'auto-encodeur variationnel (VAE) 3D avec perte KL utilisé dans Allegro a été introduit dans Allegro: Open the Black Box of Commercial-Level Video Generation Model par RhymesAI.
Le modèle peut être chargé à l'aide du fragment de code suivant.
from diffusers import AutoencoderKLAllegro
vae = AutoencoderKLAllegro.from_pretrained("rhymes-ai/Allegro", subfolder="vae", dtype=torch.float32).to("cuda") # or "mps", "xpu", "cpu"AutoencoderKLAllegro
classe diffusers.AutoencoderKLAllegro
< source >( in_channels: int = 3out_channels: int = 3down_block_types: tuple[str, ...] = ('AllegroDownBlock3D', 'AllegroDownBlock3D', 'AllegroDownBlock3D', 'AllegroDownBlock3D')up_block_types: tuple[str, ...] = ('AllegroUpBlock3D', 'AllegroUpBlock3D', 'AllegroUpBlock3D', 'AllegroUpBlock3D')block_out_channels: tuple[int, ...] = (128, 256, 512, 512)temporal_downsample_blocks: tuple[bool, ...] = (True, True, False, False)temporal_upsample_blocks: tuple[bool, ...] = (False, True, True, False)latent_channels: int = 4layers_per_block: int = 2act_fn: str = 'silu'norm_num_groups: int = 32temporal_compression_ratio: float = 4sample_size: int = 320scaling_factor: float = 0.13force_upcast: bool = True )
Paramètres
- in_channels (int, par défaut
3) — Nombre de canaux de l'image d'entrée. - out_channels (int, par défaut
3) — Nombre de canaux dans la sortie. - down_block_types (
tuple[str, ...], par défaut("AllegroDownBlock3D", "AllegroDownBlock3D", "AllegroDownBlock3D", "AllegroDownBlock3D")) — tuplet de chaînes de caractères indiquant les types de blocs de descente à utiliser. - up_block_types (
tuple[str, ...], par défaut("AllegroUpBlock3D", "AllegroUpBlock3D", "AllegroUpBlock3D", "AllegroUpBlock3D")) — tuplet de chaînes de caractères indiquant les types de blocs de remontée à utiliser. - block_out_channels (
tuple[int, ...], par défaut(128, 256, 512, 512)) — tuplet d'entiers indiquant le nombre de canaux de sortie de chaque bloc. - temporal_downsample_blocks (
tuple[bool, ...], par défaut(True, True, False, False)) — tuple de booléens indiquant dans quels blocs activer le sous-échantillonnage temporel. - latent_channels (
int, par défaut4) — Nombre de canaux dans les latents. - layers_per_block (
int, par défaut2) — Nombre de couches de resnet ou d'attention ou de convolution temporelle par bloc de descente/montée. - act_fn (
str, par défaut"silu") — La fonction d'activation à utiliser. - norm_num_groups (
int, par défaut32) — Nombre de groupes à utiliser dans les couches de normalisation. - temporal_compression_ratio (
int, par défaut4) — Ratio de compression de la dimension temporelle des échantillons. - sample_size (
int, par défaut320) — Taille latente par défaut. - scaling_factor (
float, par défaut0.13235) — 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, 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 vidéos en latents et décoder des représentations latentes en vidéos. Utilisé dans Allegro.
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, 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 de vidéos.
encode
< source >( x: Tensorreturn_dict: bool = True )
Encoder un lot de vidéos en latents.
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) — Générateur de nombres aléatoires PyTorch.
Retourne
~models.vae.DecoderOutput ou tuple
Si return_dict est True, un ~models.vae.DecoderOutput est renvoyé, sinon un simple tuple est renvoyé.
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.