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

[ソース](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)` 次元に沿って潜在入力のパッチ化を行うためのパッチサイズ。

in_channels (`int`、デフォルトは`16`) : 入力潜在変数のチャネル数。

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`) : `hidden_size`に対するMLPの隠れ層次元の比率です。

num_layers (`int`、デフォルトは`20`) : ダブルストリームtransformerブロックの数。

rope_dim_list (`list[int]`、デフォルトは `[16, 56, 56]`) : `(t, h, w)` 方向の 3D 回転位置埋め込みの次元数。

rope_type (`str`、デフォルトは`"rope"`) : 回転位置埋め込みのタイプ。

theta (`int`、デフォルトは`256`) : rotary embeddingsのベース周波数です。

複数画像の編集に対応した JoyImage Edit Plus Transformer。

各参照画像とターゲットノイズを独立してパッチ化し、平坦なパッチシーケンスに連結するパッチ化+パディング方式を採用しています。可変解像度の参照画像に対応しています。

入力形式: `[B, max_patches, C, pt, ph, pw]`（6次元のパディング済みパッチ）。

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

[ソース](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 のタイムステップ。

encoder_hidden_states : [B, L, D] - テキストエンコーダーの出力。

encoder_hidden_states_mask : [B, L] - テキストトークン用のアテンションマスク。

shape_list : 各コンポーネント（ターゲット + 参照）ごとの (t, h, w) タプルのサンプルごとのリスト。

return_dict : dict を返すか、tuple を返すかを指定します。

**戻り値:**

`return_dict` が True の場合、[Transformer2DModelOutput](/docs/diffusers/main/ja/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/ja/api/models/transformer2d#diffusers.Transformer2DModel) が離散型の場合 `(batch size, num_vector_embeds - 1, num_latent_pixels)`) : `encoder_hidden_states` 入力を条件とする隠れ状態の出力です。離散型の場合、ノイズ除去されていない潜在ピクセルの確率分布を返します。

[Transformer2DModel](/docs/diffusers/main/ja/api/models/transformer2d#diffusers.Transformer2DModel)の出力です。

