# QwenImageTransformer2DModel

Model dapat dimuat dengan potongan kode berikut.

```python
from diffusers import QwenImageTransformer2DModel

transformer = QwenImageTransformer2DModel.from_pretrained("Qwen/QwenImage-20B", subfolder="transformer", dtype=torch.bfloat16)
```

## QwenImageTransformer2DModel[[diffusers.QwenImageTransformer2DModel]]

#### diffusers.QwenImageTransformer2DModel[[diffusers.QwenImageTransformer2DModel]]

```python
diffusers.QwenImageTransformer2DModel(patch_size: int = 2, in_channels: int = 64, out_channels: int | None = 16, num_layers: int = 60, attention_head_dim: int = 128, num_attention_heads: int = 24, joint_attention_dim: int = 3584, guidance_embeds: bool = False, axes_dims_rope: tuple[int, int, int] = (16, 56, 56), zero_cond_t: bool = False, use_additional_t_cond: bool = False, use_layer3d_rope: bool = False)
```

[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/transformer_qwenimage.py#L748)

**Parameter:**

patch_size (`int`, defaultnya `2`) : Ukuran patch untuk mengubah data input menjadi patch kecil.

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

out_channels (`int`, *opsional*, defaultnya `None`) : Jumlah channel pada output. Jika tidak ditentukan, defaultnya adalah `in_channels`.

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

attention_head_dim (`int`, defaultnya `128`) : Jumlah dimensi yang digunakan untuk setiap kepala perhatian.

num_attention_heads (`int`, defaultnya `24`) : Jumlah kepala perhatian (attention heads) yang akan digunakan.

joint_attention_dim (`int`, defaultnya `3584`) : Jumlah dimensi yang digunakan untuk perhatian gabungan (dimensi embedding/channel dari `encoder_hidden_states`).

guidance_embeds (`bool`, defaultnya `False`) : Apakah akan menggunakan guidance embeddings untuk varian model yang telah melalui guidance-distillation.

axes_dims_rope (`tuple[int]`, defaultnya `(16, 56, 56)`) : Dimensi yang digunakan untuk embedding posisi rotasi.

Model Transformer yang diperkenalkan dalam Qwen.

#### forward[[diffusers.QwenImageTransformer2DModel.forward]]

```python
forward(hidden_states: Tensor, encoder_hidden_states: Tensor = None, encoder_hidden_states_mask: Tensor = None, timestep: LongTensor = None, img_shapes: list[tuple[int, int, int]] | None = None, guidance: Tensor = None, attention_kwargs: dict[str, typing.Any] | None = None, controlnet_block_samples = None, additional_t_cond = None, return_dict: bool = True)
```

[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/transformer_qwenimage.py#L868)

**Parameter:**

hidden_states (`torch.Tensor` dengan bentuk `(batch_size, image_sequence_length, in_channels)`) : `hidden_states` masukan.

encoder_hidden_states (`torch.Tensor` dengan bentuk `(batch_size, text_sequence_length, joint_attention_dim)`) : Embedding kondisional (embedding yang dihitung dari kondisi input seperti prompt) yang akan digunakan.

encoder_hidden_states_mask (`torch.Tensor` dengan bentuk `(batch_size, text_sequence_length)`, *opsional*) : Mask untuk hidden states encoder. Diharapkan memiliki nilai 1.0 untuk token valid dan 0.0 untuk token padding. Digunakan dalam attention processor untuk mencegah perhatian terhadap token padding. Mask dapat memiliki pola apa pun (tidak hanya token valid yang berurutan diikuti oleh padding) karena diterapkan secara element-wise dalam attention.

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

img_shapes (`list[tuple[int, int, int]]`, *opsional*) : Bentuk gambar untuk komputasi RoPE.

guidance (`torch.Tensor`, *opsional*) : Tensor panduan untuk generasi kondisional.

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

controlnet_block_samples (*opsional*) : Sampel blok ControlNet untuk ditambahkan ke blok transformer.

additional_t_cond (`torch.Tensor`, *opsional*) : Kondisi timestep tambahan yang ditambahkan ke embedding timestep.

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 `QwenTransformer2DModel`.

## 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/v0.43.0/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/v0.43.0/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/v0.43.0/id/api/models/transformer2d#diffusers.Transformer2DModel).

