# Flux2Transformer2DModel

Model Transformer untuk data seperti gambar dari [Flux2](https://hf.co/black-forest-labs/FLUX.2-dev).

## Flux2Transformer2DModel[[diffusers.Flux2Transformer2DModel]]

#### diffusers.Flux2Transformer2DModel[[diffusers.Flux2Transformer2DModel]]

```python
diffusers.Flux2Transformer2DModel(patch_size: int = 1, in_channels: int = 128, out_channels: int | None = None, num_layers: int = 8, num_single_layers: int = 48, attention_head_dim: int = 128, num_attention_heads: int = 48, joint_attention_dim: int = 15360, timestep_guidance_channels: int = 256, mlp_ratio: float = 3.0, axes_dims_rope: tuple = (32, 32, 32, 32), rope_theta: int = 2000, eps: float = 1e-06, guidance_embeds: bool = True)
```

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

**Parameter:**

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

in_channels (`int`, defaultnya `128`) : 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 `8`) : Jumlah lapisan blok DiT dual stream yang akan digunakan.

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

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

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

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

pooled_projection_dim (`int`, defaultnya `768`) : Jumlah dimensi yang digunakan untuk proyeksi pooled.

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

axes_dims_rope (`tuple[int]`, defaultnya `(32, 32, 32, 32)`) : Dimensi yang digunakan untuk rotary positional embeddings.

Model Transformer yang diperkenalkan dalam Flux 2.

Referensi: https://blackforestlabs.ai/announcing-black-forest-labs/

#### forward[[diffusers.Flux2Transformer2DModel.forward]]

```python
forward(hidden_states: Tensor, encoder_hidden_states: Tensor = None, timestep: LongTensor = None, img_ids: Tensor = None, txt_ids: Tensor = None, guidance: Tensor = None, joint_attention_kwargs: dict[str, typing.Any] | None = None, return_dict: bool = True, kv_cache: Flux2KVCache | None = None, kv_cache_mode: str | None = None, num_ref_tokens: int = 0, ref_fixed_timestep: float = 0.0)
```

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

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

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

img_ids (`torch.Tensor`) : ID posisi gambar yang digunakan untuk menghitung embedding posisi rotasi.

txt_ids (`torch.Tensor`) : ID posisi teks yang digunakan untuk menghitung embedding posisi rotasi.

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

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

kv_cache (`Flux2KVCache`, *opsional*) : KV cache untuk token gambar referensi. Ketika `kv_cache_mode` adalah "extract", cache baru dibuat dan dikembalikan. Ketika "cached", cache yang disediakan digunakan untuk menyuntikkan ref K/V selama attention.

kv_cache_mode (`str`, *opsional*) : Salah satu dari "extract" (langkah pertama dengan token ref) atau "cached" (langkah-langkah berikutnya menggunakan K/V ref yang di-cache). Ketika `None`, jalur forward standar tanpa KV caching.

num_ref_tokens (`int`, defaultnya `0`) : Jumlah token gambar referensi yang ditambahkan di awal `hidden_states` (hanya digunakan saat `kv_cache_mode="extract"`).

ref_fixed_timestep (`float`, defaultnya `0.0`) : Timestep tetap untuk modulasi token referensi (hanya digunakan saat `kv_cache_mode="extract"`).

**Mengembalikan:**

Jika `return_dict` bernilai True, sebuah `~models.transformer_2d.Transformer2DModelOutput` dikembalikan, selain itu sebuah `tuple` di mana elemen pertama adalah tensor sampel. Ketika `kv_cache_mode="extract"`, juga mengembalikan `Flux2KVCache` yang telah terisi.

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

## Flux2Transformer2DModelOutput[[diffusers.models.transformers.transformer_flux2.Flux2Transformer2DModelOutput]]

#### diffusers.models.transformers.transformer_flux2.Flux2Transformer2DModelOutput[[diffusers.models.transformers.transformer_flux2.Flux2Transformer2DModelOutput]]

```python
diffusers.models.transformers.transformer_flux2.Flux2Transformer2DModelOutput(sample: torch.Tensor, kv_cache: Flux2KVCache | None = None)
```

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

**Parameter:**

sample (`torch.Tensor` dengan bentuk `(batch_size, num_channels, height, width)`) : Output hidden states yang dikondisikan pada input `encoder_hidden_states`.

kv_cache (`Flux2KVCache`, *opsional*) : KV cache yang terisi untuk token gambar referensi. Hanya dikembalikan ketika `kv_cache_mode="extract"`.

Output dari [Flux2Transformer2DModel](/docs/diffusers/main/id/api/models/flux2_transformer#diffusers.Flux2Transformer2DModel).

