# ZImageTransformer2DModel

Модель Transformer для изображений от [Z-Image](https://huggingface.co/Tongyi-MAI/Z-Image-Turbo).

## 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/main/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/main/src/diffusers/models/transformers/transformer_z_image.py#L896)

**Параметры:**

x (`list` из `torch.Tensor` или вложенный `list` из `torch.Tensor`) : Входные латенты. Плоский список при работе в стандартном режиме или вложенный список при работе в режиме omni.

t (`torch.Tensor`) : Используется для указания шага денойзинга.

cap_feats (`list` из `torch.Tensor` или вложенный `list` из `torch.Tensor`) : Векторы условных подписей (векторы, вычисленные на основе входных условий, таких как промпты), которые следует использовать.

return_dict (`bool`, *необязательный*, по умолчанию `True`) : Возвращать ли `~models.transformer_2d.Transformer2DModelOutput` вместо обычного кортежа.

controlnet_block_samples (`dict` из `int` в `torch.Tensor`, *необязательный*) : Соответствие между индексом блока и тензором, которые при указании добавляются к остаточным связям блоков трансформера.

siglip_feats (`list` из `list` из `torch.Tensor`, *необязательный*) : Необязательные признаки изображений SigLIP, используемые в качестве дополнительного условия.

image_noise_mask (`list` из `list` из `int`, *необязательный*) : Маски шума для каждого изображения, указывающие на шумовые и чистые токены в режиме omni.

patch_size (`int`, *optional*, по умолчанию 2) : Пространственный размер патча, используемый для разбиения входных латентов на патчи.

f_patch_size (`int`, *optional*, по умолчанию 1) : Размер временного патча, используемого для разбиения входных латентов на патчи.

joint_attention_kwargs (`dict`, *необязательный*) : Словарь kwargs. Используется только запись `scale`, для масштабирования слоёв LoRA.

**Возвращает:**

Если `return_dict` равно True, возвращается `~models.transformer_2d.Transformer2DModelOutput`, иначе — `tuple`, первым элементом которого является тензор выборки.

Метод forward модели [ZImageTransformer2DModel](/docs/diffusers/main/ru/api/models/z_image_transformer2d#diffusers.ZImageTransformer2DModel).

Поток: 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/main/src/diffusers/models/transformers/transformer_z_image.py#L590)

Patchify для базового режима: одно изображение на элемент батча.

#### 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/main/src/diffusers/models/transformers/transformer_z_image.py#L627)

Patchify для режима omni: несколько изображений на элемент батча с масками шума.

