Diffusers documentation

CosmosTransformer3DModel

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

CosmosTransformer3DModel

Un modèle Diffusion Transformer pour des données vidéo 3D a été introduit dans Cosmos World Foundation Model Platform for Physical AI par NVIDIA.

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

from diffusers import CosmosTransformer3DModel

transformer = CosmosTransformer3DModel.from_pretrained("nvidia/Cosmos-1.0-Diffusion-7B-Text2World", subfolder="transformer", dtype=torch.bfloat16)

CosmosTransformer3DModel

classe diffusers.CosmosTransformer3DModel

< >

( in_channels: int = 16out_channels: int = 16num_attention_heads: int = 32attention_head_dim: int = 128num_layers: int = 28mlp_ratio: float = 4.0text_embed_dim: int = 1024adaln_lora_dim: int = 256max_size: tuple = (128, 240, 240)patch_size: tuple = (1, 2, 2)rope_scale: tuple = (2.0, 1.0, 1.0)concat_padding_mask: bool = Trueextra_pos_embed_type: str | None = 'learnable'use_crossattn_projection: bool = Falsecrossattn_proj_in_channels: int = 1024encoder_hidden_states_channels: int = 1024controlnet_block_every_n: int | None = Noneimg_context_dim_in: int | None = Noneimg_context_num_tokens: int = 256img_context_dim_out: int = 2048 )

Paramètres

  • in_channels (int, par défaut 16) — Le nombre de canaux dans l'entrée.
  • out_channels (int, par défaut 16) — Le nombre de canaux dans la sortie.
  • num_attention_heads (int, par défaut 32) — Le nombre de têtes à utiliser pour l'attention multi-têtes.
  • attention_head_dim (int, par défaut 128) — Le nombre de canaux dans chaque tête d'attention.
  • num_layers (int, par défaut 28) — Le nombre de blocs de transformeurs à utiliser.
  • mlp_ratio (float, par défaut 4.0) — Le ratio de la taille de la couche cachée par rapport à la taille de l'entrée dans le réseau feedforward.
  • text_embed_dim (int, par défaut 4096) — Dimension d'entrée des embeddings de texte issus de l'encodeur de texte.
  • adaln_lora_dim (int, par défaut 256) — La dimension cachée de la couche LoRA de Normalisation Adaptative (Adaptive LayerNorm).
  • max_size (tuple[int, int, int], par défaut (128, 240, 240)) — La taille maximale des tenseurs latents d'entrée dans les dimensions temporelle, de hauteur et de largeur.
  • patch_size (tuple[int, int, int], par défaut (1, 2, 2)) — La taille des patches à utiliser pour patchifier les tenseurs latents d'entrée dans les dimensions temporelle, de hauteur et de largeur.
  • rope_scale (tuple[float, float, float], par défaut (2.0, 1.0, 1.0)) — Le facteur d'échelle à utiliser pour RoPE dans les dimensions temporelle, de hauteur et de largeur.
  • concat_padding_mask (bool, par défaut True) — Indique s'il faut concaténer le masque de bourrage aux tenseurs latents d'entrée.
  • extra_pos_embed_type (str, facultatif, par défaut learnable) — Le type d’incrustations positionnelles supplémentaires à utiliser. Peut être None ou learnable.
  • controlnet_block_every_n (int, facultatif) — Intervalle entre les blocs de transformeur qui doivent recevoir des résidus de contrôle (par exemple, 7 pour injecter après chaque septième bloc). Requis pour Cosmos Transfer2.5.
  • img_context_dim_in (int, facultatif) — La dimension du vecteur de caractéristiques du contexte d'image en entrée, c'est-à-dire le D dans [B, N, D].
  • img_context_num_tokens (int) — Le nombre de jetons dans le vecteur de caractéristiques du contexte d’image, c’est-à-dire qu’il s’agit du N dans [B, N, D]. Si img_context_dim_in n’est pas fourni, ce paramètre est ignoré.
  • img_context_dim_out (int) — La dimension de sortie de la couche de projection du contexte d’image. Si img_context_dim_in n’est pas fourni, ce paramètre est ignoré.

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

forward

< >

( hidden_states: Tensortimestep: Tensorencoder_hidden_states: Tensorblock_controlnet_hidden_states: list[torch.Tensor] | None = Noneattention_mask: typing.Optional[torch.Tensor] = Nonefps: int | None = Nonecondition_mask: typing.Optional[torch.Tensor] = Nonepadding_mask: typing.Optional[torch.Tensor] = Nonereturn_dict: bool = True )

Paramètres

  • hidden_states (torch.Tensor de forme (batch_size, num_channels, num_frames, height, width)) — hidden_states d'entrée.
  • timestep (torch.LongTensor) — Utilisé pour indiquer l'étape de débruitage.
  • 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.
  • block_controlnet_hidden_states (list de torch.Tensor, facultatif) — Une liste de tenseurs qui, si elle est spécifiée, est ajoutée aux résidus des blocs du transformeur.
  • attention_mask (torch.Tensor, facultatif) — Masque appliqué à encoder_hidden_states lors de l'attention.
  • fps (int, facultatif) — Images par seconde de la vidéo d’entrée utilisées pour calculer les embeddings positionnels rotatifs.
  • condition_mask (torch.Tensor, facultatif) — Canal de masque concaténé à hidden_states pour indiquer la région de conditionnement.
  • padding_mask (torch.Tensor, facultatif) — Masque de bourrage concaténé à hidden_states lorsque concat_padding_mask est activé.
  • 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 CosmosTransformer3DModel.

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