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

Um modelo Diffusion Transformer para dados de vídeo 3D foi introduzido em Cosmos World Foundation Model Platform for Physical AI pela NVIDIA.

O modelo pode ser carregado com o seguinte trecho de código.

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 )

Parâmetros

  • in_channels (int, padrão 16) — O número de canais na entrada.
  • out_channels (int, padrão 16) — O número de canais na saída.
  • num_attention_heads (int, padrão 32) — O número de cabeças a serem usadas para a atenção multi-cabeça.
  • attention_head_dim (int, padrão 128) — O número de canais em cada cabeça de atenção.
  • num_layers (int, padrão 28) — O número de blocos de transformadores a serem usados.
  • mlp_ratio (float, padrão 4.0) — A proporção entre o tamanho da camada oculta e o tamanho da entrada na rede feedforward.
  • text_embed_dim (int, padrão 4096) — Dimensão de entrada dos embeddings de texto do codificador de texto.
  • adaln_lora_dim (int, padrão 256) — A dimensão oculta da camada Adaptive LayerNorm LoRA.
  • max_size (tuple[int, int, int], padrão (128, 240, 240)) — O tamanho máximo dos tensores latentes de entrada nas dimensões temporal, altura e largura.
  • patch_size (tuple[int, int, int], padrão (1, 2, 2)) — O tamanho do patch a ser usado para aplicar patching aos tensores latentes de entrada nas dimensões temporal, de altura e de largura.
  • rope_scale (tuple[float, float, float], padrão (2.0, 1.0, 1.0)) — O fator de escala a ser usado para o RoPE nas dimensões temporal, de altura e de largura.
  • concat_padding_mask (bool, padrão True) — Se deve concatenar a máscara de preenchimento aos tensores latentes de entrada.
  • extra_pos_embed_type (str, opcional, padrão learnable) — O tipo de embeddings posicionais extras a ser usado. Pode ser None ou learnable.
  • controlnet_block_every_n (int, opcional) — Intervalo entre os blocos do transformer que devem receber resíduos de controle (por exemplo, 7 para injetar após cada sétimo bloco). Obrigatório para o Cosmos Transfer2.5.
  • img_context_dim_in (int, opcional) — A dimensão do vetor de características do contexto da imagem de entrada, ou seja, é o D em [B, N, D].
  • img_context_num_tokens (int) — O número de tokens no vetor de características do contexto da imagem, ou seja, é o N em [B, N, D]. Se img_context_dim_in não for fornecido, este parâmetro será ignorado.
  • img_context_dim_out (int) — A dimensão de saída da camada de projeção do contexto da imagem. Se img_context_dim_in não for fornecido, este parâmetro é ignorado.

Um modelo Transformer para dados semelhantes a vídeo usado no 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 )

Parâmetros

  • hidden_states (torch.Tensor de forma (batch_size, num_channels, num_frames, height, width)) — hidden_states de entrada.
  • timestep (torch.LongTensor) — Usado para indicar o passo de desruido.
  • encoder_hidden_states (torch.Tensor de forma (batch_size, sequence_len, embed_dims)) — Incorporações condicionais (incorporações calculadas a partir das condições de entrada, como prompts) a serem usadas.
  • block_controlnet_hidden_states (list de torch.Tensor, opcional) — Uma lista de tensores que, se especificada, é adicionada aos resíduos dos blocos do transformer.
  • attention_mask (torch.Tensor, opcional) — Máscara aplicada a encoder_hidden_states durante a atenção.
  • fps (int, opcional) — Quadros por segundo do vídeo de entrada usados para calcular os embeddings posicionais rotativos.
  • condition_mask (torch.Tensor, opcional) — Canal de máscara concatenado a hidden_states para indicar a região de condicionamento.
  • padding_mask (torch.Tensor, opcional) — Máscara de preenchimento concatenada a hidden_states quando concat_padding_mask está habilitado.
  • return_dict (bool, opcional, padrão True) — Se deve ou não retornar um ~models.transformer_2d.Transformer2DModelOutput em vez de uma tupla simples.

O método forward do CosmosTransformer3DModel.

Transformer2DModelOutput

classe diffusers.models.modeling_outputs.Transformer2DModelOutput

< >

( sample: torch.Tensor )

Parâmetros

  • sample (torch.Tensor de forma (batch_size, num_channels, height, width) ou (batch size, num_vector_embeds - 1, num_latent_pixels) se Transformer2DModel for discreto) — A saída dos estados ocultos condicionada à entrada encoder_hidden_states. Se discreto, retorna distribuições de probabilidade para os pixels latentes sem ruído.

A saída de Transformer2DModel.

Update on GitHub