Diffusers documentation
CosmosTransformer3DModel
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
< 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 )
Parâmetros
- in_channels (
int, padrão16) — O número de canais na entrada. - out_channels (
int, padrão16) — O número de canais na saída. - num_attention_heads (
int, padrão32) — O número de cabeças a serem usadas para a atenção multi-cabeça. - attention_head_dim (
int, padrão128) — O número de canais em cada cabeça de atenção. - num_layers (
int, padrão28) — O número de blocos de transformadores a serem usados. - mlp_ratio (
float, padrão4.0) — A proporção entre o tamanho da camada oculta e o tamanho da entrada na rede feedforward. - text_embed_dim (
int, padrão4096) — Dimensão de entrada dos embeddings de texto do codificador de texto. - adaln_lora_dim (
int, padrão256) — 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ãoTrue) — Se deve concatenar a máscara de preenchimento aos tensores latentes de entrada. - extra_pos_embed_type (
str, opcional, padrãolearnable) — O tipo de embeddings posicionais extras a ser usado. Pode serNoneoulearnable. - controlnet_block_every_n (
int, opcional) — Intervalo entre os blocos do transformer que devem receber resíduos de controle (por exemplo,7para 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]. Seimg_context_dim_innã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. Seimg_context_dim_innão for fornecido, este parâmetro é ignorado.
Um modelo Transformer para dados semelhantes a vídeo usado no 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 )
Parâmetros
- hidden_states (
torch.Tensorde forma(batch_size, num_channels, num_frames, height, width)) —hidden_statesde entrada. - timestep (
torch.LongTensor) — Usado para indicar o passo de desruido. - encoder_hidden_states (
torch.Tensorde 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 (
listdetorch.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 aencoder_hidden_statesdurante 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 ahidden_statespara indicar a região de condicionamento. - padding_mask (
torch.Tensor, opcional) — Máscara de preenchimento concatenada ahidden_statesquandoconcat_padding_maskestá habilitado. - return_dict (
bool, opcional, padrãoTrue) — Se deve ou não retornar um~models.transformer_2d.Transformer2DModelOutputem vez de uma tupla simples.
O método forward do CosmosTransformer3DModel.
Transformer2DModelOutput
classe diffusers.models.modeling_outputs.Transformer2DModelOutput
< source >( sample: torch.Tensor )
Parâmetros
- sample (
torch.Tensorde 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 à entradaencoder_hidden_states. Se discreto, retorna distribuições de probabilidade para os pixels latentes sem ruído.
A saída de Transformer2DModel.