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의 diffusion transformer입니다. 비디오 토큰과 텍스트 토큰에 대해 결합된 attention을 수행하며, 각 스트림에 대해 별도의 projection과 feed-forward network를 사용합니다.

비디오 입력은 노이즈가 포함된 잠재 변수, 조건부 잠재 변수, 그리고 1채널 조건부 마스크를 스택하므로, 동일한 모델이 텍스트-비디오 및 이미지-비디오 모두에 사용할 수 있습니다.

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) — 입력 채널 수: 노이즈된 latents, 조건부 latents 및 하나의 조건부 mask 채널.
  • out_channels (int, 기본값 48) — 출력 채널의 수입니다.
  • num_attention_heads (int, 기본값 32) — Attention head의 수입니다.
  • attention_head_dim (int, 기본값 128) — 각 attention head의 채널 수입니다.
  • num_layers (int, 기본값 44) — joint-attention 블록의 수입니다.
  • 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) — 텍스트 인코더의 숨겨진 상태(hidden states) 차원입니다.
  • rope_axes_dim (tuple[int, int, int], 기본값 (16, 56, 56)) — 회전 임베딩에서 각 (t, h, w) 축의 채널 수입니다.
  • rope_theta (float, 기본값 256.0) — 회전 임베딩의 기본값입니다.
  • rope_temporal_scale (float, 기본값 16 / 24) — 회전 임베딩의 프레임 위치가 곱해지는 계수입니다: 회전 임베딩의 기준 프레임 레이트를 비디오의 프레임 레이트로 나눈 값입니다.

PAN 2의 diffusion transformer입니다.

패치화된 비디오 라텐트와 정제된 텍스트 토큰의 연결(concatenation) 위에 쌓인 결합 주의(joint-attention) 블록 스택입니다. 비디오 입력은 노이즈가 포함된 라텐트, 조건부 라텐트, 조건부 마스크를 채널 축을 따라 스택하여 전달하므로, 동일한 모델이 텍스트-비디오 생성과 이미지-비디오 생성 모두를 처리할 수 있습니다.

forward

< >

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

매개변수

  • hidden_states (torch.Tensor, shape (batch_size, in_channels, num_frames, height, width)) — 채널 방향으로 연결된 노이즈된 latents, conditioning latents, conditioning mask입니다.
  • timestep (torch.Tensor, shape (batch_size,)) — [0, 1000] 범위의 노이즈 제거(timestep)입니다.
  • encoder_hidden_states (torch.Tensor, shape (batch_size, text_seq_len, text_embed_dim)) — 텍스트 인코더의 숨겨진 상태(hidden states)입니다.
  • attention_kwargs (dict, 선택 사항) — AttentionProcessor에 전달되는 kwargs 딕셔너리입니다. LoRA 스케일에만 사용됩니다.
  • return_dict (bool, 선택 사항, 기본값 True) — 단순 tuple 대신 Transformer2DModelOutput를 반환할지 여부.

반환값

Transformer2DModelOutput 또는 tuple

(batch_size, out_channels, num_frames, height, width) 형태의 예측 속도입니다.

PAN2Transformer3DModel의 forward 메서드입니다.

Update on GitHub