# Ideogram4Transformer2DModel

Transformer untuk data seperti gambar dari [Ideogram 4](https://github.com/ideogram-oss/ideogram-4).

## Ideogram4Transformer2DModel[[diffusers.Ideogram4Transformer2DModel]]

#### diffusers.Ideogram4Transformer2DModel[[diffusers.Ideogram4Transformer2DModel]]

```python
diffusers.Ideogram4Transformer2DModel(in_channels: int = 128, num_layers: int = 34, attention_head_dim: int = 256, num_attention_heads: int = 18, intermediate_size: int = 12288, adaln_dim: int = 512, llm_features_dim: int = 53248, rope_theta: int = 5000000, mrope_section: tuple[int, int, int] = (24, 20, 20), norm_eps: float = 1e-05)
```

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

**Parameter:**

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

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

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

num_attention_heads (`int`, defaultnya 18) : Jumlah kepala perhatian.

intermediate_size (`int`, defaultnya 12288) : Ukuran tersembunyi feed-forward yang digunakan oleh MLP SwiGLU di dalam setiap blok.

adaln_dim (`int`, defaultnya 512) : Dimensi dari vektor kondisioning yang dikonsumsi oleh modulasi AdaLN.

llm_features_dim (`int`, defaultnya 53248) : Dimensi dari fitur teks per-token yang dimasukkan ke dalam model (biasanya merupakan konkatenasi dari hidden states dari beberapa lapisan text encoder).

rope_theta (`int`, defaultnya 5_000_000) : Basis yang digunakan oleh multi-axis rotary position embedding.

mrope_section (`tuple[int, int, int]`, defaultnya `(24, 20, 20)`) : Jumlah frekuensi yang dialokasikan ke masing-masing sumbu (t, h, w) dari MRoPE.

norm_eps (`float`, default 1e-5) : Epsilon yang digunakan oleh modul RMSNorm di dalam blok transformer.

Backbone transformer flow-matching yang digunakan oleh pipeline Ideogram 4.

Transformer beroperasi pada satu urutan terpadu (packed sequence) yang berisi token pengkondisian teks (dihasilkan oleh encoder teks multimodal) dan latens gambar yang telah dipatch. Indikator per-token membedakan kedua peran tersebut, dan mask perhatian blok-diagonal yang diturunkan dari `segment_ids` membatasi setiap sampel agar hanya memperhatikan dirinya sendiri dalam batch terpadu.

#### forward[[diffusers.Ideogram4Transformer2DModel.forward]]

```python
forward(hidden_states: Tensor, timestep: Tensor, encoder_hidden_states: Tensor, position_ids: Tensor, segment_ids: Tensor, indicator: Tensor, attention_kwargs: dict | None = None, return_dict: bool = True)
```

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

**Parameter:**

hidden_states (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, in_channels)`) : Urutan terpadat dari token gambar berisik yang telah dipatch. Posisi non-gambar dimask secara internal.

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

encoder_hidden_states (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, llm_features_dim)`) : Fitur kondisioning teks per-token. Posisi non-teks dimask secara internal.

position_ids (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, 3)`) : koordinat `(t, h, w)` yang digunakan oleh RoPE multi-sumbu.

segment_ids (`torch.Tensor` dengan bentuk `(batch_size, sequence_length)`) : id sampel per token dalam batch yang dikemas. Posisi yang berbagi `segment_id` saling memperhatikan satu sama lain.

indicator (`torch.Tensor` dengan bentuk `(batch_size, sequence_length)`) : Peran per token: `LLM_TOKEN_INDICATOR` (teks) atau `OUTPUT_IMAGE_INDICATOR` (gambar).

attention_kwargs (`dict`, *opsional*) : Kamus kwargs yang diteruskan ke pemroses perhatian. Entri `"scale"` menskalakan bobot LoRA (ketika backend PEFT aktif).

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 dengan bentuk `(batch_size, sequence_length, in_channels)` dalam dtype komputasi model. Hanya posisi yang diberi tag `OUTPUT_IMAGE_INDICATOR` yang membawa prediksi kecepatan yang bermakna.

Prediksikan kecepatan flow-matching untuk posisi token gambar dari urutan yang dikemas.

