Diffusers documentation
PAN2Transformer3DModel
PAN2Transformer3DModel
Le diffusion transformer de PAN 2. Il exécute une attention conjointe sur les jetons vidéo et les jetons texte, avec des projections et des réseaux feed-forward distincts pour chaque flux.
L'entrée vidéo empile les latents bruités, les latents de conditionnement et un masque de conditionnement à un canal, de sorte que le même modèle sert à la fois pour la génération de vidéo à partir de texte et pour la génération de vidéo à partir d'image.
import torch
from diffusers import PAN2Transformer3DModel
transformer = PAN2Transformer3DModel.from_pretrained("IFM/PAN2", subfolder="transformer", dtype=torch.bfloat16)PAN2Transformer3DModel
classe 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 )
Paramètres
- patch_size (
tuple[int, int, int], par défaut(1, 2, 2)) — La taille de patch(t, h, w)de l’incorporation de patch. - in_channels (
int, par défaut97) — Le nombre de canaux d’entrée : latents bruités, latents de conditionnement et un canal de masque de conditionnement. - out_channels (
int, par défaut48) — Le nombre de canaux de sortie. - num_attention_heads (
int, par défaut32) — Le nombre de têtes d'attention. - attention_head_dim (
int, par défaut128) — Le nombre de canaux dans chaque tête d'attention. - num_layers (
int, par défaut44) — Le nombre de blocs d'attention conjointe. - num_refiner_layers (
int, par défaut4) — Le nombre de blocs de raffinement de jetons appliqués aux embeddings de texte. - mlp_ratio (
float, par défaut8.0) — Le ratio de la dimension interne du réseau de propagation avant de la vidéo par rapport à la dimension cachée. - context_mlp_ratio (
float, par défaut4.0) — Le ratio de la dimension interne du réseau de propagation avant du texte par rapport à la dimension cachée. - refiner_mlp_ratio (
float, par défaut4.0) — Le ratio entre la dimension interne du réseau de propagation avant du raffineur de jetons et la dimension cachée. - text_embed_dim (
int, par défaut4096) — La dimension des états cachés de l'encodeur de texte. - rope_axes_dim (
tuple[int, int, int], par défaut(16, 56, 56)) — Le nombre de canaux de chaque axe(t, h, w)dans l'incorporation rotative. - rope_theta (
float, par défaut256.0) — La base de l'incorporation rotative. - rope_temporal_scale (
float, par défaut16 / 24) — Le facteur par lequel les positions des images de l'incorporation rotative sont multipliées : le taux d'images de référence de l'incorporation rotative par rapport au taux d'images des vidéos (16 sur 24 i/s).
Le diffusion transformer de PAN 2.
Une pile de blocs d'attention conjointe sur la concaténation des latents vidéo patchifiés et des jetons de texte affinés. L'entrée vidéo porte les latents bruités, les latents de conditionnement et un masque de conditionnement empilés le long de l'axe des canaux, de sorte que le même modèle sert à la fois pour la génération de vidéo à partir de texte et pour la génération de vidéo à partir d'image.
forward
< source >( hidden_states: Tensortimestep: Tensorencoder_hidden_states: Tensorattention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = True ) → Transformer2DModelOutput or tuple
Paramètres
- hidden_states (
torch.Tensorde forme(batch_size, in_channels, num_frames, height, width)) — Les latents bruités, les latents de conditionnement et le masque de conditionnement, concaténés le long des canaux. - timestep (
torch.Tensorde forme(batch_size,)) — Le pas de débruitage dans[0, 1000]. - encoder_hidden_states (
torch.Tensorde forme(batch_size, text_seq_len, text_embed_dim)) — Les états cachés de l'encodeur de texte. - attention_kwargs (
dict, facultatif) — Dictionnaire de kwargs transmis àAttentionProcessor; utilisé uniquement pour l'échelle LoRA. - return_dict (
bool, facultatif, par défautTrue) — Indique s'il faut retourner un Transformer2DModelOutput plutôt qu'un simple tuplet.
Retourne
Transformer2DModelOutput ou tuple
La vitesse prédite de forme (batch_size, out_channels, num_frames, height, width).
La méthode forward du PAN2Transformer3DModel.