Diffusers documentation
PAN2Transformer3DModel
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.
import torch
from diffusers import PAN2Transformer3DModel
transformer = PAN2Transformer3DModel.from_pretrained("IFM/PAN2", subfolder="transformer", dtype=torch.bfloat16)PAN2Transformer3DModel
clase diffusers.PAN2Transformer3DModel
< source >( patch_size: tuple[int, int, int] = (1, 2, 2)in_channels: int = 97out_channels: int = 48num_attention_heads: int = 32attention_head_dim: int = 128num_layers: int = 44num_refiner_layers: int = 4mlp_ratio: float = 8.0context_mlp_ratio: float = 4.0refiner_mlp_ratio: float = 4.0text_embed_dim: int = 4096rope_axes_dim: tuple[int, int, int] = (16, 56, 56)rope_theta: float = 256.0rope_temporal_scale: float = 0.6666666666666666 )
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 defecto97) — El número de canales de entrada: latentes ruidosos, latentes de condicionamiento y un canal de máscara de condicionamiento. - out_channels (
int, por defecto48) — El número de canales de salida. - num_attention_heads (
int, por defecto32) — El número de cabezas de atención. - attention_head_dim (
int, por defecto128) — El número de canales en cada cabeza de atención. - num_layers (
int, por defecto44) — El número de bloques de atención conjunta. - num_refiner_layers (
int, por defecto4) — El número de bloques de refinamiento de tokens aplicados a las incrustaciones de texto. - mlp_ratio (
float, por defecto8.0) — La proporción entre la dimensión interna de la red feed-forward del vídeo y la dimensión oculta. - context_mlp_ratio (
float, por defecto4.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 defecto4.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 defecto4096) — 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 rotacional. - rope_theta (
float, por defecto256.0) — La base del embebido rotatorio. - rope_temporal_scale (
float, por defecto16 / 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
< source >( hidden_states: Tensortimestep: Tensorencoder_hidden_states: Tensorattention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = True ) → Transformer2DModelOutput or tuple
Parámetros
- hidden_states (
torch.Tensorde 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.Tensorde forma(batch_size,)) — El paso de tiempo de desruido en[0, 1000]. - encoder_hidden_states (
torch.Tensorde 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 alAttentionProcessor; solo se utiliza para la escala de LoRA. - return_dict (
bool, opcional, valor predeterminadoTrue) — Indica si se debe devolver un Transformer2DModelOutput en lugar de una tupla simple.
Devuelve
Transformer2DModelOutput o tuple
La velocidad predicha de forma (batch_size, out_channels, num_frames, height, width).
El método forward de PAN2Transformer3DModel.