# PAN2Transformer3DModel

El transformer de difusión de PAN 2. Ejecuta una atención conjunta sobre los tokens de video y los tokens de texto, con proyecciones y redes feed-forward separadas para cada flujo.

La entrada de video apila los latentes ruidosos, los latentes de condicionamiento y una máscara de condicionamiento de un solo canal, de modo que el mismo modelo sirve para texto a video e imagen a 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)
```

[Fuente](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/transformer_pan2.py#L325)

**Parámetros:**

patch_size (`tuple[int, int, int]`, por defecto `(1, 2, 2)`) : El tamaño de parche `(t, h, w)` de la incrustación de parches.

in_channels (`int`, por defecto `97`) : El número de canales de entrada: latentes ruidosos, latentes de condicionamiento y un canal de máscara de condicionamiento.

out_channels (`int`, por defecto `48`) : El número de canales de salida.

num_attention_heads (`int`, por defecto `32`) : El número de cabezas de atención.

attention_head_dim (`int`, por defecto `128`) : El número de canales en cada cabeza de atención.

num_layers (`int`, por defecto `44`) : El número de bloques de atención conjunta.

num_refiner_layers (`int`, por defecto `4`) : El número de bloques de refinamiento de tokens aplicados a las incrustaciones de texto.

mlp_ratio (`float`, por defecto `8.0`) : La proporción entre la dimensión interna del feed-forward del video y la dimensión oculta.

context_mlp_ratio (`float`, por defecto `4.0`) : La proporción entre la dimensión interna de la red feed-forward del texto y la dimensión oculta.

refiner_mlp_ratio (`float`, por defecto `4.0`) : La proporción entre la dimensión interna de la red feed-forward del refinador de tokens y la dimensión oculta.

text_embed_dim (`int`, por defecto `4096`) : La dimensión de los estados ocultos del codificador de texto.

rope_axes_dim (`tuple[int, int, int]`, por defecto `(16, 56, 56)`) : El número de canales de cada eje `(t, h, w)` en el embebido rotatorio.

rope_theta (`float`, por defecto `256.0`) : La base del embebido rotatorio.

rope_temporal_scale (`float`, por defecto `16 / 24`) : El factor con el que se multiplican las posiciones de los fotogramas del embebido rotatorio: la tasa de fotogramas de referencia del embebido rotatorio sobre la tasa de fotogramas de los vídeos (16 sobre 24 fps).

El transformer de difusión de PAN 2.

Una pila de bloques de atención conjunta sobre la concatenación de los latentes de video segmentados en parches y los tokens de texto refinados. La entrada de video lleva los latentes ruidosos, los latentes de condicionamiento y una máscara de condicionamiento apilados a lo largo del eje de canales, de modo que el mismo modelo sirve para texto-a-video e imagen-a-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)
```

[Fuente](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/models/transformers/transformer_pan2.py#L438)

**Parámetros:**

hidden_states (`torch.Tensor` de forma `(batch_size, in_channels, num_frames, height, width)`) : Los latentes con ruido, los latentes de condicionamiento y la máscara de condicionamiento, concatenados a lo largo de los canales.

timestep (`torch.Tensor` de forma `(batch_size,)`) : El paso de tiempo de desruido en `[0, 1000]`.

encoder_hidden_states (`torch.Tensor` de forma `(batch_size, text_seq_len, text_embed_dim)`) : Los estados ocultos del codificador de texto.

attention_kwargs (`dict`, *opcional*) : Un diccionario de kwargs que se pasa al `AttentionProcessor`; solo se utiliza para la escala de LoRA.

return_dict (`bool`, *opcional*, valor predeterminado `True`) : Indica si se debe devolver un [Transformer2DModelOutput](/docs/diffusers/v0.43.0/es/api/models/cogview3plus_transformer2d#diffusers.models.modeling_outputs.Transformer2DModelOutput) en lugar de una tupla simple.

**Devuelve:** [Transformer2DModelOutput](/docs/diffusers/v0.43.0/es/api/models/cogview3plus_transformer2d#diffusers.models.modeling_outputs.Transformer2DModelOutput) o `tuple`

La velocidad predicha de forma `(batch_size, out_channels, num_frames, height, width)`.

El método forward de [PAN2Transformer3DModel](/docs/diffusers/v0.43.0/es/api/models/pan2_transformer3d#diffusers.PAN2Transformer3DModel).

