Diffusers documentation

CogVideoXTransformer3DModel

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

CogVideoXTransformer3DModel

Un modèle Diffusion Transformer pour des données 3D issu de CogVideoX a été introduit dans CogVideoX: Text-to-Video Diffusion Models with An Expert Transformer par l'Université Tsinghua et ZhipuAI.

Le modèle peut être chargé à l'aide du fragment de code suivant.

from diffusers import CogVideoXTransformer3DModel

transformer = CogVideoXTransformer3DModel.from_pretrained("THUDM/CogVideoX-2b", subfolder="transformer", dtype=torch.float16).to("cuda")  # or "mps", "xpu", "cpu"

CogVideoXTransformer3DModel

classe diffusers.CogVideoXTransformer3DModel

< >

( num_attention_heads: int = 30attention_head_dim: int = 64in_channels: int = 16out_channels: int | None = 16flip_sin_to_cos: bool = Truefreq_shift: int = 0time_embed_dim: int = 512ofs_embed_dim: int | None = Nonetext_embed_dim: int = 4096num_layers: int = 30dropout: float = 0.0attention_bias: bool = Truesample_width: int = 90sample_height: int = 60sample_frames: int = 49patch_size: int = 2patch_size_t: int | None = Nonetemporal_compression_ratio: int = 4max_text_seq_length: int = 226activation_fn: str = 'gelu-approximate'timestep_activation_fn: str = 'silu'norm_elementwise_affine: bool = Truenorm_eps: float = 1e-05spatial_interpolation_scale: float = 1.875temporal_interpolation_scale: float = 1.0use_rotary_positional_embeddings: bool = Falseuse_learned_positional_embeddings: bool = Falsepatch_bias: bool = True )

Paramètres

  • num_attention_heads (int, par défaut 30) — Le nombre de têtes à utiliser pour l'attention multi-têtes.
  • attention_head_dim (int, par défaut 64) — Le nombre de canaux dans chaque tête.
  • in_channels (int, par défaut 16) — Le nombre de canaux dans l'entrée.
  • out_channels (int, facultatif, par défaut 16) — Le nombre de canaux dans la sortie.
  • flip_sin_to_cos (bool, par défaut True) — Indique s'il faut inverser le sin en cos dans l'embedding temporel.
  • time_embed_dim (int, par défaut 512) — Dimension de sortie des embeddings de pas de temps.
  • ofs_embed_dim (int, par défaut 512) — Dimension de sortie des embeddings « ofs » utilisés dans CogVideoX-5b-I2B en version 1.5
  • text_embed_dim (int, par défaut 4096) — Dimension d'entrée des embeddings de texte issus de l'encodeur de texte.
  • num_layers (int, par défaut 30) — Le nombre de blocs Transformer à utiliser.
  • dropout (float, par défaut 0.0) — La probabilité de dropout à utiliser.
  • attention_bias (bool, par défaut True) — Indique s'il faut utiliser un biais dans les couches de projection d'attention.
  • sample_width (int, par défaut 90) — La largeur des latents d'entrée.
  • sample_height (int, par défaut 60) — La hauteur des latents d'entrée.
  • sample_frames (int, par défaut 49) — Le nombre de frames dans les latents d’entrée. Notez que ce paramètre a été initialisé à tort à 49 au lieu de 13, car CogVideoX traitait 13 frames latentes à la fois dans ses réglages par défaut et recommandés, mais sa valeur ne peut pas être corrigée afin de garantir la rétrocompatibilité. Pour créer un transformer avec K frames latentes, la valeur correcte à passer ici est : ((K - 1) * temporal_compression_ratio + 1).
  • patch_size (int, par défaut 2) — La taille des patches à utiliser dans la couche d'embedding de patches.
  • temporal_compression_ratio (int, par défaut 4) — Le ratio de compression le long de la dimension temporelle. Consultez la documentation de sample_frames.
  • max_text_seq_length (int, par défaut 226) — La longueur de séquence maximale des embeddings de texte en entrée.
  • activation_fn (str, par défaut "gelu-approximate") — Fonction d'activation à utiliser dans le réseau de neurones à propagation avant.
  • timestep_activation_fn (str, par défaut "silu") — Fonction d'activation à utiliser lors de la génération des embeddings de timestep.
  • norm_elementwise_affine (bool, par défaut True) — Indique s'il faut utiliser l'affine élément par élément dans les couches de normalisation.
  • norm_eps (float, par défaut 1e-5) — La valeur epsilon à utiliser dans les couches de normalisation.
  • spatial_interpolation_scale (float, par défaut 1.875) — Facteur d'échelle à appliquer aux embeddings positionnels 3D le long des dimensions spatiales.
  • temporal_interpolation_scale (float, par défaut 1.0) — Facteur d'échelle à appliquer dans les embeddings positionnels 3D le long des dimensions temporelles.

