# Krea2Transformer2DModel

Transformer flow-matching MMDiT single-stream yang digunakan oleh [Krea 2](https://github.com/krea-ai/krea-2).

## Krea2Transformer2DModel[[diffusers.Krea2Transformer2DModel]]

#### diffusers.Krea2Transformer2DModel[[diffusers.Krea2Transformer2DModel]]

```python
diffusers.Krea2Transformer2DModel(in_channels: int = 64, num_layers: int = 28, attention_head_dim: int = 128, num_attention_heads: int = 48, num_key_value_heads: int = 12, intermediate_size: int = 16384, timestep_embed_dim: int = 256, text_hidden_dim: int = 2560, num_text_layers: int = 12, text_num_attention_heads: int = 20, text_num_key_value_heads: int = 20, text_intermediate_size: int = 6912, num_layerwise_text_blocks: int = 2, num_refiner_text_blocks: int = 2, axes_dims_rope: tuple = (32, 48, 48), rope_theta: float = 1000.0, norm_eps: float = 1e-05)
```

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

**Parameter:**

in_channels (`int`, defaultnya 64) : Jumlah channel laten setelah patchification (`vae_channels * patch_size ** 2`).

num_layers (`int`, defaultnya 28) : Jumlah blok transformer.

attention_head_dim (`int`, defaultnya 128) : Dimensi dari setiap kepala perhatian; ukuran tersembunyi total adalah `attention_head_dim * num_attention_heads`.

num_attention_heads (`int`, defaultnya 48) : Jumlah kepala query.

num_key_value_heads (`int`, defaultnya 12) : Jumlah kepala key/value untuk grouped-query attention.

intermediate_size (`int`, defaultnya 16384) : Ukuran tersembunyi feed-forward dari MLP SwiGLU di dalam setiap blok.

timestep_embed_dim (`int`, defaultnya 256) : Lebar dari embedding timestep sinusoidal sebelum MLP-nya.

text_hidden_dim (`int`, defaultnya 2560) : Ukuran tersembunyi dari pengkode teks yang state tersembunyinya dikonsumsi.

num_text_layers (`int`, default 12) : Jumlah hidden states text-encoder yang di-tap dan ditumpuk per token.

text_num_attention_heads (`int`, defaultnya 20) : Jumlah query heads di blok fusi teks.

text_num_key_value_heads (`int`, defaultnya 20) : Jumlah kepala kunci/nilai dalam blok fusi teks.

text_intermediate_size (`int`, defaultnya 6912) : Ukuran tersembunyi feed-forward dari MLP SwiGLU di dalam blok fusi teks.

num_layerwise_text_blocks (`int`, defaultnya 2) : Jumlah blok fusi teks yang diterapkan di sepanjang sumbu lapisan yang ditap (per token).

num_refiner_text_blocks (`int`, defaultnya 2) : Jumlah blok fusi teks yang diterapkan di sepanjang urutan token.

axes_dims_rope (`tuple[int, int, int]`, defaultnya `(32, 48, 48)`) : Pembagian head-dim di sepanjang sumbu posisi rotasi (t, h, w).

rope_theta (`float`, defaultnya 1000.0) : Basis yang digunakan oleh rotary position embedding.

norm_eps (`float`, defaultnya 1e-5) : Epsilon yang digunakan oleh semua modul RMSNorm.

Backbone flow-matching MMDiT single-stream yang digunakan oleh pipeline Krea 2.

Kondisi teks masuk sebagai tumpukan keadaan tersembunyi yang diambil dari beberapa lapisan enkoder teks multimodal. Transformer fusi teks kecil meruntuhkan sumbu lapisan dan menyempurnakan urutan token; hasilnya digabungkan dengan laten gambar yang dipatch menjadi satu urutan `[text, image]` yang diproses oleh blok transformer. Timestep mengondisikan setiap blok melalui satu vektor modulasi bersama ditambah tabel yang dipelajari per blok.

#### forward[[diffusers.Krea2Transformer2DModel.forward]]

```python
forward(hidden_states: Tensor, encoder_hidden_states: Tensor, timestep: Tensor, position_ids: Tensor, encoder_attention_mask: 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_krea2.py#L456)

**Parameter:**

hidden_states (`torch.Tensor` dengan bentuk `(batch_size, image_seq_len, in_channels)`) : Laten gambar berisik yang dikemas (patchified).

encoder_hidden_states (`torch.Tensor` dengan bentuk `(batch_size, text_seq_len, num_text_layers, text_hidden_dim)`) : Stack dari hidden states text-encoder yang di-tap per token.

timestep (`torch.Tensor` dengan bentuk `(batch_size,)`) : Waktu flow-matching dalam `[0, 1]` (1 adalah murni noise, 0 adalah data bersih).

position_ids (`torch.Tensor` dengan bentuk `(text_seq_len + image_seq_len, 3)`) : koordinat rotasi `(t, h, w)` untuk urutan gabungan. Baris teks semuanya nol; baris gambar menyimpan koordinat grid laten.

encoder_attention_mask (`torch.Tensor` dengan bentuk `(batch_size, text_seq_len)`, *opsional*) : Mask boolean yang menandai token teks yang valid. Berikan `None` ketika setiap token teks valid.

attention_kwargs (`dict`, *opsional*) : Kamus kwargs yang, jika berisi entri `scale`, mengatur skala LoRA yang diterapkan pada adapter transformer ini selama forward pass.

return_dict (`bool`, *opsional*, defaultnya `True`) : Apakah akan mengembalikan [Transformer2DModelOutput](/docs/diffusers/main/id/api/models/cogview3plus_transformer2d#diffusers.models.modeling_outputs.Transformer2DModelOutput) alih-alih tuple biasa.

**Mengembalikan:**

[Transformer2DModelOutput](/docs/diffusers/main/id/api/models/cogview3plus_transformer2d#diffusers.models.modeling_outputs.Transformer2DModelOutput) atau `tuple` yang elemen pertamanya adalah tensor kecepatan dengan bentuk `(batch_size, image_seq_len, in_channels)`.

Prediksi kecepatan flow-matching untuk token gambar.

