# HunyuanDiT2DModel

Một mô hình Diffusion Transformer cho dữ liệu 2D từ [Hunyuan-DiT](https://github.com/Tencent/HunyuanDiT).

## HunyuanDiT2DModel[[diffusers.HunyuanDiT2DModel]]

#### diffusers.HunyuanDiT2DModel[[diffusers.HunyuanDiT2DModel]]

```python
diffusers.HunyuanDiT2DModel(num_attention_heads: int = 16, attention_head_dim: int = 88, in_channels: int | None = None, patch_size: int | None = None, activation_fn: str = 'gelu-approximate', sample_size = 32, hidden_size = 1152, num_layers: int = 28, mlp_ratio: float = 4.0, learn_sigma: bool = True, cross_attention_dim: int = 1024, norm_type: str = 'layer_norm', cross_attention_dim_t5: int = 2048, pooled_projection_dim: int = 1024, text_len: int = 77, text_len_t5: int = 256, use_style_cond_and_image_meta_size: bool = True)
```

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

**Tham số:**

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

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

in_channels (`int`, *tuỳ chọn*) : Số lượng kênh trong đầu vào và đầu ra (cần chỉ định nếu đầu vào là **liên tục**).

patch_size (`int`, *tuỳ chọn*) : Kích thước của patch được sử dụng cho đầu vào.

activation_fn (`str`, *tùy chọn*, mặc định là `"geglu"`) : Hàm kích hoạt được sử dụng trong mạng truyền thẳng.

sample_size (`int`, *optional*) : Độ 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í.

dropout (`float`, *tuỳ chọn*, mặc định là 0.0) : Xác suất dropout cần sử dụng.

cross_attention_dim (`int`, *optional*) : Số chiều của embedding văn bản trong clip.

hidden_size (`int`, *optional*) : Kích thước của lớp ẩn trong các lớp nhúng điều kiện.

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

mlp_ratio (`float`, *tuỳ chọn*, mặc định là 4.0) : Tỷ lệ giữa kích thước lớp ẩn và kích thước đầu vào.

learn_sigma (`bool`, *tùy chọn*, mặc định là `True`) : Có dự đoán phương sai hay không.

cross_attention_dim_t5 (`int`, *tuỳ chọn*) : Số chiều trong t5 text embedding.

pooled_projection_dim (`int`, *tuỳ chọn*) : Kích thước của phép chiếu đã gộp (pooled projection).

text_len (`int`, *tuỳ chọn*) : Độ dài của nhúng văn bản clip.

text_len_t5 (`int`, *optional*) : Độ dài của nhúng văn bản T5.

use_style_cond_and_image_meta_size (`bool`,  *tùy chọn*) : Có sử dụng điều kiện phong cách và kích thước meta của hình ảnh hay không. True cho phiên bản <=1.1, False cho phiên bản >= 1.2

HunYuanDiT: Mô hình khuếch tán với bộ khung Transformer.

Kế thừa ModelMixin và ConfigMixin để tương thích với trình lấy mẫu StableDiffusionPipeline của diffusers.

#### enable_forward_chunking[[diffusers.HunyuanDiT2DModel.enable_forward_chunking]]

```python
enable_forward_chunking(chunk_size: int | None = None, dim: int = 0)
```

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

**Tham số:**

chunk_size (`int`, *optional*) : Kích thước chunk của các lớp feed-forward. Nếu không được chỉ định, lớp feed-forward sẽ được thực hiện riêng lẻ trên mỗi tensor có dim=`dim`.

dim (`int`, *optional*, mặc định là `0`) : Chiều mà phép tính feed-forward nên được chia nhỏ. Chọn giữa dim=0 (batch) hoặc dim=1 (chiều dài chuỗi).

Đặt bộ xử lý chú ý để sử dụng [chia nhỏ feed forward](https://huggingface.co/blog/reformer#2-chunked-feed-forward-layers).

#### forward[[diffusers.HunyuanDiT2DModel.forward]]

```python
forward(hidden_states, timestep, encoder_hidden_states = None, text_embedding_mask = None, encoder_hidden_states_t5 = None, text_embedding_mask_t5 = None, image_meta_size = None, style = None, image_rotary_emb = None, controlnet_block_samples = None, return_dict = True)
```

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

**Tham số:**

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

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

encoder_hidden_states ( `torch.Tensor` có shape `(batch size, sequence len, embed dims)`, *optional*) : Các embedding điều kiện cho lớp cross attention. Đây là đầu ra của `BertModel`.

text_embedding_mask : torch.Tensor Một attention mask có shape `(batch, key_tokens)` được áp dụng cho `encoder_hidden_states`. Đây là đầu ra của `BertModel`.

encoder_hidden_states_t5 ( `torch.Tensor` có shape `(batch size, sequence len, embed dims)`, *optional*) : Các embedding điều kiện cho lớp cross attention. Đây là đầu ra của T5 Text Encoder.

text_embedding_mask_t5 : torch.Tensor Một attention mask có shape `(batch, key_tokens)` được áp dụng cho `encoder_hidden_states`. Đây là đầu ra của T5 Text Encoder.

image_meta_size (torch.Tensor) : Nhúng điều kiện chỉ ra kích thước ảnh

style : torch.Tensor: Nhúng điều kiện chỉ định phong cách

image_rotary_emb (`torch.Tensor`) : Các embedding xoay hình ảnh cần áp dụng lên các tensor query và key trong quá trình tính toán chú ý.

controlnet_block_samples (`list` của `torch.Tensor`, *tùy chọn*) : Một danh sách các tensor mà nếu được chỉ định sẽ được cộng vào phần dư (residuals) của các khối transformer.

return_dict : bool Xác định có trả về một từ điển 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 [HunyuanDiT2DModel](/docs/diffusers/v0.43.0/vi/api/models/hunyuan_transformer2d#diffusers.HunyuanDiT2DModel).

#### fuse_qkv_projections[[diffusers.HunyuanDiT2DModel.fuse_qkv_projections]]

```python
fuse_qkv_projections()
```

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

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.

#### set_default_attn_processor[[diffusers.HunyuanDiT2DModel.set_default_attn_processor]]

```python
set_default_attn_processor()
```

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

Tắt các bộ xử lý chú ý tùy chỉnh và đặt cài đặt chú ý mặc định.

#### unfuse_qkv_projections[[diffusers.HunyuanDiT2DModel.unfuse_qkv_projections]]

```python
unfuse_qkv_projections()
```

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

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.

