# ZImageTransformer2DModel

[Z-Image](https://huggingface.co/Tongyi-MAI/Z-Image-Turbo)からの画像類似データ向けのTransformerモデル。

## ZImageTransformer2DModel[[diffusers.ZImageTransformer2DModel]]

#### diffusers.ZImageTransformer2DModel[[diffusers.ZImageTransformer2DModel]]

```python
diffusers.ZImageTransformer2DModel(all_patch_size = (2,), all_f_patch_size = (1,), in_channels = 16, dim = 3840, n_layers = 30, n_refiner_layers = 2, n_heads = 30, n_kv_heads = 30, norm_eps = 1e-05, qk_norm = True, cap_feat_dim = 2560, siglip_feat_dim = None, rope_theta = 256.0, t_scale = 1000.0, axes_dims = [32, 48, 48], axes_lens = [1024, 512, 512])
```

[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/transformer_z_image.py#L361)

#### forward[[diffusers.ZImageTransformer2DModel.forward]]

```python
forward(x: list[torch.Tensor, list[list[torch.Tensor]]], t, cap_feats: list[torch.Tensor, list[list[torch.Tensor]]], return_dict: bool = True, controlnet_block_samples: dict[int, torch.Tensor] | None = None, siglip_feats: list[list[torch.Tensor]] | None = None, image_noise_mask: list[list[int]] | None = None, patch_size: int = 2, f_patch_size: int = 1, joint_attention_kwargs: dict[str, typing.Any] | None = None)
```

[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/transformer_z_image.py#L896)

**パラメータ:**

x (`list` of `torch.Tensor` or nested `list` of `torch.Tensor`) : 入力ラテンツ。標準モードで実行する場合はフラットなリスト、オムニモードで実行する場合はネストされたリストです。

t (`torch.Tensor`) : デノイジングステップを示すために使用されます。

cap_feats (`list` of `torch.Tensor` or nested `list` of `torch.Tensor`) : 使用する条件キャプション埋め込み（プロンプトなどの入力条件から計算される埋め込み）です。

return_dict (`bool`、*任意*、デフォルトは`True`) : プレーンなタプルではなく`~models.transformer_2d.Transformer2DModelOutput`を返すかどうか。

controlnet_block_samples (`dict` of `int` to `torch.Tensor`, *optional*) : ブロックインデックスからテンソルへのマッピング。指定された場合、そのテンソルは Transformer ブロックの残差に追加されます。

siglip_feats (`list` of `list` of `torch.Tensor`, *optional*) : 追加の条件付けとして使用される、任意の SigLIP 画像特徴量。

image_noise_mask (`list` of `list` of `int`, *optional*) : omni モードにおいて、各画像のノイズ付きトークンとクリーンなトークンを示すノイズマスク。

patch_size (`int`, *optional*, デフォルトは 2) : 入力潜在変数をパッチ化するために使用される空間パッチサイズ。

f_patch_size (`int`、*optional*、デフォルトは 1) : 入力潜在変数をパッチ化するために使用される時間方向のパッチサイズ。

joint_attention_kwargs (`dict`, *任意*) : kwargs の辞書です。LoRA レイヤーをスケーリングするために、`scale` エントリのみが使用されます。

**戻り値:**

`return_dict` が True の場合、`~models.transformer_2d.Transformer2DModelOutput` が返され、それ以外の場合は、最初の要素がサンプルテンソルである `tuple` が返されます。

[ZImageTransformer2DModel](/docs/diffusers/v0.43.0/ja/api/models/z_image_transformer2d#diffusers.ZImageTransformer2DModel)のforwardメソッドです。

フロー: patchify -> t_embed -> x_embed -> x_refine -> cap_embed -> cap_refine -> [siglip_embed -> siglip_refine] -> build_unified -> main_layers -> final_layer -> unpatchify

#### patchify_and_embed[[diffusers.ZImageTransformer2DModel.patchify_and_embed]]

```python
patchify_and_embed(all_image: list[torch.Tensor], all_cap_feats: list[torch.Tensor], patch_size: int, f_patch_size: int)
```

[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/transformer_z_image.py#L590)

基本モードでのPatchify: バッチアイテムごとに1枚の画像。

#### patchify_and_embed_omni[[diffusers.ZImageTransformer2DModel.patchify_and_embed_omni]]

```python
patchify_and_embed_omni(all_x: list[list[torch.Tensor]], all_cap_feats: list[list[torch.Tensor]], all_siglip_feats: list[list[torch.Tensor]], patch_size: int, f_patch_size: int, images_noise_mask: list[list[int]])
```

[ソース](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/transformer_z_image.py#L627)

omniモード向けのPatchify: 1つのバッチアイテムにノイズマスク付きの複数画像。

