# JoyImageEditPlusTransformer3DModel

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

```python
from diffusers import JoyImageEditPlusTransformer3DModel

transformer = JoyImageEditPlusTransformer3DModel.from_pretrained("jdopensource/JoyAI-Image-Edit-Plus-Diffusers", subfolder="transformer", dtype=torch.bfloat16)
```

## JoyImageEditPlusTransformer3DModel[[diffusers.JoyImageEditPlusTransformer3DModel]]

#### diffusers.JoyImageEditPlusTransformer3DModel[[diffusers.JoyImageEditPlusTransformer3DModel]]

```python
diffusers.JoyImageEditPlusTransformer3DModel(patch_size: list[int] = [1, 2, 2], in_channels: int = 16, out_channels: int | None = None, hidden_size: int = 3072, num_attention_heads: int = 24, text_dim: int = 4096, mlp_width_ratio: float = 4.0, num_layers: int = 20, rope_dim_list: list[int] = [16, 56, 56], rope_type: str = 'rope', theta: int = 256)
```

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

**Tham số:**

patch_size (`list`, mặc định là `[1, 2, 2]`) : Kích thước patch để patchify đầu vào latent dọc theo các chiều `(t, h, w)`.

in_channels (`int`, mặc định là `16`) : Số lượng kênh trong latent đầ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`.

hidden_size (`int`, mặc định là `3072`) : Độ chiều của các biểu diễn ẩn.

num_attention_heads (`int`, mặc định là `24`) : Số lượng đầu chú ý.

text_dim (`int`, mặc định là `4096`) : Độ chiều của đầu ra bộ mã hóa văn bản.

mlp_width_ratio (`float`, mặc định là `4.0`) : Tỷ lệ giữa chiều ẩn của MLP và `hidden_size`.

num_layers (`int`, mặc định là `20`) : Số lượng khối transformer double-stream.

rope_dim_list (`list[int]`, mặc định là `[16, 56, 56]`) : Các kích thước cho nhúng vị trí quay 3D dọc theo `(t, h, w)`.

rope_type (`str`, mặc định là `"rope"`) : Kiểu của nhúng vị trí quay (rotary positional embedding).

theta (`int`, mặc định là `256`) : Tần số cơ bản cho các nhúng xoay (rotary embeddings).

JoyImage Edit Plus Transformer để chỉnh sửa đa ảnh.

Sử dụng phương pháp patchify+padding, trong đó mỗi hình ảnh tham chiếu và nhiễu mục tiêu được patchify độc lập rồi nối thành một chuỗi patch phẳng. Hỗ trợ hình ảnh tham chiếu có độ phân giải thay đổi.

Định dạng đầu vào: `[B, max_patches, C, pt, ph, pw]` (các patch đệm 6 chiều).

#### forward[[diffusers.JoyImageEditPlusTransformer3DModel.forward]]

```python
forward(hidden_states: Tensor, timestep: Tensor, encoder_hidden_states: Tensor, encoder_hidden_states_mask: typing.Optional[torch.Tensor] = None, shape_list: list[list[tuple[int, int, int]]] = None, return_dict: bool = True)
```

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

**Tham số:**

hidden_states : [B, max_patches, C, pt, ph, pw] - đầu vào latent đã được chia thành các patch.

timestep : [B] - bước thời gian khuếch tán.

encoder_hidden_states : [B, L, D] - đầu ra của text encoder.

encoder_hidden_states_mask : [B, L] - attention mask cho các token văn bản.

shape_list : Danh sách theo từng mẫu gồm các bộ ba (t, h, w) cho mỗi thành phần (target + references).

return_dict : Xác định việc trả về dict hay tuple.

**Trả về:**

Nếu `return_dict` là True, một [Transformer2DModelOutput](/docs/diffusers/main/vi/api/models/cogview3plus_transformer2d#diffusers.models.modeling_outputs.Transformer2DModelOutput) sẽ được trả về, ngược lại một `tuple` sẽ được trả về trong đó phần tử đầu tiên là tensor mẫu.

## 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/main/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/main/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/main/vi/api/models/transformer2d#diffusers.Transformer2DModel).

