Diffusers documentation
CosmosTransformer3DModel
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
< source >( 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éfaut16) — Le nombre de canaux dans l'entrée. - out_channels (
int, par défaut16) — Le nombre de canaux dans la sortie. - num_attention_heads (
int, par défaut32) — Le nombre de têtes à utiliser pour l'attention multi-têtes. - attention_head_dim (
int, par défaut128) — Le nombre de canaux dans chaque tête d'attention. - num_layers (
int, par défaut28) — Le nombre de blocs de transformeurs à utiliser. - mlp_ratio (
float, par défaut4.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éfaut4096) — Dimension d'entrée des embeddings de texte issus de l'encodeur de texte. - adaln_lora_dim (
int, par défaut256) — 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éfautTrue) — Indique s'il faut concaténer le masque de bourrage aux tenseurs latents d'entrée. - extra_pos_embed_type (
str, facultatif, par défautlearnable) — Le type d’incrustations positionnelles supplémentaires à utiliser. Peut êtreNoneoulearnable. - controlnet_block_every_n (
int, facultatif) — Intervalle entre les blocs de transformeur qui doivent recevoir des résidus de contrôle (par exemple,7pour 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]. Siimg_context_dim_inn’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. Siimg_context_dim_inn’est pas fourni, ce paramètre est ignoré.
Un modèle Transformer pour des données de type vidéo utilisé dans Cosmos.
forward
< source >( 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.Tensorde forme(batch_size, num_channels, num_frames, height, width)) —hidden_statesd'entrée. - timestep (
torch.LongTensor) — Utilisé pour indiquer l'étape de débruitage. - encoder_hidden_states (
torch.Tensorde 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 (
listdetorch.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_stateslors 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_statespour indiquer la région de conditionnement. - padding_mask (
torch.Tensor, facultatif) — Masque de bourrage concaténé àhidden_stateslorsqueconcat_padding_maskest activé. - return_dict (
bool, facultatif, par défautTrue) — Indique s'il faut retourner un~models.transformer_2d.Transformer2DModelOutputplutôt qu'un simple tuple.
La méthode forward du CosmosTransformer3DModel.
Transformer2DModelOutput
classe diffusers.models.modeling_outputs.Transformer2DModelOutput
< source >( sample: torch.Tensor )
Paramètres
- sample (
torch.Tensorde 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éeencoder_hidden_states. Si discret, renvoie les distributions de probabilité pour les pixels latents non bruités.
La sortie de Transformer2DModel.