Diffusers documentation

CogVideoXTransformer3DModel

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

CogVideoXTransformer3DModel

Um modelo Diffusion Transformer para dados 3D do CogVideoX foi introduzido em CogVideoX: Text-to-Video Diffusion Models with An Expert Transformer pela Universidade de Tsinghua & ZhipuAI.

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

from diffusers import CogVideoXTransformer3DModel

transformer = CogVideoXTransformer3DModel.from_pretrained("THUDM/CogVideoX-2b", subfolder="transformer", dtype=torch.float16).to("cuda")  # or "mps", "xpu", "cpu"

CogVideoXTransformer3DModel

classe diffusers.CogVideoXTransformer3DModel

< >

( num_attention_heads: int = 30attention_head_dim: int = 64in_channels: int = 16out_channels: int | None = 16flip_sin_to_cos: bool = Truefreq_shift: int = 0time_embed_dim: int = 512ofs_embed_dim: int | None = Nonetext_embed_dim: int = 4096num_layers: int = 30dropout: float = 0.0attention_bias: bool = Truesample_width: int = 90sample_height: int = 60sample_frames: int = 49patch_size: int = 2patch_size_t: int | None = Nonetemporal_compression_ratio: int = 4max_text_seq_length: int = 226activation_fn: str = 'gelu-approximate'timestep_activation_fn: str = 'silu'norm_elementwise_affine: bool = Truenorm_eps: float = 1e-05spatial_interpolation_scale: float = 1.875temporal_interpolation_scale: float = 1.0use_rotary_positional_embeddings: bool = Falseuse_learned_positional_embeddings: bool = Falsepatch_bias: bool = True )

Parâmetros

  • num_attention_heads (int, padrão 30) — O número de cabeças a serem usadas para a atenção multi-cabeça.
  • attention_head_dim (int, padrão 64) — O número de canais em cada cabeça.
  • in_channels (int, padrão 16) — O número de canais na entrada.
  • out_channels (int, opcional, padrão 16) — O número de canais na saída.
  • flip_sin_to_cos (bool, padrão True) — Se deve inverter o sin para cos no embedding de tempo.
  • time_embed_dim (int, padrão 512) — Dimensão de saída dos embeddings de timestep.
  • ofs_embed_dim (int, padrão 512) — Dimensão de saída dos embeddings “ofs” usados no CogVideoX-5b-I2B na versão 1.5
  • text_embed_dim (int, padrão 4096) — Dimensão de entrada dos embeddings de texto do codificador de texto.
  • num_layers (int, padrão 30) — O número de blocos de camadas de Transformer a serem usados.
  • dropout (float, padrão 0.0) — A probabilidade de dropout a ser utilizada.
  • attention_bias (bool, padrão True) — Se deve usar viés nas camadas de projeção de atenção.
  • sample_width (int, padrão 90) — A largura dos latentes de entrada.
  • sample_height (int, padrão 60) — A altura dos latentes de entrada.
  • sample_frames (int, padrão 49) — O número de quadros nos latentes de entrada. Observe que este parâmetro foi inicializado incorretamente como 49 em vez de 13, pois o CogVideoX processava 13 quadros latentes de uma vez em suas configurações padrão e recomendadas, mas não pode ser alterado para o valor correto para garantir compatibilidade reversa. Para criar um transformer com K quadros latentes, o valor correto a ser passado aqui seria: ((K - 1) * temporal_compression_ratio + 1).
  • patch_size (int, padrão 2) — O tamanho dos patches a serem usados na camada de incorporação de patches.
  • temporal_compression_ratio (int, padrão 4) — A razão de compressão ao longo da dimensão temporal. Consulte a documentação de sample_frames.
  • max_text_seq_length (int, padrão 226) — O comprimento máximo da sequência dos embeddings de texto de entrada.
  • activation_fn (str, padrão "gelu-approximate") — Função de ativação a ser usada no feed-forward.
  • timestep_activation_fn (str, padrão "silu") — Função de ativação a ser usada ao gerar os embeddings de timestep.
  • norm_elementwise_affine (bool, padrão True) — Se deve usar afinidade elementar em camadas de normalização.
  • norm_eps (float, padrão 1e-5) — O valor de epsilon a ser usado nas camadas de normalização.
  • spatial_interpolation_scale (float, padrão 1.875) — Fator de escala a ser aplicado nos embeddings posicionais 3D ao longo das dimensões espaciais.
  • temporal_interpolation_scale (float, padrão 1.0) — Fator de escala a ser aplicado nos embeddings posicionais 3D ao longo das dimensões temporais.

Um modelo Transformer para dados semelhantes a vídeo no CogVideoX.

forward

< >

( hidden_states: Tensorencoder_hidden_states: Tensortimestep: typing.Union[int, float, torch.LongTensor]timestep_cond: typing.Optional[torch.Tensor] = Noneofs: typing.Union[int, float, torch.LongTensor, NoneType] = Noneimage_rotary_emb: tuple[torch.Tensor, torch.Tensor] | None = Noneattention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = True )

Parâmetros

  • hidden_states (torch.Tensor de forma (batch_size, num_frames, channels, height, width)) — hidden_states de entrada.
  • 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.
  • timestep (torch.LongTensor) — Usado para indicar o passo de desruido.
  • timestep_cond (torch.Tensor, opcional) — Incorporações condicionais para o timestep. Se fornecidas, as incorporações serão somadas às amostras passadas pela camada self.time_embedding para obter as incorporações finais de timestep.
  • ofs (torch.Tensor, opcional) — Embeddings de deslocamento usados no CogVideoX-5b-I2V.
  • image_rotary_emb (tuple de torch.Tensor, opcional) — Incorporações posicionais rotativas pré-computadas.
  • attention_kwargs (dict, opcional) — Um dicionário de kwargs que, se especificado, é passado ao AttentionProcessor conforme definido em self.processor em diffusers.models.attention_processor.
  • 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 CogVideoXTransformer3DModel.

fuse_qkv_projections

< >

( )

Ativa as projeções QKV fundidas. Para os módulos de autoatenção, todas as matrizes de projeção (ou seja, query, key, value) são fundidas. Para os módulos de atenção cruzada, as matrizes de projeção de key e value são fundidas.

> Esta API é 🧪 experimental.

unfuse_qkv_projections

< >

( )

Desativa a projeção QKV fundida, se estiver habilitada.

> Esta API é 🧪 experimental.

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