Diffusers documentation

WanAnimateTransformer3DModel

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

WanAnimateTransformer3DModel

Alibaba Wan Team의 Wan Animate에서 3D 비디오 유사 데이터용 Diffusion Transformer 모델이 소개되었습니다.

다음 코드 스니펫으로 모델을 로드할 수 있습니다.

from diffusers import WanAnimateTransformer3DModel

transformer = WanAnimateTransformer3DModel.from_pretrained("Wan-AI/Wan2.2-Animate-14B-Diffusers", subfolder="transformer", dtype=torch.bfloat16)

WanAnimateTransformer3DModel

클래스 diffusers.WanAnimateTransformer3DModel

< >

( patch_size: tuple = (1, 2, 2)num_attention_heads: int = 40attention_head_dim: int = 128in_channels: int | None = 36latent_channels: int | None = 16out_channels: int | None = 16text_dim: int = 4096freq_dim: int = 256ffn_dim: int = 13824num_layers: int = 40cross_attn_norm: bool = Trueqk_norm: str | None = 'rms_norm_across_heads'eps: float = 1e-06image_dim: int | None = 1280added_kv_proj_dim: int | None = Nonerope_max_seq_len: int = 1024pos_embed_seq_len: int | None = Nonemotion_encoder_channel_sizes: dict[str, int] | None = Nonemotion_encoder_size: int = 512motion_style_dim: int = 512motion_dim: int = 20motion_encoder_dim: int = 512face_encoder_hidden_dim: int = 1024face_encoder_num_heads: int = 4inject_face_latents_blocks: int = 5motion_encoder_batch_size: int = 8 )

매개변수

  • patch_size (tuple[int], 기본값 (1, 2, 2)) — 비디오 임베딩을 위한 3D 패치 차원 (t_patch, h_patch, w_patch).
  • num_attention_heads (int, 기본값 40) — 텍스트 임베딩의 고정 길이입니다.
  • attention_head_dim (int, 기본값 128) — 각 헤드당 채널 수입니다.
  • in_channels (int, 기본값 16) — 입력의 채널 수입니다.
  • out_channels (int, 기본값 16) — 출력의 채널 수입니다.
  • text_dim (int, 기본값 512) — 텍스트 임베딩의 입력 차원입니다.
  • freq_dim (int, 기본값 256) — 사인 파 시간 임베딩에 사용할 차원입니다.
  • ffn_dim (int, 기본값 13824) — 피드포워드 네트워크의 중간 차원입니다.
  • num_layers (int, 기본값 40) — 사용할 transformer 블록의 레이어 수입니다.
  • window_size (tuple[int], 기본값 (-1, -1)) — 로컬 어텐션에 사용할 윈도우 크기입니다. (-1은 글로벌 어텐션을 나타냅니다.)
  • cross_attn_norm (bool, 기본값 True) — 크로스 어텐션 정규화를 활성화합니다.
  • qk_norm (bool, 기본값 True) — query/key 정규화를 활성화합니다.
  • eps (float, 기본값 1e-6) — 정규화 레이어에 사용되는 Epsilon 값입니다.
  • image_dim (int, 선택 사항, 기본값 1280) — 이미지 임베딩에 사용할 채널 수입니다. None인 경우 투영을 사용하지 않습니다.
  • added_kv_proj_dim (int, 선택 사항, 기본값 5120) — 추가된 key 및 value projection에 사용할 채널 수입니다. None인 경우 projection이 사용되지 않습니다.

WanAnimate 모델에서 비디오와 유사한 데이터에 사용되는 Transformer 모델입니다.

forward

< >

( hidden_states: Tensortimestep: LongTensorencoder_hidden_states: Tensorencoder_hidden_states_image: typing.Optional[torch.Tensor] = Nonepose_hidden_states: typing.Optional[torch.Tensor] = Noneface_pixel_values: typing.Optional[torch.Tensor] = Nonemotion_encode_batch_size: int | None = Nonereturn_dict: bool = Trueattention_kwargs: dict[str, typing.Any] | None = None ) → ~models.transformer_2d.Transformer2DModelOutput or tuple

매개변수

  • hidden_states (torch.Tensor, shape (B, 2C + 4, T + 1, H, W)) — shape가 (B, 2C + 4, T + 1, H, W)인 입력 노이즈 비디오 latents입니다. 여기서 B는 배치 크기, C는 latent 채널 수(Wan VAE의 경우 16), T는 추론 세그먼트의 latent 프레임 수, H는 latent 높이, W는 latent 너비입니다.
  • timestep — (torch.LongTensor): 노이즈 제거 루프의 현재 타임스텝.
  • encoder_hidden_states (torch.Tensor) — 텍스트 인코더(umT5 for Wan Animate)에서 생성된 텍스트 임베딩
  • encoder_hidden_states_image (torch.Tensor) — 참조(캐릭터) 이미지의 CLIP 시각적 특징입니다.
  • pose_hidden_states (torch.Tensor, shape (B, C, T, H, W)) — Pose video latents. TODO: description
  • face_pixel_values (torch.Tensor, shape (B, C', S, H', W')) — 픽셀 공간의 얼굴 비디오(잠재 공간이 아님). 일반적으로 C’ = 3이며, H’와 W’는 픽셀 단위 얼굴 비디오의 높이/너비입니다. 여기서 S는 추론 세그먼트 길이로, 보통 77로 설정됩니다.
  • motion_encode_batch_size (int, 선택 사항) — 모션 인코더를 통해 얼굴 비디오를 배치 인코딩할 때 사용할 배치 크기입니다. 설정되지 않으면 기본값으로 self.config.motion_encoder_batch_size가 사용됩니다.
  • return_dict (bool, 선택 사항, 기본값 True) — 출력을 dict 또는 tuple로 반환할지 여부입니다.
  • attention_kwargs (dict, 선택 사항) — 지정된 경우 diffusers.models.attention_processor의 self.processor에서 정의된 AttentionProcessor로 전달되는 kwargs 사전입니다.

반환값

~models.transformer_2d.Transformer2DModelOutput 또는 tuple

return_dict가 True이면 sample가 노이즈 제거된 비디오 latent인 ~models.transformer_2d.Transformer2DModelOutput이 반환되고, 그렇지 않으면 첫 번째 요소가 해당 텐서인 일반 tuple이 반환됩니다.

Wan2.2-Animate transformer 모델의 Forward pass.

Transformer2DModelOutput

클래스 diffusers.models.modeling_outputs.Transformer2DModelOutput

< >

( sample: torch.Tensor )

매개변수

  • sample (torch.Tensor, shape (batch_size, num_channels, height, width) 또는 Transformer2DModel이 discrete인 경우 (batch size, num_vector_embeds - 1, num_latent_pixels)) — encoder_hidden_states 입력에 조건부인 hidden states 출력입니다. discrete인 경우, 노이즈가 제거된 latent 픽셀에 대한 확률 분포를 반환합니다.

Transformer2DModel의 출력입니다.

Update on GitHub