Diffusers documentation
PAN2Transformer3DModel
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
< 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 )
参数
- 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
< source >( 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 的前向方法。