# QwenImageTransformer2DModel

Mô hình có thể được tải bằng đoạn mã sau.

```python
from diffusers import QwenImageTransformer2DModel

transformer = QwenImageTransformer2DModel.from_pretrained("Qwen/QwenImage-20B", subfolder="transformer", dtype=torch.bfloat16)
```

## QwenImageTransformer2DModel[[diffusers.QwenImageTransformer2DModel]]

#### diffusers.QwenImageTransformer2DModel[[diffusers.QwenImageTransformer2DModel]]

```python
diffusers.QwenImageTransformer2DModel(patch_size: int = 2, in_channels: int = 64, out_channels: int | None = 16, num_layers: int = 60, attention_head_dim: int = 128, num_attention_heads: int = 24, joint_attention_dim: int = 3584, guidance_embeds: bool = False, axes_dims_rope: tuple[int, int, int] = (16, 56, 56), zero_cond_t: bool = False, use_additional_t_cond: bool = False, use_layer3d_rope: bool = False)
```

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

**Tham số:**

patch_size (`int`, mặc định là `2`) : 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à `64`) : 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à `60`) : Số lượng lớp của các khối DiT dual 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à `24`) : Số lượng đầu chú ý (attention heads) cần sử dụng.

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

guidance_embeds (`bool`, mặc định là `False`) : 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à `(16, 56, 56)`) : Các kích thước 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 Qwen.

#### forward[[diffusers.QwenImageTransformer2DModel.forward]]

```python
forward(hidden_states: Tensor, encoder_hidden_states: Tensor = None, encoder_hidden_states_mask: Tensor = None, timestep: LongTensor = None, img_shapes: list[tuple[int, int, int]] | None = None, guidance: Tensor = None, attention_kwargs: dict[str, typing.Any] | None = None, controlnet_block_samples = None, additional_t_cond = None, return_dict: bool = True)
```

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

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

encoder_hidden_states_mask (`torch.Tensor` có shape `(batch_size, text_sequence_length)`, *tùy chọn*) : Mask cho hidden states của encoder. Dự kiến có giá trị 1.0 cho các token hợp lệ và 0.0 cho các token padding. Được sử dụng trong attention processor để ngăn việc chú ý đến các token padding. Mask có thể có bất kỳ pattern nào (không chỉ các token hợp lệ liên tiếp theo sau là padding) vì nó được áp dụng theo từng phần tử trong attention.

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

img_shapes (`list[tuple[int, int, int]]`, *tùy chọn*) : Hình dạng ảnh cho phép tính RoPE.

guidance (`torch.Tensor`, *tùy chọn*) : Tensor hướng dẫn cho việc tạo có điều kiện.

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

controlnet_block_samples (*tùy chọn*) : Các mẫu khối ControlNet để thêm vào các khối transformer.

additional_t_cond (`torch.Tensor`, *tùy chọn*) : Điều kiện bước thời gian bổ sung được thêm vào nhúng bước thời gian.

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 `QwenTransformer2DModel`.

## Transformer2DModelOutput[[diffusers.models.modeling_outputs.Transformer2DModelOutput]]

#### diffusers.models.modeling_outputs.Transformer2DModelOutput[[diffusers.models.modeling_outputs.Transformer2DModelOutput]]

```python
diffusers.models.modeling_outputs.Transformer2DModelOutput(sample: torch.Tensor)
```

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

**Tham số:**

sample (`torch.Tensor` có shape `(batch_size, num_channels, height, width)` hoặc `(batch size, num_vector_embeds - 1, num_latent_pixels)` nếu [Transformer2DModel](/docs/diffusers/v0.43.0/vi/api/models/transformer2d#diffusers.Transformer2DModel) là discrete) : Đầu ra của hidden states được điều kiện bởi đầu vào `encoder_hidden_states`. Nếu là discrete, trả về các phân phối xác suất cho các latent pixels chưa bị nhiễu.

Đầu ra của [Transformer2DModel](/docs/diffusers/v0.43.0/vi/api/models/transformer2d#diffusers.Transformer2DModel).

