Buckets:
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]]
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)
パラメータ:
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) : クエリ/キーの正規化を有効にします。
eps (float、デフォルトは 1e-6) : 正規化レイヤー用のエプシロン値。
image_dim (int、optional、デフォルトは1280) : 画像埋め込みに使用するチャネル数。Noneの場合、投影は使用されません。
added_kv_proj_dim (int、任意、デフォルトは 5120) : 追加される key と value の投影に使用するチャネル数です。None の場合は、投影は使用されません。
WanAnimateモデルで使用される、動画のようなデータ向けのTransformerモデル。
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)
パラメータ:
hidden_states (torch.Tensor、shape (B, 2C + 4, T + 1, H, W)) : shape (B, 2C + 4, T + 1, H, W) の入力ノイズ付き動画ラテンツ。ここで、B はバッチサイズ、C はラテンツのチャネル数(Wan VAE では 16)、T は推論セグメント内のラテンツフレーム数、H はラテンツの高さ、W はラテンツの幅です。
timestep : (torch.LongTensor): デノイジングループにおける現在のタイムステップ。
encoder_hidden_states (torch.Tensor) : テキストエンコーダー(Wan Animate では umT5)からのテキスト埋め込み。
encoder_hidden_states_image (torch.Tensor) : 参照(キャラクター)画像の CLIP 視覚特徴。
pose_hidden_states (torch.Tensor、形状 (B, C, T, H, W)) : ポーズ動画の潜在変数。TODO: 説明
face_pixel_values (torch.Tensor、shape (B, C', S, H', W')) : ピクセル空間(潜在空間ではない)における顔の動画。通常、C' = 3 であり、H' と W' はピクセル単位での顔動画の高さ/幅です。ここで S は推論セグメントの長さで、通常 77 に設定されます。
motion_encode_batch_size (int, optional) : モーションエンコーダーによる顔動画のバッチエンコーディングにおけるバッチサイズ。設定されていない場合、self.config.motion_encoder_batch_size がデフォルトとして使用されます。
return_dict (bool、任意、デフォルトはTrue) : 出力を辞書として返すか、タプルとして返すかを指定します。
attention_kwargs (dict, 任意) : 指定された場合、diffusers.models.attention_processor の self.processor で定義されている AttentionProcessor に渡される kwargs の辞書です。
戻り値: ~models.transformer_2d.Transformer2DModelOutput または tuple
return_dictがTrueの場合、sampleがノイズ除去された動画の潜在変数である~models.transformer_2d.Transformer2DModelOutputが返され、それ以外の場合は、そのテンソルが最初の要素であるtupleが返されます。
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)
パラメータ:
sample (torch.Tensor、shape は (batch_size, num_channels, height, width)、または Transformer2DModel が離散型の場合 (batch size, num_vector_embeds - 1, num_latent_pixels)) : encoder_hidden_states 入力を条件とする隠れ状態の出力です。離散型の場合、ノイズ除去されていない潜在ピクセルの確率分布を返します。
Transformer2DModelの出力です。
Xet Storage Details
- Size:
- 7.52 kB
- Xet hash:
- f7c2fd585da2d1abc1c821cd9f19821b749dbfea015a497d1d735da647d49912
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.