# HunyuanVideoTransformer3DModel

Model Diffusion Transformer untuk data video 3D diperkenalkan dalam [HunyuanVideo: A Systematic Framework For Large Video Generative Models](https://huggingface.co/papers/2412.03603) oleh Tencent.

Model dapat dimuat dengan potongan kode berikut.

```python
from diffusers import HunyuanVideoTransformer3DModel

transformer = HunyuanVideoTransformer3DModel.from_pretrained("hunyuanvideo-community/HunyuanVideo", subfolder="transformer", dtype=torch.bfloat16)
```

## HunyuanVideoTransformer3DModel[[diffusers.HunyuanVideoTransformer3DModel]]

#### diffusers.HunyuanVideoTransformer3DModel[[diffusers.HunyuanVideoTransformer3DModel]]

```python
diffusers.HunyuanVideoTransformer3DModel(in_channels: int = 16, out_channels: int = 16, num_attention_heads: int = 24, attention_head_dim: int = 128, num_layers: int = 20, num_single_layers: int = 40, num_refiner_layers: int = 2, mlp_ratio: float = 4.0, patch_size: int = 2, patch_size_t: int = 1, qk_norm: str = 'rms_norm', guidance_embeds: bool = True, text_embed_dim: int = 4096, pooled_projection_dim: int = 768, rope_theta: float = 256.0, rope_axes_dim: tuple[int, ...] = (16, 56, 56), image_condition_type: str | None = None)
```

[Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_hunyuan_video.py#L841)

**Parameter:**

in_channels (`int`, defaultnya `16`) : Jumlah channel pada input.

out_channels (`int`, defaultnya `16`) : Jumlah channel pada output.

num_attention_heads (`int`, defaultnya `24`) : Jumlah kepala yang digunakan untuk multi-head attention.

attention_head_dim (`int`, defaultnya `128`) : Jumlah channel di setiap head.

num_layers (`int`, defaultnya `20`) : Jumlah lapisan blok dual-stream yang akan digunakan.

num_single_layers (`int`, defaultnya `40`) : Jumlah lapisan blok single-stream yang akan digunakan.

num_refiner_layers (`int`, defaultnya `2`) : Jumlah lapisan blok refiner yang akan digunakan.

mlp_ratio (`float`, defaultnya `4.0`) : Rasio ukuran lapisan tersembunyi terhadap ukuran input dalam jaringan feedforward.

patch_size (`int`, defaultnya `2`) : Ukuran patch spasial yang akan digunakan di lapisan patch embedding.

patch_size_t (`int`, defaultnya `1`) : Ukuran patch temporal yang akan digunakan di lapisan patch embedding.

qk_norm (`str`, defaultnya `rms_norm`) : Normalisasi yang digunakan untuk proyeksi query dan key pada lapisan perhatian.

guidance_embeds (`bool`, defaultnya `True`) : Apakah akan menggunakan guidance embeddings dalam model.

text_embed_dim (`int`, defaultnya `4096`) : Dimensi input dari embedding teks yang berasal dari text encoder.

pooled_projection_dim (`int`, defaultnya `768`) : Dimensi dari proyeksi pooled dari embedding teks.

rope_theta (`float`, defaultnya `256.0`) : Nilai theta yang digunakan di lapisan RoPE.

rope_axes_dim (`tuple[int]`, defaultnya `(16, 56, 56)`) : Dimensi sumbu yang akan digunakan di lapisan RoPE.

image_condition_type (`str`, *opsional*, defaultnya `None`) : Jenis kondisioning gambar yang akan digunakan. Jika `None`, kondisioning gambar tidak digunakan. Jika `latent_concat`, gambar digabungkan ke aliran laten. Jika `token_replace`, gambar digunakan untuk menggantikan token bingkai pertama di aliran laten dan menerapkan kondisioning.

Model Transformer untuk data mirip video yang digunakan dalam [HunyuanVideo](https://huggingface.co/tencent/HunyuanVideo).

#### forward[[diffusers.HunyuanVideoTransformer3DModel.forward]]

```python
forward(hidden_states: Tensor, timestep: LongTensor, encoder_hidden_states: Tensor, encoder_attention_mask: Tensor, pooled_projections: Tensor, guidance: Tensor = None, attention_kwargs: dict[str, typing.Any] | None = None, return_dict: bool = True)
```

[Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_hunyuan_video.py#L994)

**Parameter:**

hidden_states (`torch.Tensor` dengan bentuk `(batch_size, num_channels, num_frames, height, width)`) : Input `hidden_states`.

timestep (`torch.LongTensor`) : Digunakan untuk menunjukkan langkah denoising.

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.

encoder_attention_mask (`torch.Tensor`) : Mask yang diterapkan pada `encoder_hidden_states` selama perhatian.

pooled_projections (`torch.Tensor` dengan bentuk `(batch_size, projection_dim)`) : Embeddings yang diproyeksikan dari embeddings kondisi input.

guidance (`torch.Tensor`, *opsional*) : Embedding skala panduan yang digunakan untuk varian model yang telah melalui distilasi panduan.

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](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).

return_dict (`bool`, *opsional*, defaultnya `True`) : Apakah akan mengembalikan `~models.transformer_2d.Transformer2DModelOutput` alih-alih tuple biasa.

**Mengembalikan:**

Jika `return_dict` bernilai True, sebuah `~models.transformer_2d.Transformer2DModelOutput` akan dikembalikan, selain itu sebuah `tuple` di mana elemen pertama adalah tensor sampel.

Metode forward dari [HunyuanVideoTransformer3DModel](/docs/diffusers/main/id/api/models/hunyuan_video_transformer_3d#diffusers.HunyuanVideoTransformer3DModel).

## Transformer2DModelOutput[[diffusers.models.modeling_outputs.Transformer2DModelOutput]]

#### diffusers.models.modeling_outputs.Transformer2DModelOutput[[diffusers.models.modeling_outputs.Transformer2DModelOutput]]

```python
diffusers.models.modeling_outputs.Transformer2DModelOutput(sample: torch.Tensor)
```

[Sumber](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_outputs.py#L21)

**Parameter:**

sample (`torch.Tensor` dengan bentuk `(batch_size, num_channels, height, width)` atau `(batch size, num_vector_embeds - 1, num_latent_pixels)` jika [Transformer2DModel](/docs/diffusers/main/id/api/models/transformer2d#diffusers.Transformer2DModel) bersifat diskrit) : Output hidden states yang dikondisikan pada input `encoder_hidden_states`. Jika diskrit, mengembalikan distribusi probabilitas untuk piksel laten yang tidak berisik.

Output dari [Transformer2DModel](/docs/diffusers/main/id/api/models/transformer2d#diffusers.Transformer2DModel).

