# HunyuanImageTransformer2DModel

Model Diffusion Transformer untuk [HunyuanImage2.1](https://github.com/Tencent-Hunyuan/HunyuanImage-2.1).

Model dapat dimuat dengan potongan kode berikut.

```python
from diffusers import HunyuanImageTransformer2DModel

transformer = HunyuanImageTransformer2DModel.from_pretrained("hunyuanvideo-community/HunyuanImage-2.1-Diffusers", subfolder="transformer", dtype=torch.bfloat16)
```

## HunyuanImageTransformer2DModel[[diffusers.HunyuanImageTransformer2DModel]]

#### diffusers.HunyuanImageTransformer2DModel[[diffusers.HunyuanImageTransformer2DModel]]

```python
diffusers.HunyuanImageTransformer2DModel(in_channels: int = 64, out_channels: int = 64, num_attention_heads: int = 28, 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: tuple[int, int] = (1, 1), qk_norm: str = 'rms_norm', guidance_embeds: bool = False, text_embed_dim: int = 3584, text_embed_2_dim: int | None = None, rope_theta: float = 256.0, rope_axes_dim: tuple[int, ...] = (64, 64), use_meanflow: bool = False)
```

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

**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 yang digunakan dalam [HunyuanImage-2.1](https://github.com/Tencent-Hunyuan/HunyuanImage-2.1).

#### forward[[diffusers.HunyuanImageTransformer2DModel.forward]]

```python
forward(hidden_states: Tensor, timestep: LongTensor, encoder_hidden_states: Tensor, encoder_attention_mask: Tensor, timestep_r: typing.Optional[torch.LongTensor] = None, encoder_hidden_states_2: typing.Optional[torch.Tensor] = None, encoder_attention_mask_2: typing.Optional[torch.Tensor] = None, guidance: typing.Optional[torch.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_hunyuanimage.py#L743)

**Parameter:**

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

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.

timestep_r (`torch.LongTensor`, *opsional*) : Kondisioning timestep Refiner.

encoder_hidden_states_2 (`torch.Tensor`, *opsional*) : Embedding kondisional tambahan yang dihitung dari pengkode teks kedua.

encoder_attention_mask_2 (`torch.Tensor`, *opsional*) : Mask yang diterapkan pada `encoder_hidden_states_2` selama perhatian.

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 [HunyuanImageTransformer2DModel](/docs/diffusers/main/id/api/models/hunyuanimage_transformer_2d#diffusers.HunyuanImageTransformer2DModel).

## 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).

