# AuraFlowTransformer2DModel

Model Transformer untuk data seperti gambar dari [AuraFlow](https://blog.fal.ai/auraflow/).

## AuraFlowTransformer2DModel[[diffusers.AuraFlowTransformer2DModel]]

#### diffusers.AuraFlowTransformer2DModel[[diffusers.AuraFlowTransformer2DModel]]

```python
diffusers.AuraFlowTransformer2DModel(sample_size: int = 64, patch_size: int = 2, in_channels: int = 4, num_mmdit_layers: int = 4, num_single_dit_layers: int = 32, attention_head_dim: int = 256, num_attention_heads: int = 12, joint_attention_dim: int = 2048, caption_projection_dim: int = 3072, out_channels: int = 4, pos_embed_max_size: int = 1024)
```

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

**Parameter:**

sample_size (`int`) : Lebar dari gambar laten. Ini tetap selama pelatihan karena digunakan untuk mempelajari sejumlah position embeddings.

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

in_channels (`int`, *opsional*, defaultnya 4) : Jumlah channel pada input.

num_mmdit_layers (`int`, *opsional*, defaultnya 4) : Jumlah lapisan blok Transformer MMDiT yang akan digunakan.

num_single_dit_layers (`int`, *opsional*, defaultnya 32) : Jumlah lapisan blok Transformer yang akan digunakan. Blok-blok ini menggunakan representasi gambar dan teks yang digabungkan.

attention_head_dim (`int`, *opsional*, defaultnya 256) : Jumlah channel di setiap head.

num_attention_heads (`int`, *opsional*, default 12) : Jumlah head yang digunakan untuk multi-head attention.

joint_attention_dim (`int`, *opsional*) : Jumlah dimensi `encoder_hidden_states` yang akan digunakan.

caption_projection_dim (`int`) : Jumlah dimensi yang digunakan saat memproyeksikan `encoder_hidden_states`.

out_channels (`int`, defaultnya 4) : Jumlah kanal output.

pos_embed_max_size (`int`, defaultnya 1024) : Posisi maksimum yang akan di-embed dari latens gambar.

Model Transformer 2D yang diperkenalkan dalam AuraFlow (https://blog.fal.ai/auraflow/).

#### forward[[diffusers.AuraFlowTransformer2DModel.forward]]

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

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

**Parameter:**

hidden_states (`torch.FloatTensor` dengan bentuk `(batch size, channel, height, width)`) : Input `hidden_states`.

encoder_hidden_states (`torch.FloatTensor` 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.

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 [AuraFlowTransformer2DModel](/docs/diffusers/v0.43.0/id/api/models/aura_flow_transformer2d#diffusers.AuraFlowTransformer2DModel).

#### fuse_qkv_projections[[diffusers.AuraFlowTransformer2DModel.fuse_qkv_projections]]

```python
fuse_qkv_projections()
```

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

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.

> [!WARNING] > API ini 🧪 eksperimental.

#### unfuse_qkv_projections[[diffusers.AuraFlowTransformer2DModel.unfuse_qkv_projections]]

```python
unfuse_qkv_projections()
```

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

Menonaktifkan proyeksi QKV yang digabungkan jika diaktifkan.

> [!WARNING] > API ini 🧪 eksperimental.

