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 modelo Diffusion Transformer para datos de video 3D fue introducido en Cosmos World Foundation Model Platform for Physical AI por NVIDIA.

El modelo se puede cargar con el siguiente fragmento de código.

from diffusers import CosmosTransformer3DModel

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

CosmosTransformer3DModel

clase 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, por defecto 16) — El número de canales en la entrada.
  • out_channels (int, por defecto 16) — El número de canales en la salida.
  • num_attention_heads (int, por defecto 32) — El número de cabezas a utilizar para la atención multi-cabeza.
  • attention_head_dim (int, por defecto 128) — El número de canales en cada cabeza de atención.
  • num_layers (int, por defecto 28) — El número de capas de bloques de transformador a utilizar.
  • mlp_ratio (float, por defecto 4.0) — La proporción entre el tamaño de la capa oculta y el tamaño de la entrada en la red feedforward.
  • text_embed_dim (int, por defecto 4096) — Dimensión de entrada de las incrustaciones de texto del codificador de texto.
  • adaln_lora_dim (int, por defecto 256) — La dimensión oculta de la capa LoRA de Adaptive LayerNorm.
  • max_size (tuple[int, int, int], por defecto (128, 240, 240)) — El tamaño máximo de los tensores latentes de entrada en las dimensiones temporal, de altura y de ancho.
  • patch_size (tuple[int, int, int], por defecto (1, 2, 2)) — El tamaño de parche a utilizar para aplicar patchify a los tensores latentes de entrada en las dimensiones temporal, de altura y de ancho.
  • rope_scale (tuple[float, float, float], por defecto (2.0, 1.0, 1.0)) — El factor de escala a utilizar para RoPE en las dimensiones temporal, de altura y de ancho.
  • concat_padding_mask (bool, por defecto True) — Si se debe concatenar la máscara de relleno a los tensores latentes de entrada.
  • extra_pos_embed_type (str, opcional, valor predeterminado learnable) — El tipo de incrustaciones posicionales adicionales a utilizar. Puede ser None o learnable.
  • controlnet_block_every_n (int, opcional) — Intervalo entre bloques del transformer que deben recibir residuos de control (por ejemplo, 7 para inyectarlos después de cada séptimo bloque). Obligatorio para Cosmos Transfer2.5.
  • img_context_dim_in (int, opcional) — La dimensión del vector de características de contexto de imagen de entrada, es decir, es la D en [B, N, D].
  • img_context_num_tokens (int) — El número de tokens en el vector de características del contexto de imagen, es decir, es la N en [B, N, D]. Si img_context_dim_in no se proporciona, este parámetro se ignora.
  • img_context_dim_out (int) — La dimensión de salida de la capa de proyección del contexto de imagen. Si no se proporciona img_context_dim_in, este parámetro se ignora.

Un modelo Transformer para datos tipo video utilizado en 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)) — Entrada hidden_states.
  • timestep (torch.LongTensor) — Se utiliza para indicar el paso de desruido.
  • encoder_hidden_states (torch.Tensor de forma (batch_size, sequence_len, embed_dims)) — Incrustaciones condicionales (incrustaciones calculadas a partir de las condiciones de entrada, como los prompts) que se deben utilizar.
  • block_controlnet_hidden_states (list de torch.Tensor, opcional) — Una lista de tensores que, si se especifica, se suma a los residuos de los bloques del transformador.
  • attention_mask (torch.Tensor, opcional) — Máscara aplicada a encoder_hidden_states durante la atención.
  • fps (int, opcional) — Fotogramas por segundo del video de entrada utilizado para calcular los embeddings posicionales rotatorios.
  • condition_mask (torch.Tensor, opcional) — Canal de máscara concatenado a hidden_states para indicar la región de condicionamiento.
  • padding_mask (torch.Tensor, opcional) — Máscara de relleno concatenada a hidden_states cuando concat_padding_mask está habilitado.
  • return_dict (bool, opcional, valor predeterminado True) — Indica si se debe devolver un ~models.transformer_2d.Transformer2DModelOutput en lugar de una tupla simple.

El método forward del CosmosTransformer3DModel.

Transformer2DModelOutput

clase diffusers.models.modeling_outputs.Transformer2DModelOutput

< >

( sample: torch.Tensor )

Parámetros

  • sample (torch.Tensor de forma (batch_size, num_channels, height, width) o (batch size, num_vector_embeds - 1, num_latent_pixels) si Transformer2DModel es discreto) — La salida de estados ocultos condicionada a la entrada encoder_hidden_states. Si es discreto, devuelve distribuciones de probabilidad para los píxeles latentes sin ruido.

La salida de Transformer2DModel.

Update on GitHub