# PAN2Transformer3DModel

Biến đổi khuếch tán của PAN 2. Nó chạy chú ý liên hợp trên các token video và các token văn bản, với các phép chiếu và mạng truyền thẳng riêng biệt cho từng luồng.

Đầu vào video xếp chồng các latent nhiễu, các latent điều kiện và một mặt nạ điều kiện một kênh, nhờ đó cùng một mô hình phục vụ cả text-to-video và image-to-video.

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

[Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_pan2.py#L325)

**Tham số:**

patch_size (`tuple[int, int, int]`, mặc định là `(1, 2, 2)`) : Kích thước patch `(t, h, w)` của patch embedding.

in_channels (`int`, mặc định là `97`) : Số lượng kênh đầu vào: latents nhiễu, latents điều kiện và một kênh mask điều kiện.

out_channels (`int`, mặc định là `48`) : Số lượng kênh đầu ra.

num_attention_heads (`int`, mặc định là `32`) : Số lượng đầu chú ý.

attention_head_dim (`int`, mặc định là `128`) : Số lượng kênh trong mỗi đầu chú ý.

num_layers (`int`, mặc định là `44`) : Số lượng khối joint-attention.

num_refiner_layers (`int`, mặc định là `4`) : Số lượng khối token refiner được áp dụng cho các nhúng văn bản.

mlp_ratio (`float`, mặc định là `8.0`) : Tỷ lệ giữa chiều trong của lớp feed-forward trong video và chiều ẩn.

context_mlp_ratio (`float`, mặc định là `4.0`) : Tỷ lệ giữa chiều trong của lớp feed-forward văn bản và chiều ẩn.

refiner_mlp_ratio (`float`, mặc định là `4.0`) : Tỷ lệ giữa chiều trong của mạng feed-forward của token refiner và chiều ẩn.

text_embed_dim (`int`, mặc định là `4096`) : Kích thước của các trạng thái ẩn của bộ mã hóa văn bản.

rope_axes_dim (`tuple[int, int, int]`, mặc định là `(16, 56, 56)`) : Số kênh của mỗi trục `(t, h, w)` trong nhúng quay (rotary embedding).

rope_theta (`float`, mặc định là `256.0`) : Cơ số của rotary embedding.

rope_temporal_scale (`float`, mặc định là `16 / 24`) : Hệ số nhân với vị trí khung của nhúng xoay: tốc độ khung tham chiếu của nhúng xoay trên tốc độ khung của video (16 trên 24 fps).

Transformer khuếch tán của PAN 2.

Một chồng các khối joint-attention trên phép nối của các latents video đã được patchify và các token văn bản đã được tinh chỉnh. Đầu vào video mang theo các latents nhiễu, các latents điều kiện và một mặt nạ điều kiện được xếp chồng dọc theo trục kênh, nhờ đó cùng một mô hình phục vụ cho cả text-to-video và image-to-video.

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

[Nguồn](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/transformers/transformer_pan2.py#L438)

**Tham số:**

hidden_states (`torch.Tensor` có hình dạng `(batch_size, in_channels, num_frames, height, width)`) : Các latents nhiễu, các latents điều kiện và mặt nạ điều kiện, được nối theo chiều kênh.

timestep (`torch.Tensor` có hình dạng `(batch_size,)`) : Bước thời gian khử nhiễu trong `[0, 1000]`.

encoder_hidden_states (`torch.Tensor` có hình dạng `(batch_size, text_seq_len, text_embed_dim)`) : Trạng thái ẩn của bộ mã hóa văn bản.

attention_kwargs (`dict`, *tùy chọn*) : Một từ điển kwargs được truyền đến `AttentionProcessor`; chỉ được sử dụng cho tỷ lệ LoRA.

return_dict (`bool`, *tùy chọn*, mặc định là `True`) : Có nên trả về một [Transformer2DModelOutput](/docs/diffusers/main/vi/api/models/cogview3plus_transformer2d#diffusers.models.modeling_outputs.Transformer2DModelOutput) thay vì một tuple thông thường hay không.

**Trả về:** [Transformer2DModelOutput](/docs/diffusers/main/vi/api/models/cogview3plus_transformer2d#diffusers.models.modeling_outputs.Transformer2DModelOutput) hoặc `tuple`

Tốc độ dự đoán có hình dạng `(batch_size, out_channels, num_frames, height, width)`.

Phương thức forward của [PAN2Transformer3DModel](/docs/diffusers/main/vi/api/models/pan2_transformer3d#diffusers.PAN2Transformer3DModel).

