Buckets:

hf-doc-build/doc / diffusers /main /vi /api /models /wan_animate_transformer_3d.md
mishig's picture
|
download
raw
7.5 kB

WanAnimateTransformer3DModel

Một mô hình Diffusion Transformer cho dữ liệu dạng video 3D đã được giới thiệu trong Wan Animate bởi nhóm Alibaba Wan.

Mô hình có thể được tải bằng đoạn mã sau.

from diffusers import WanAnimateTransformer3DModel

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

WanAnimateTransformer3DModel[[diffusers.WanAnimateTransformer3DModel]]

diffusers.WanAnimateTransformer3DModel[[diffusers.WanAnimateTransformer3DModel]]

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

Nguồn

Tham số:

patch_size (tuple[int], mặc định là (1, 2, 2)) : Kích thước patch 3D cho nhúng video (t_patch, h_patch, w_patch).

num_attention_heads (int, mặc định là 40) : Độ dài cố định cho các vector nhúng văn bản.

attention_head_dim (int, mặc định là 128) : Số lượng kênh trong mỗi head.

in_channels (int, mặc định là 16) : Số lượng kênh trong đầu vào.

out_channels (int, mặc định là 16) : Số lượng kênh trong đầu ra.

text_dim (int, mặc định là 512) : Kích thước đầu vào cho nhúng văn bản.

freq_dim (int, mặc định là 256) : Kích thước cho các nhúng thời gian hình sin.

ffn_dim (int, mặc định là 13824) : Kích thước chiều trung gian trong mạng feed-forward.

num_layers (int, mặc định là 40) : Số lượng lớp khối transformer cần sử dụng.

window_size (tuple[int], mặc định là (-1, -1)) : Kích thước cửa sổ cho chú ý cục bộ (-1 chỉ ra chú ý toàn cục).

cross_attn_norm (bool, mặc định là True) : Bật chuẩn hóa cross-attention.

qk_norm (bool, mặc định là True) : Bật chuẩn hóa truy vấn/chìa khóa.

eps (float, mặc định là 1e-6) : Giá trị epsilon cho các lớp chuẩn hóa.

image_dim (int, tuỳ chọn, mặc định là 1280) : Số lượng kênh được sử dụng cho nhúng hình ảnh. Nếu là None, sẽ không sử dụng phép chiếu.

added_kv_proj_dim (int, tuỳ chọn, mặc định là 5120) : Số lượng kênh được sử dụng cho các phép chiếu key và value được thêm vào. Nếu là None, sẽ không sử dụng phép chiếu.

Một mô hình Transformer cho dữ liệu dạng video được sử dụng trong mô hình WanAnimate.

forward[[diffusers.WanAnimateTransformer3DModel.forward]]

forward(hidden_states: Tensor, timestep: LongTensor, encoder_hidden_states: Tensor, encoder_hidden_states_image: typing.Optional[torch.Tensor] = None, pose_hidden_states: typing.Optional[torch.Tensor] = None, face_pixel_values: typing.Optional[torch.Tensor] = None, motion_encode_batch_size: int | None = None, return_dict: bool = True, attention_kwargs: dict[str, typing.Any] | None = None)

Nguồn

Tham số:

hidden_states (torch.Tensor có shape (B, 2C + 4, T + 1, H, W)) : Input noisy video latents có shape (B, 2C + 4, T + 1, H, W), trong đó B là batch size, C là số kênh latent (16 với Wan VAE), T là số khung latent trong một đoạn inference, H là chiều cao latent, và W là chiều rộng latent.

timestep : (torch.LongTensor): Bước thời gian hiện tại trong vòng lặp khử nhiễu.

encoder_hidden_states (torch.Tensor) : Nhúng văn bản từ bộ mã hóa văn bản (umT5 cho Wan Animate).

encoder_hidden_states_image (torch.Tensor) : Đặc trưng hình ảnh CLIP của hình ảnh tham chiếu (nhân vật).

pose_hidden_states (torch.Tensor có hình dạng (B, C, T, H, W)) : Pose video latents. TODO: description

face_pixel_values (torch.Tensor có shape (B, C', S, H', W')) : Video khuôn mặt trong không gian pixel (không phải không gian latent). Thông thường C' = 3 và H' và W' là chiều cao/chiều rộng của video khuôn mặt tính bằng pixel. Ở đây S là độ dài đoạn suy luận, thường được đặt là 77.

motion_encode_batch_size (int, optional) : Kích thước lô (batch size) cho việc mã hóa theo lô (batched encoding) video khuôn mặt thông qua bộ mã hóa chuyển động. Nếu không được đặt, giá trị mặc định sẽ là self.config.motion_encoder_batch_size.

return_dict (bool, tùy chọn, mặc định là True) : Xác định việc trả về kết quả đầu ra dưới dạng dict hay tuple.

attention_kwargs (dict, tùy chọn) : Một từ điển kwargs mà nếu được chỉ định sẽ được truyền đến AttentionProcessor như đã định nghĩa dưới self.processor trong diffusers.models.attention_processor.

Trả về: ~models.transformer_2d.Transformer2DModelOutput hoặc tuple

Nếu return_dict là True, một ~models.transformer_2d.Transformer2DModelOutput có sample là video latent đã khử nhiễu sẽ được trả về, ngược lại một tuple thông thường có phần tử đầu tiên là tensor đó sẽ được trả về.

Quá trình truyền thẳng của mô hình transformer Wan2.2-Animate.

Transformer2DModelOutput[[diffusers.models.modeling_outputs.Transformer2DModelOutput]]

diffusers.models.modeling_outputs.Transformer2DModelOutput[[diffusers.models.modeling_outputs.Transformer2DModelOutput]]

diffusers.models.modeling_outputs.Transformer2DModelOutput(sample: torch.Tensor)

Nguồn

Tham số:

sample (torch.Tensor có shape (batch_size, num_channels, height, width) hoặc (batch size, num_vector_embeds - 1, num_latent_pixels) nếu Transformer2DModel là discrete) : Đầu ra của hidden states được điều kiện bởi đầu vào encoder_hidden_states. Nếu là discrete, trả về các phân phối xác suất cho các latent pixels chưa bị nhiễu.

Đầu ra của Transformer2DModel.

Xet Storage Details

Size:
7.5 kB
·
Xet hash:
edfaf501c4d0a71eca65433548d35d0b400a131005e922750128a7fcb8e07431

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.