Diffusers documentation
WanAnimateTransformer3DModel
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
lớp diffusers.WanAnimateTransformer3DModel
< source >( 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 )
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 các vector 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 của các 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 query/key. - eps (
float, mặc định là1e-6) — Giá trị epsilon cho các lớp chuẩn hóa. - image_dim (
int, tùy 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, tùy 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
< source >( 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
Tham số
- hidden_states (
torch.Tensorcó hình dạng(B, 2C + 4, T + 1, H, W)) — Các latent video nhiễu đầu vào có hình dạng(B, 2C + 4, T + 1, H, W), trong đó B là kích thước lô (batch size), C là số kênh latent (16 đối với Wan VAE), T là số khung latent trong một đoạn suy luận, 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 thị giác CLIP của hình ảnh tham chiếu (nhân vật). - pose_hidden_states (
torch.Tensorcó hình dạng(B, C, T, H, W)) — Latent của video tư thế. TODO: mô tả - face_pixel_values (
torch.Tensorcó hình dạng(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, tùy chọn) — Kích thước lô (batch size) cho việc mã hóa theo lô 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) — Có nên trả về kết quả dưới dạng dict hay tuple hay không. - attention_kwargs (
dict, tùy chọn) — Một từ điển kwargs, nếu được chỉ định, sẽ được truyền đếnAttentionProcessornhư đã định nghĩa dướiself.processortrong 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à latent của video đã 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
lớp diffusers.models.modeling_outputs.Transformer2DModelOutput
< source >( sample: torch.Tensor )
Tham số
- sample (
torch.Tensorcó hình dạng(batch_size, num_channels, height, width)hoặc(batch size, num_vector_embeds - 1, num_latent_pixels)nếu Transformer2DModel là rời rạc) — Trạng thái ẩn đầu ra được điều kiện bởi đầu vàoencoder_hidden_states. Nếu là rời rạc, trả về các phân phối xác suất cho các pixel tiềm ẩn không nhiễu.
Đầu ra của Transformer2DModel.