# Ideogram4Transformer2DModel

Un transformer para datos de tipo imagen de [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)
```

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

**Parámetros:**

in_channels (`int`, por defecto 128) : Número de canales latentes después de la patchification (`ae_channels * patch_size ** 2`).

num_layers (`int`, por defecto 34) : Número de bloques de transformer.

attention_head_dim (`int`, por defecto 256) : Dimensión de cada cabeza de atención; el tamaño oculto total es `attention_head_dim * num_attention_heads`.

num_attention_heads (`int`, por defecto 18) : Número de cabezas de atención.

intermediate_size (`int`, por defecto 12288) : Tamaño oculto de la red feed-forward utilizado por el MLP SwiGLU dentro de cada bloque.

adaln_dim (`int`, por defecto 512) : Dimensionalidad del vector de condicionamiento consumido por las modulaciones AdaLN.

llm_features_dim (`int`, por defecto 53248) : Dimensionalidad de las características de texto por token que se introducen en el modelo (típicamente una concatenación de estados ocultos de varias capas del codificador de texto).

rope_theta (`int`, por defecto 5_000_000) : Base utilizada por el embebido de posición rotacional multi-eje.

mrope_section (`tuple[int, int, int]`, por defecto `(24, 20, 20)`) : Número de frecuencias asignadas a cada uno de los ejes (t, h, w) de MRoPE.

norm_eps (`float`, por defecto 1e-5) : Epsilon utilizado por los módulos RMSNorm dentro de los bloques del transformer.

El backbone de transformer de flow-matching utilizado por el pipeline de Ideogram 4.

El transformer opera sobre una secuencia empaquetada única que contiene tanto tokens de condicionamiento de texto (producidos por un codificador de texto multimodal) como latentes de imagen parcheados. Indicadores por token distinguen los dos roles, y una máscara de atención diagonal por bloques derivada de `segment_ids` restringe cada muestra para que solo atienda a sí misma dentro de un lote empaquetado.

#### 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)
```

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

**Parámetros:**

hidden_states (`torch.Tensor` de forma `(batch_size, sequence_length, in_channels)`) : Secuencia empaquetada de tokens de imagen ruidosa y parcheada. Las posiciones que no son de imagen se enmascaran internamente.

timestep (`torch.Tensor` de forma `(batch_size,)` o `(batch_size, sequence_length)`) : Tiempo de flow-matching en `[0, 1]` (0 es ruido puro, 1 es datos limpios).

encoder_hidden_states (`torch.Tensor` de forma `(batch_size, sequence_length, llm_features_dim)`) : Características de condicionamiento de texto por token. Las posiciones no de texto se enmascaran internamente.

position_ids (`torch.Tensor` de forma `(batch_size, sequence_length, 3)`) : coordenadas `(t, h, w)` consumidas por el RoPE multi-eje.

segment_ids (`torch.Tensor` de forma `(batch_size, sequence_length)`) : id de muestra por token dentro de un lote empaquetado. Las posiciones que comparten un `segment_id` atienden entre sí.

indicator (`torch.Tensor` de forma `(batch_size, sequence_length)`) : Rol por token: `LLM_TOKEN_INDICATOR` (texto) o `OUTPUT_IMAGE_INDICATOR` (imagen).

attention_kwargs (`dict`, *opcional*) : Un diccionario de kwargs que se pasa al procesador de atención. Una entrada `"scale"` escala los pesos de LoRA (cuando el backend PEFT está activo).

return_dict (`bool`, *opcional*, valor predeterminado `True`) : Si se debe devolver un [Transformer2DModelOutput](/docs/diffusers/v0.43.0/es/api/models/cogview3plus_transformer2d#diffusers.models.modeling_outputs.Transformer2DModelOutput) en lugar de una tupla simple.

**Devuelve:**

[Transformer2DModelOutput](/docs/diffusers/v0.43.0/es/api/models/cogview3plus_transformer2d#diffusers.models.modeling_outputs.Transformer2DModelOutput) o una `tuple` cuyo primer elemento es un tensor de forma `(batch_size, sequence_length, in_channels)` en el dtype de cálculo del modelo. Solo las posiciones etiquetadas con `OUTPUT_IMAGE_INDICATOR` contienen predicciones de velocidad significativas.

Predice la velocidad de flow-matching para las posiciones de tokens de imagen de la secuencia empaquetada.

