# AuraFlowTransformer2DModel

Un modelo Transformer para datos similares a imágenes de [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)
```

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

**Parámetros:**

sample_size (`int`) : El ancho de las imágenes latentes. Esto se fija durante el entrenamiento, ya que se utiliza para aprender un número de embeddings de posición.

patch_size (`int`) : Tamaño del parche para convertir los datos de entrada en pequeños parches.

in_channels (`int`, *opcional*, valor predeterminado 4) : El número de canales en la entrada.

num_mmdit_layers (`int`, *opcional*, valor predeterminado 4) : El número de capas de bloques Transformer MMDiT a utilizar.

num_single_dit_layers (`int`, *opcional*, valor predeterminado 32) : El número de bloques de Transformer a utilizar. Estos bloques usan representaciones concatenadas de imagen y texto.

attention_head_dim (`int`, *opcional*, valor predeterminado 256) : El número de canales en cada cabeza.

num_attention_heads (`int`, *opcional*, valor predeterminado 12) : El número de cabezas a utilizar para la atención multi-cabeza.

joint_attention_dim (`int`, *opcional*) : El número de dimensiones de `encoder_hidden_states` a utilizar.

caption_projection_dim (`int`) : Número de dimensiones a utilizar al proyectar `encoder_hidden_states`.

out_channels (`int`, por defecto 4) : Número de canales de salida.

pos_embed_max_size (`int`, por defecto 1024) : Posiciones máximas a incrustar desde los latentes de la imagen.

Un modelo Transformer 2D tal como se introdujo en 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)
```

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

**Parámetros:**

hidden_states (`torch.FloatTensor` de forma `(batch size, channel, height, width)`) : `hidden_states` de entrada.

encoder_hidden_states (`torch.FloatTensor` de forma `(batch size, sequence_len, embed_dims)`) : Embeddings condicionales (embeddings calculados a partir de las condiciones de entrada, como los prompts) a utilizar.

timestep (`torch.LongTensor`) : Se utiliza para indicar el paso de desruido.

attention_kwargs (`dict`, *opcional*) : Un diccionario de kwargs que, si se especifica, se pasa al `AttentionProcessor` tal como se define bajo `self.processor` en [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).

return_dict (`bool`, *opcional*, valor predeterminado `True`) : Indica si se debe devolver un `~models.transformer_2d.Transformer2DModelOutput` en lugar de una tupla simple.

**Devuelve:**

Si `return_dict` es True, se devuelve un `~models.transformer_2d.Transformer2DModelOutput`; en caso contrario, se devuelve una `tuple` cuyo primer elemento es el tensor de la muestra.

El método forward de [AuraFlowTransformer2DModel](/docs/diffusers/main/es/api/models/aura_flow_transformer2d#diffusers.AuraFlowTransformer2DModel).

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

```python
fuse_qkv_projections()
```

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

Habilita las proyecciones QKV fusionadas. Para los módulos de autoatención, todas las matrices de proyección (es decir, consulta, clave y valor) se fusionan. Para los módulos de atención cruzada, las matrices de proyección de clave y valor se fusionan.

> [!WARNING] > Esta API es 🧪 experimental.

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

```python
unfuse_qkv_projections()
```

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

Desactiva la proyección QKV fusionada si está habilitada.

> [!WARNING] > Esta API es 🧪 experimental.

