# AuraFlowTransformer2DModel

Một mô hình Transformer cho dữ liệu dạng ảnh từ [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)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/auraflow_transformer_2d.py#L278)

**Tham số:**

sample_size (`int`) : Độ rộng của các ảnh tiềm ẩn. Giá trị này được cố định trong quá trình huấn luyện vì nó được dùng để học một số lượng embedding vị trí.

patch_size (`int`) : Kích thước patch để chuyển dữ liệu đầu vào thành các patch nhỏ.

in_channels (`int`, *tuỳ chọn*, mặc định là 4) : Số kênh trong đầu vào.

num_mmdit_layers (`int`, *tuỳ chọn*, mặc định là 4) : Số lượng lớp của các khối MMDiT Transformer cần sử dụng.

num_single_dit_layers (`int`, *optional*, mặc định là 32) : Số lượng lớp khối Transformer cần sử dụng. Các khối này sử dụng biểu diễn kết hợp của ảnh và văn bản.

attention_head_dim (`int`, *tuỳ chọn*, mặc định là 256) : Số lượng kênh trong mỗi đầu.

num_attention_heads (`int`, *tuỳ chọn*, mặc định là 12) : Số lượng đầu (heads) được sử dụng cho chú ý đa đầu (multi-head attention).

joint_attention_dim (`int`, *optional*) : Số chiều của `encoder_hidden_states` cần sử dụng.

caption_projection_dim (`int`) : Số chiều cần sử dụng khi chiếu `encoder_hidden_states`.

out_channels (`int`, mặc định là 4) : Số lượng kênh đầu ra.

pos_embed_max_size (`int`, mặc định là 1024) : Số vị trí tối đa để nhúng từ các latents của ảnh.

Một mô hình Transformer 2D như được giới thiệu trong 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)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/auraflow_transformer_2d.py#L400)

**Tham số:**

hidden_states (`torch.FloatTensor` có hình dạng `(batch size, channel, height, width)`) : `hidden_states` đầu vào.

encoder_hidden_states (`torch.FloatTensor` có shape `(batch size, sequence_len, embed_dims)`) : Các embeddings điều kiện (embeddings được tính từ các điều kiện đầu vào như prompts) cần sử dụng.

timestep (`torch.LongTensor`) : Dùng để chỉ bước khử nhiễu.

attention_kwargs (`dict`, *tùy chọn*) : Một từ điển kwargs mà nếu được chỉ định sẽ được truyền đến `AttentionProcessor` như đã định nghĩa dưới `self.processor` trong [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).

return_dict (`bool`, *tùy chọn*, mặc định là `True`) : Có nên trả về một `~models.transformer_2d.Transformer2DModelOutput` thay vì một tuple thông thường hay không.

**Trả về:**

Nếu `return_dict` là True, một `~models.transformer_2d.Transformer2DModelOutput` sẽ được trả về, ngược lại một `tuple` trong đó phần tử đầu tiên là tensor mẫu.

Phương thức forward của [AuraFlowTransformer2DModel](/docs/diffusers/v0.43.0/vi/api/models/aura_flow_transformer2d#diffusers.AuraFlowTransformer2DModel).

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

```python
fuse_qkv_projections()
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/auraflow_transformer_2d.py#L369)

Bật các phép chiếu QKV đã hợp nhất. Đối với các module tự chú ý, tất cả các ma trận chiếu (tức là truy vấn, khóa, giá trị) đều được hợp nhất. Đối với các module chú ý chéo, các ma trận chiếu khóa và giá trị được hợp nhất.

> [!WARNING] > API này 🧪 đang ở giai đoạn thử nghiệm.

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

```python
unfuse_qkv_projections()
```

[Nguồn](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/auraflow_transformer_2d.py#L391)

Tắt dự phóng QKV hợp nhất nếu đã được bật.

> [!WARNING] > API này 🧪 đang ở giai đoạn thử nghiệm.

