# Flux2Transformer2DModel

Một mô hình Transformer cho dữ liệu dạng ảnh từ [Flux2](https://hf.co/black-forest-labs/FLUX.2-dev).

## Flux2Transformer2DModel[[diffusers.Flux2Transformer2DModel]]

#### diffusers.Flux2Transformer2DModel[[diffusers.Flux2Transformer2DModel]]

```python
diffusers.Flux2Transformer2DModel(patch_size: int = 1, in_channels: int = 128, out_channels: int | None = None, num_layers: int = 8, num_single_layers: int = 48, attention_head_dim: int = 128, num_attention_heads: int = 48, joint_attention_dim: int = 15360, timestep_guidance_channels: int = 256, mlp_ratio: float = 3.0, axes_dims_rope: tuple[int, ...] = (32, 32, 32, 32), rope_theta: int = 2000, eps: float = 1e-06, guidance_embeds: bool = True)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_flux2.py#L1059)

**Tham số:**

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

in_channels (`int`, mặc định là `128`) : Số lượng kênh trong đầu vào.

out_channels (`int`, *tuỳ chọn*, mặc định là `None`) : Số lượng kênh trong đầu ra. Nếu không được chỉ định, giá trị mặc định sẽ là `in_channels`.

num_layers (`int`, mặc định là `8`) : Số lượng lớp của các khối DiT dual stream cần sử dụng.

num_single_layers (`int`, mặc định là `48`) : Số lượng lớp của các khối DiT single stream cần sử dụng.

attention_head_dim (`int`, mặc định là `128`) : Số chiều được sử dụng cho mỗi đầu chú ý.

num_attention_heads (`int`, mặc định là `48`) : Số lượng đầu chú ý (attention heads) cần sử dụng.

joint_attention_dim (`int`, mặc định là `15360`) : Số chiều được sử dụng cho chú ý liên hợp (chiều nhúng/kênh của `encoder_hidden_states`).

pooled_projection_dim (`int`, mặc định là `768`) : Số chiều được sử dụng cho phép chiếu đã gộp (pooled projection).

guidance_embeds (`bool`, mặc định là `True`) : Có sử dụng guidance embeddings cho biến thể guidance-distilled của mô hình hay không.

axes_dims_rope (`tuple[int]`, mặc định là `(32, 32, 32, 32)`) : Các chiều cần sử dụng cho các nhúng vị trí quay (rotary positional embeddings).

Mô hình Transformer được giới thiệu trong Flux 2.

Tham khảo: https://blackforestlabs.ai/announcing-black-forest-labs/

#### forward[[diffusers.Flux2Transformer2DModel.forward]]

```python
forward(hidden_states: Tensor, encoder_hidden_states: Tensor = None, timestep: LongTensor = None, img_ids: Tensor = None, txt_ids: Tensor = None, guidance: Tensor = None, joint_attention_kwargs: dict[str, typing.Any] | None = None, return_dict: bool = True, kv_cache: Flux2KVCache | None = None, kv_cache_mode: str | None = None, num_ref_tokens: int = 0, ref_fixed_timestep: float = 0.0)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_flux2.py#L1225)

**Tham số:**

hidden_states (`torch.Tensor` có hình dạng `(batch_size, image_sequence_length, in_channels)`) : `hidden_states` đầu vào.

encoder_hidden_states (`torch.Tensor` có shape `(batch_size, text_sequence_length, joint_attention_dim)`) : Các embeddings điều kiện (các 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.

img_ids (`torch.Tensor`) : Các id vị trí ảnh được sử dụng để tính các nhúng vị trí quay (rotary positional embeddings).

txt_ids (`torch.Tensor`) : Các id vị trí văn bản được sử dụng để tính các nhúng vị trí quay (rotary positional embeddings).

guidance (`torch.Tensor`, *tùy chọn*) : Nhúng thang độ dẫn hướng được sử dụng cho các biến thể đã chưng cất dẫn hướng của mô hình.

joint_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.

kv_cache (`Flux2KVCache`, *tùy chọn*) : Bộ đệm KV cho các token của hình ảnh tham chiếu. Khi `kv_cache_mode` là "extract", một bộ đệm mới sẽ được tạo và trả về. Khi là "cached", bộ đệm được cung cấp sẽ được sử dụng để tiêm K/V tham chiếu trong quá trình chú ý.

kv_cache_mode (`str`, *tùy chọn*) : Một trong "extract" (bước đầu tiên với các token tham chiếu) hoặc "cached" (các bước tiếp theo sử dụng K/V tham chiếu đã được đệm). Khi `None`, thực hiện bước truyền tiến chuẩn mà không có đệm KV.

num_ref_tokens (`int`, mặc định là `0`) : Số lượng token hình ảnh tham chiếu được thêm vào trước `hidden_states` (chỉ được sử dụng khi `kv_cache_mode="extract"`).

ref_fixed_timestep (`float`, mặc định là `0.0`) : Timestep cố định cho việc điều biến token tham chiếu (chỉ được sử dụng khi `kv_cache_mode="extract"`).

**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. Khi `kv_cache_mode="extract"`, cũng trả về `Flux2KVCache` đã được điền đầy.

Phương thức forward của [Flux2Transformer2DModel](/docs/diffusers/main/vi/api/models/flux2_transformer#diffusers.Flux2Transformer2DModel).

## Flux2Transformer2DModelOutput[[diffusers.models.transformers.transformer_flux2.Flux2Transformer2DModelOutput]]

#### diffusers.models.transformers.transformer_flux2.Flux2Transformer2DModelOutput[[diffusers.models.transformers.transformer_flux2.Flux2Transformer2DModelOutput]]

```python
diffusers.models.transformers.transformer_flux2.Flux2Transformer2DModelOutput(sample: torch.Tensor, kv_cache: Flux2KVCache | None = None)
```

[Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_flux2.py#L46)

**Tham số:**

sample (`torch.Tensor` có hình dạng `(batch_size, num_channels, height, width)`) : Trạng thái ẩn đầu ra được điều kiện bởi đầu vào `encoder_hidden_states`.

kv_cache (`Flux2KVCache`, *tùy chọn*) : Bộ đệm KV đã được nạp cho các token của hình ảnh tham chiếu. Chỉ được trả về khi `kv_cache_mode="extract"`.

Đầu ra của [Flux2Transformer2DModel](/docs/diffusers/main/vi/api/models/flux2_transformer#diffusers.Flux2Transformer2DModel).

