Diffusers documentation

PAN2Transformer3DModel

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

PAN2Transformer3DModel

PAN 2 的扩散 Transformer。它对视频 token 和文本 token 执行联合注意力,并为每个流使用独立的投影和前馈网络。

视频输入将噪声潜在变量、条件潜在变量和一个单通道条件掩码堆叠在一起,因此同一模型可同时服务于文本到视频和图像到视频任务。

import torch
from diffusers import PAN2Transformer3DModel

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

PAN2Transformer3DModel

类 diffusers.PAN2Transformer3DModel

< >

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

参数

  • 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) — 应用于文本嵌入的 token 精化块数量。
  • 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 fps)。

PAN 2 的扩散 Transformer。

在拼接后的分块视频潜在表示与精炼文本标记之上,堆叠的联合注意力块。视频输入沿通道轴堆叠了含噪潜在表示、条件潜在表示和条件掩码,因此同一模型可同时服务于文本到视频和图像到视频任务。

forward

< >

( hidden_states: Tensortimestep: Tensorencoder_hidden_states: Tensorattention_kwargs: dict[str, typing.Any] | None = Nonereturn_dict: bool = True ) → Transformer2DModelOutput or tuple

参数

  • hidden_states(形状为 (batch_size, in_channels, num_frames, height, width) 的 torch.Tensor)— 沿通道维度拼接后的含噪潜在变量、条件潜在变量和条件掩码。
  • timestep(形状为 (batch_size,) 的 torch.Tensor)— [0, 1000] 范围内的去噪时间步。
  • encoder_hidden_states (torch.Tensor,形状为 (batch_size, text_seq_len, text_embed_dim)) — 文本编码器的隐藏状态。
  • attention_kwargs (dict,可选) — 传递给 AttentionProcessor 的 kwargs 字典;仅用于 LoRA 缩放。
  • return_dict (bool,可选,默认为 True) — 是否返回 Transformer2DModelOutput 而不是普通元组。

返回值

Transformer2DModelOutput 或 tuple

形状为 (batch_size, out_channels, num_frames, height, width) 的预测速度。

PAN2Transformer3DModel 的前向方法。

Update on GitHub