# 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 Transformer 块层数。

num_single_dit_layers (`int`，*可选*，默认值为 32)：要使用的 Transformer 块层数。这些块使用拼接后的图像和文本表示。

attention_head_dim (`int`，*可选*，默认为 256)：每个头中的通道数。

num_attention_heads (`int`，*可选*，默认为 12)：用于多头注意力的头数。

joint_attention_dim (`int`, *可选*) : 要使用的 `encoder_hidden_states` 维度数量。

caption_projection_dim (`int`) : 在投影 `encoder_hidden_states` 时使用的维度数。

out_channels (`int`，默认为 4)：输出通道数。

pos_embed_max_size (`int`，默认为 1024)：从图像潜在变量中嵌入的最大位置数。

AuraFlow（https://blog.fal.ai/auraflow/）中介绍的 2D Transformer 模型。

#### 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 字典，如果指定，将作为参数传递给 [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py) 中 `self.processor` 下定义的 `AttentionProcessor`。

return_dict (`bool`，*可选*，默认为 `True`)：是否返回 `~models.transformer_2d.Transformer2DModelOutput` 而不是普通元组。

**返回值：**

如果 `return_dict` 为 True，则返回 `~models.transformer_2d.Transformer2DModelOutput`，否则返回一个 `tuple`，其中第一个元素是样本张量。

[AuraFlowTransformer2DModel](/docs/diffusers/v0.43.0/zh/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 投影。对于自注意力模块，所有投影矩阵（即 query、key、value）均会被融合。对于交叉注意力模块，key 和 value 投影矩阵会被融合。

> [!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 处于 🧪 实验阶段。

