# PAN2Transformer3DModel

Диффузионный трансформер PAN 2. Он выполняет совместное внимание по токенам видео и токенам текста, используя отдельные проекции и сети прямого распространения для каждого потока.

Входные данные видео объединяют зашумлённые латенты, латенты условий и одноканальную маску условий, благодаря чему одна и та же модель используется для генерации видео по тексту и по изображению.

```python
import torch
from diffusers import PAN2Transformer3DModel

transformer = PAN2Transformer3DModel.from_pretrained("IFM/PAN2", subfolder="transformer", dtype=torch.bfloat16)
```

## PAN2Transformer3DModel[[diffusers.PAN2Transformer3DModel]]

#### diffusers.PAN2Transformer3DModel[[diffusers.PAN2Transformer3DModel]]

```python
diffusers.PAN2Transformer3DModel(patch_size: tuple[int, int, int] = (1, 2, 2), in_channels: int = 97, out_channels: int = 48, num_attention_heads: int = 32, attention_head_dim: int = 128, num_layers: int = 44, num_refiner_layers: int = 4, mlp_ratio: float = 8.0, context_mlp_ratio: float = 4.0, refiner_mlp_ratio: float = 4.0, text_embed_dim: int = 4096, rope_axes_dim: tuple[int, int, int] = (16, 56, 56), rope_theta: float = 256.0, rope_temporal_scale: float = 0.6666666666666666)
```

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_pan2.py#L325)

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

patch_size (`tuple[int, int, int]`, по умолчанию `(1, 2, 2)`) : размер патча `(t, h, w)` для встраивания патчей.

in_channels (`int`, по умолчанию `97`) : Количество входных каналов: зашумлённые латенты, латенты условий и один канал маски условий.

out_channels (`int`, по умолчанию `48`) : Количество выходных каналов.

num_attention_heads (`int`, по умолчанию `32`) : Количество головок внимания.

attention_head_dim (`int`, по умолчанию `128`) : количество каналов в каждой голове внимания.

num_layers (`int`, по умолчанию `44`) : Количество блоков совместного внимания.

num_refiner_layers (`int`, по умолчанию `4`) : Количество блоков уточнения токенов, применяемых к текстовым эмбеддингам.

mlp_ratio (`float`, по умолчанию `8.0`) : Соотношение внутренней размерности полносвязного слоя видео к скрытой размерности.

context_mlp_ratio (`float`, по умолчанию `4.0`) : Соотношение внутренней размерности текстового полносвязного слоя к размерности скрытого слоя.

refiner_mlp_ratio (`float`, по умолчанию `4.0`) : Соотношение внутренней размерности полносвязного слоя токенового рефинера к скрытой размерности.

text_embed_dim (`int`, по умолчанию `4096`) : Размерность скрытых состояний текстового энкодера.

rope_axes_dim (`tuple[int, int, int]`, по умолчанию `(16, 56, 56)`) : Количество каналов для каждой оси `(t, h, w)` в ротационном вложении.

rope_theta (`float`, по умолчанию `256.0`) : Основание для вращательного встраивания.

rope_temporal_scale (`float`, по умолчанию `16 / 24`) : Коэффициент, на который умножаются позиции кадров в ротационном встраивании: отношение эталонной частоты кадров ротационного встраивания к частоте кадров видео (16 к 24 кадрам в секунду).

Диффузионный трансформер PAN 2.

Стек блоков совместного внимания, применяемых к конкатенации патчированных латентов видео и уточнённых текстовых токенов. Входные данные видео содержат зашумлённые латенты, латенты для условного формирования и маску условий, сложенные вдоль оси каналов, благодаря чему одна и та же модель используется как для генерации видео по тексту, так и для генерации видео по изображению.

#### forward[[diffusers.PAN2Transformer3DModel.forward]]

```python
forward(hidden_states: Tensor, timestep: Tensor, encoder_hidden_states: Tensor, attention_kwargs: dict[str, typing.Any] | None = None, return_dict: bool = True)
```

[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_pan2.py#L438)

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

hidden_states (`torch.Tensor` формы `(batch_size, in_channels, num_frames, height, width)`) : зашумлённые латенты, латенты условий и маска условий, склеенные по каналам.

timestep (`torch.Tensor` формы `(batch_size,)`) : Шаг денойзинга в диапазоне `[0, 1000]`.

encoder_hidden_states (`torch.Tensor` формы `(batch_size, text_seq_len, text_embed_dim)`) : Скрытые состояния текстового энкодера.

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

return_dict (`bool`, *необязательный*, по умолчанию `True`) : Возвращать ли [Transformer2DModelOutput](/docs/diffusers/main/ru/api/models/cogview3plus_transformer2d#diffusers.models.modeling_outputs.Transformer2DModelOutput) вместо обычного кортежа.

**Возвращает:** [Transformer2DModelOutput](/docs/diffusers/main/ru/api/models/cogview3plus_transformer2d#diffusers.models.modeling_outputs.Transformer2DModelOutput) или `tuple`

Предсказанная скорость формы `(batch_size, out_channels, num_frames, height, width)`.

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

