# JoyImageEditPlusTransformer3DModel

다음 코드 스니펫으로 모델을 로드할 수 있습니다.

```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 = [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 = [16, 56, 56], rope_type: str = 'rope', theta: int = 256)
```

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

**매개변수:**

patch_size (`list`, 기본값 `[1, 2, 2]`) : `(t, h, w)` 차원을 따라 latent 입력을 patchify할 때 사용할 patch size입니다.

in_channels (`int`, 기본값 `16`) : 입력 latent의 채널 수입니다.

out_channels (`int`, *선택 사항*, 기본값 `None`) : 출력의 채널 수입니다. 지정하지 않으면 기본값은 `in_channels`입니다.

hidden_size (`int`, 기본값 `3072`) : 숨겨진 표현의 차원입니다.

num_attention_heads (`int`, 기본값 `24`) : 어텐션 헤드의 수입니다.

text_dim (`int`, 기본값 `4096`) : 텍스트 인코더 출력의 차원입니다.

mlp_width_ratio (`float`, 기본값 `4.0`) : MLP 은닉 차원과 `hidden_size`의 비율입니다.

num_layers (`int`, 기본값 `20`) : 이중 스트림 transformer 블록의 수입니다.

rope_dim_list (`list[int]`, 기본값 `[16, 56, 56]`) : `(t, h, w)` 방향의 3D 회전 위치 임베딩 차원입니다.

rope_type (`str`, 기본값 `"rope"`) : 회전 위치 임베딩의 유형.

theta (`int`, 기본값 `256`) : 회전 임베딩의 기본 주파수입니다.

멀티 이미지 편집을 위한 JoyImage Edit Plus Transformer

각 참조 이미지와 대상 노이즈를 독립적으로 패치화한 후 평탄한 패치 시퀀스로 연결하는 패치화+패딩 방식을 사용합니다. 가변 해상도의 참조 이미지를 지원합니다.

입력 형식: `[B, max_patches, C, pt, ph, pw]` (6D 패딩 패치).

#### 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 = None, return_dict: bool = True)
```

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

**매개변수:**

hidden_states : [B, max_patches, C, pt, ph, pw] - 패치화된 잠재 입력.

timestep : [B] - diffusion timestep.

encoder_hidden_states : [B, L, D] - 텍스트 인코더 출력.

encoder_hidden_states_mask : [B, L] - 텍스트 토큰에 대한 attention mask.

shape_list : 각 구성 요소(타깃 + 참조)에 대해 샘플별 (t, h, w) 튜플 목록.

return_dict : dict 또는 tuple을 반환할지 여부.

**반환값:**

`return_dict`가 True이면 [Transformer2DModelOutput](/docs/diffusers/main/ko/api/models/cogview3plus_transformer2d#diffusers.models.modeling_outputs.Transformer2DModelOutput)이 반환되고, 그렇지 않으면 첫 번째 요소가 샘플 텐서인 `tuple`이 반환됩니다.

## 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)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/modeling_outputs.py#L21)

**매개변수:**

sample (`torch.Tensor`, shape `(batch_size, num_channels, height, width)` 또는 [Transformer2DModel](/docs/diffusers/main/ko/api/models/transformer2d#diffusers.Transformer2DModel)이 discrete인 경우 `(batch size, num_vector_embeds - 1, num_latent_pixels)`) : `encoder_hidden_states` 입력에 조건부인 hidden states 출력입니다. discrete인 경우, 노이즈가 제거된 latent 픽셀에 대한 확률 분포를 반환합니다.

[Transformer2DModel](/docs/diffusers/main/ko/api/models/transformer2d#diffusers.Transformer2DModel)의 출력입니다.

