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

Model Diffusion Transformer untuk data 3D dari CogVideoX diperkenalkan dalam CogVideoX: Text-to-Video Diffusion Models with An Expert Transformer oleh Tsinghua University & ZhipuAI.

Model dapat dimuat dengan potongan kode berikut.

from diffusers import CogVideoXTransformer3DModel

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

CogVideoXTransformer3DModel

kelas 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 )

Parameter

  • num_attention_heads (int, defaultnya 30) — Jumlah head yang digunakan untuk multi-head attention.
  • attention_head_dim (int, defaultnya 64) — Jumlah saluran di setiap head.
  • in_channels (int, defaultnya 16) — Jumlah channel pada input.
  • out_channels (int, opsional, default 16) — Jumlah channel pada output.
  • flip_sin_to_cos (bool, defaultnya True) — Apakah akan membalik sin menjadi cos pada time embedding.
  • time_embed_dim (int, defaultnya 512) — Dimensi output dari embedding timestep.
  • ofs_embed_dim (int, defaultnya 512) — Dimensi output dari embedding “ofs” yang digunakan dalam CogVideoX-5b-I2B versi 1.5
  • text_embed_dim (int, defaultnya 4096) — Dimensi input dari text embeddings yang berasal dari text encoder.
  • num_layers (int, defaultnya 30) — Jumlah lapisan blok Transformer yang akan digunakan.
  • dropout (float, defaultnya 0.0) — Probabilitas dropout yang digunakan.
  • attention_bias (bool, defaultnya True) — Apakah akan menggunakan bias pada lapisan proyeksi perhatian.
  • sample_width (int, defaultnya 90) — Lebar dari latens input.
  • sample_height (int, defaultnya 60) — Tinggi dari latents input.
  • sample_frames (int, defaultnya 49) — Jumlah frame pada latens input. Perhatikan bahwa parameter ini diinisialisasi secara keliru menjadi 49 sebagai gantinya 13 karena CogVideoX memproses 13 frame latens sekaligus pada pengaturan default dan yang direkomendasikannya, namun tidak dapat diubah ke nilai yang benar untuk memastikan kompatibilitas mundur. Untuk membuat transformer dengan K frame latens, nilai yang benar untuk dilewatkan di sini adalah: ((K - 1) * temporal_compression_ratio + 1).
  • patch_size (int, defaultnya 2) — Ukuran patch yang akan digunakan di lapisan patch embedding.
  • temporal_compression_ratio (int, defaultnya 4) — Rasio kompresi di sepanjang dimensi temporal. Lihat dokumentasi untuk sample_frames.
  • max_text_seq_length (int, defaultnya 226) — Panjang maksimum sekuens dari embedding teks input.
  • activation_fn (str, defaultnya "gelu-approximate") — Fungsi aktivasi yang digunakan dalam feed-forward.
  • timestep_activation_fn (str, defaultnya "silu") — Fungsi aktivasi yang digunakan saat menghasilkan embedding timestep.
  • norm_elementwise_affine (bool, defaultnya True) — Apakah akan menggunakan elementwise affine pada lapisan normalisasi.
  • norm_eps (float, defaultnya 1e-5) — Nilai epsilon yang digunakan dalam lapisan normalisasi.
  • spatial_interpolation_scale (float, defaultnya 1.875) — Faktor skala yang diterapkan pada embedding posisional 3D di sepanjang dimensi spasial.
  • temporal_interpolation_scale (float, defaultnya 1.0) — Faktor penskalaan yang diterapkan pada embedding posisional 3D di sepanjang dimensi temporal.

Model Transformer untuk data seperti video di 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 )

Parameter

  • hidden_states (torch.Tensor dengan bentuk (batch_size, num_frames, channels, height, width)) — hidden_states masukan.
  • encoder_hidden_states (torch.Tensor dengan bentuk (batch_size, sequence_len, embed_dims)) — Embedding kondisional (embedding yang dihitung dari kondisi input seperti prompt) yang akan digunakan.
  • timestep (torch.LongTensor) — Digunakan untuk menunjukkan langkah denoising.
  • timestep_cond (torch.Tensor, opsional) — Embedding kondisional untuk timestep. Jika diberikan, embedding akan dijumlahkan dengan sampel yang melewati lapisan self.time_embedding untuk mendapatkan embedding timestep akhir.
  • ofs (torch.Tensor, opsional) — Offset embeddings yang digunakan dalam CogVideoX-5b-I2V.
  • image_rotary_emb (tuple dari torch.Tensor, opsional) — Embedding posisi rotasi yang telah dihitung sebelumnya.
  • attention_kwargs (dict, opsional) — Kamus kwargs yang jika ditentukan akan diteruskan ke AttentionProcessor seperti yang didefinisikan di bawah self.processor dalam diffusers.models.attention_processor.
  • return_dict (bool, opsional, default True) — Apakah akan mengembalikan ~models.transformer_2d.Transformer2DModelOutput alih-alih tuple biasa.

Metode forward dari CogVideoXTransformer3DModel.

fuse_qkv_projections

< >

( )

Mengaktifkan proyeksi QKV yang digabungkan. Untuk modul self-attention, semua matriks proyeksi (yaitu, query, key, value) digabungkan. Untuk modul cross-attention, matriks proyeksi key dan value digabungkan.

> API ini 🧪 bersifat eksperimental.

unfuse_qkv_projections

< >

( )

Menonaktifkan proyeksi QKV yang digabungkan jika diaktifkan.

> API ini 🧪 bersifat eksperimental.

Transformer2DModelOutput

kelas diffusers.models.modeling_outputs.Transformer2DModelOutput

< >

( sample: torch.Tensor )

Parameter

  • sample (torch.Tensor dengan bentuk (batch_size, num_channels, height, width) atau (batch size, num_vector_embeds - 1, num_latent_pixels) jika Transformer2DModel bersifat diskrit) — Output hidden states yang dikondisikan pada input encoder_hidden_states. Jika diskrit, mengembalikan distribusi probabilitas untuk latent pixels yang tidak berisik.

Output dari Transformer2DModel.

Update on GitHub