# AuraFlowTransformer2DModel

Модель Transformer для изображений из [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)
```

[Источник](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/auraflow_transformer_2d.py#L278)

**Параметры:**

sample_size (`int`) : Ширина латентных изображений. Это значение фиксировано во время обучения, поскольку используется для обучения набора позиционных эмбеддингов.

patch_size (`int`) : Размер патча для разбиения входных данных на небольшие патчи.

in_channels (`int`, *необязательный*, по умолчанию 4) : Количество каналов на входе.

num_mmdit_layers (`int`, *optional*, по умолчанию 4) : Количество используемых блоков трансформера MMDiT.

num_single_dit_layers (`int`, *optional*, по умолчанию 32) : Количество блоков Transformer, которые следует использовать. Эти блоки используют конкатенированные представления изображений и текста.

attention_head_dim (`int`, *необязательный*, по умолчанию 256) : Количество каналов в каждой голове.

num_attention_heads (`int`, *optional*, по умолчанию 12) : Количество головок для использования в механизме внимания с несколькими головками.

joint_attention_dim (`int`, *optional*) : Количество измерений `encoder_hidden_states`, которые следует использовать.

caption_projection_dim (`int`) : Количество измерений, используемых при проецировании `encoder_hidden_states`.

out_channels (`int`, по умолчанию 4) : Количество выходных каналов.

pos_embed_max_size (`int`, по умолчанию 1024) : Максимальное количество позиций для встраивания из латентов изображения.

Двумерная модель Transformer, представленная в 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)
```

[Источник](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/auraflow_transformer_2d.py#L400)

**Параметры:**

hidden_states (`torch.FloatTensor` формы `(batch size, channel, height, width)`) : Входные `hidden_states`.

encoder_hidden_states (`torch.FloatTensor` формы `(batch size, sequence_len, embed_dims)`) : Условные эмбеддинги (эмбеддинги, вычисленные на основе входных условий, таких как промпты), которые следует использовать.

timestep (`torch.LongTensor`) : Используется для указания шага денойзинга.

attention_kwargs (`dict`, *необязательный*) : Словарь kwargs, который при указании передается в `AttentionProcessor`, определенный в `self.processor` в [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).

return_dict (`bool`, *необязательный*, по умолчанию `True`) : Возвращать ли `~models.transformer_2d.Transformer2DModelOutput` вместо обычного кортежа.

**Возвращает:**

Если `return_dict` равно True, возвращается `~models.transformer_2d.Transformer2DModelOutput`, иначе — `tuple`, первым элементом которого является тензор выборки.

Метод forward модели [AuraFlowTransformer2DModel](/docs/diffusers/v0.43.0/ru/api/models/aura_flow_transformer2d#diffusers.AuraFlowTransformer2DModel).

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

```python
fuse_qkv_projections()
```

[Источник](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/auraflow_transformer_2d.py#L369)

Включает объединённые проекции QKV. Для модулей само-внимания все матрицы проекций (т. е. запрос, ключ, значение) объединяются. Для модулей кросс-внимания объединяются матрицы проекций ключа и значения.

> [!WARNING] > Этот API 🧪 экспериментальный.

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

```python
unfuse_qkv_projections()
```

[Источник](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/auraflow_transformer_2d.py#L391)

Отключает объединенную проекцию QKV, если она включена.

> [!WARNING] > Этот API 🧪 экспериментальный.