Un modèle Transformer pour des données de type vidéo dans CogVideoX.

forward

< >

( hidden_states: Tensorencoder_hidden_states: Tensortimestep: typing.Union[int, float, torch.LongTensor]timestep_cond: typing.Optional[torch.Tensor] = Noneofs: typing.Union[int, float, torch.LongTensor, NoneType] = Noneimage_rotary_emb: tuple[torch.Tensor, torch.Tensor] | None = Noneattention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = True )

Paramètres

  • hidden_states (torch.Tensor de forme (batch_size, num_frames, channels, height, width)) — hidden_states d'entrée.
  • encoder_hidden_states (torch.Tensor de forme (batch_size, sequence_len, embed_dims)) — Embeddings conditionnels (embeddings calculés à partir des conditions d’entrée telles que les prompts) à utiliser.
  • timestep (torch.LongTensor) — Utilisé pour indiquer l'étape de débruitage.
  • timestep_cond (torch.Tensor, facultatif) — Embeddings conditionnels pour le timestep. S'ils sont fournis, les embeddings seront additionnés aux échantillons passés à travers la couche self.time_embedding pour obtenir les embeddings finaux de timestep.
  • ofs (torch.Tensor, facultatif) — Embeddings de décalage utilisés dans CogVideoX-5b-I2V.
  • image_rotary_emb (tuple de torch.Tensor, facultatif) — Emplacements positionnels rotatifs précalculés.
  • attention_kwargs (dict, facultatif) — Un dictionnaire de kwargs qui, s'il est spécifié, est transmis à l'AttentionProcessor défini sous self.processor dans diffusers.models.attention_processor.
  • return_dict (bool, facultatif, par défaut True) — Indique s'il faut retourner un ~models.transformer_2d.Transformer2DModelOutput plutôt qu'un simple tuple.

La méthode forward du CogVideoXTransformer3DModel.

fuse_qkv_projections

< >

( )

Active les projections QKV fusionnées. Pour les modules d'auto-attention, toutes les matrices de projection (c'est-à-dire requête, clé, valeur) sont fusionnées. Pour les modules d'attention croisée, les matrices de projection des clés et des valeurs sont fusionnées.

> Cette API est 🧪 expérimentale.

unfuse_qkv_projections

< >

( )

Désactive la projection QKV fusionnée si elle est activée.

> Cette API est 🧪 expérimentale.

Transformer2DModelOutput

classe diffusers.models.modeling_outputs.Transformer2DModelOutput

< >

( sample: torch.Tensor )

Paramètres

  • sample (torch.Tensor de forme (batch_size, num_channels, height, width) ou (batch size, num_vector_embeds - 1, num_latent_pixels) si Transformer2DModel est discret) — Les états cachés en sortie, conditionnés par l'entrée encoder_hidden_states. Si discret, renvoie les distributions de probabilité pour les pixels latents non bruités.

La sortie de Transformer2DModel.

Update on GitHub