Diffusers documentation
CogVideoXTransformer3DModel
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
< source >( 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, defaultnya30) — Jumlah head yang digunakan untuk multi-head attention. - attention_head_dim (
int, defaultnya64) — Jumlah saluran di setiap head. - in_channels (
int, defaultnya16) — Jumlah channel pada input. - out_channels (
int, opsional, default16) — Jumlah channel pada output. - flip_sin_to_cos (
bool, defaultnyaTrue) — Apakah akan membalik sin menjadi cos pada time embedding. - time_embed_dim (
int, defaultnya512) — Dimensi output dari embedding timestep. - ofs_embed_dim (
int, defaultnya512) — Dimensi output dari embedding “ofs” yang digunakan dalam CogVideoX-5b-I2B versi 1.5 - text_embed_dim (
int, defaultnya4096) — Dimensi input dari text embeddings yang berasal dari text encoder. - num_layers (
int, defaultnya30) — Jumlah lapisan blok Transformer yang akan digunakan. - dropout (
float, defaultnya0.0) — Probabilitas dropout yang digunakan. - attention_bias (
bool, defaultnyaTrue) — Apakah akan menggunakan bias pada lapisan proyeksi perhatian. - sample_width (
int, defaultnya90) — Lebar dari latens input. - sample_height (
int, defaultnya60) — Tinggi dari latents input. - sample_frames (
int, defaultnya49) — 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, defaultnya2) — Ukuran patch yang akan digunakan di lapisan patch embedding. - temporal_compression_ratio (
int, defaultnya4) — Rasio kompresi di sepanjang dimensi temporal. Lihat dokumentasi untuksample_frames. - max_text_seq_length (
int, defaultnya226) — 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, defaultnyaTrue) — Apakah akan menggunakan elementwise affine pada lapisan normalisasi. - norm_eps (
float, defaultnya1e-5) — Nilai epsilon yang digunakan dalam lapisan normalisasi. - spatial_interpolation_scale (
float, defaultnya1.875) — Faktor skala yang diterapkan pada embedding posisional 3D di sepanjang dimensi spasial. - temporal_interpolation_scale (
float, defaultnya1.0) — Faktor penskalaan yang diterapkan pada embedding posisional 3D di sepanjang dimensi temporal.
Model Transformer untuk data seperti video di CogVideoX.
forward
< source >( 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.Tensordengan bentuk(batch_size, num_frames, channels, height, width)) —hidden_statesmasukan. - encoder_hidden_states (
torch.Tensordengan 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 lapisanself.time_embeddinguntuk mendapatkan embedding timestep akhir. - ofs (
torch.Tensor, opsional) — Offset embeddings yang digunakan dalam CogVideoX-5b-I2V. - image_rotary_emb (
tupledaritorch.Tensor, opsional) — Embedding posisi rotasi yang telah dihitung sebelumnya. - attention_kwargs (
dict, opsional) — Kamus kwargs yang jika ditentukan akan diteruskan keAttentionProcessorseperti yang didefinisikan di bawahself.processordalam diffusers.models.attention_processor. - return_dict (
bool, opsional, defaultTrue) — Apakah akan mengembalikan~models.transformer_2d.Transformer2DModelOutputalih-alih tuple biasa.
Metode forward dari CogVideoXTransformer3DModel.
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.
Menonaktifkan proyeksi QKV yang digabungkan jika diaktifkan.
> API ini 🧪 bersifat eksperimental.
Transformer2DModelOutput
kelas diffusers.models.modeling_outputs.Transformer2DModelOutput
< source >( sample: torch.Tensor )
Parameter
- sample (
torch.Tensordengan 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 inputencoder_hidden_states. Jika diskrit, mengembalikan distribusi probabilitas untuk latent pixels yang tidak berisik.
Output dari Transformer2DModel.