Diffusers documentation

WanAnimate2Transformer3DModel

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

WanAnimate2Transformer3DModel

Alibaba Wan Team による Wan-Animate-2 で使用される、3D ビデオ類似データ向けの Diffusion Transformer モデルです。インコンテキスト参照メカニズムを通じて、駆動ビデオの動きでキャラクター画像をアニメーション化します。各セグメントはまず参照パス (kv_cache_mode="extract") を実行して各レイヤーの参照 K/V をキャッシュし、その後、デノイジングパス (kv_cache_mode="cached") が生成トークンとキャッシュされた参照トークンの両方に、flex BlockMask を通じて同時にアテンションを適用します。

モデルは、以下のコードスニペットで読み込むことができます。

from diffusers import WanAnimate2Transformer3DModel

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

WanAnimate2Transformer3DModel

class diffusers.WanAnimate2Transformer3DModel

< >

( patch_size: tuple = (1, 2, 2)text_len: int = 512in_dim: int = 36dim: int = 5120ffn_dim: int = 13824freq_dim: int = 256text_dim: int = 4096out_dim: int = 16num_heads: int = 40num_layers: int = 40cross_attn_norm: bool = Trueeps: float = 1e-06use_img_emb: bool = Truerefer_offset_t: int = 1refer_offset_h: int = 0refer_offset_w: int = -1refer_stride: int = 1 )

パラメータ

  • patch_size (tuple[int]、デフォルトは (1, 2, 2)) — 動画埋め込み用の3Dパッチ次元 (t_patch, h_patch, w_patch)。
  • text_len (int、デフォルトは 512) — テキスト埋め込みの固定長です。
  • in_dim (int、デフォルトは 36) — 入力におけるチャネル数(マスクチャネルを含む 2 * latent_channels + 4)。
  • dim (int、デフォルトは 5120) — transformer のチャネル数です。
  • ffn_dim (int、デフォルトは 13824) — フィードフォワードネットワークの中間次元。
  • freq_dim (int、デフォルトは 256) — 正弦波時間埋め込みの次元数。
  • text_dim (int、デフォルトは 4096) — テキスト埋め込みの入力次元数。
  • out_dim (int、デフォルトは 16) — 出力のチャネル数。
  • num_heads (int、デフォルトは 40) — アテンションヘッドの数です。
  • num_layers (int、デフォルトは 40) — 使用する transformer ブロックの層数です。
  • cross_attn_norm (bool、デフォルトは True) — クロスアテンションの正規化を有効にします。
  • eps (float、デフォルトは 1e-6) — 正規化レイヤー用のエプシロン値。
  • use_img_emb (bool、デフォルトは True) — CLIP の画像埋め込みを使用するかどうか。
  • refer_offset_t (int、デフォルトは 1) — 参照の時間次元に対する RoPE オフセット。
  • refer_offset_h (int、デフォルトは 0) — 参照の高さ次元に対する RoPE オフセット。
  • refer_offset_w (int、デフォルトは -1) — 参照の幅次元に対する RoPE オフセットです。-1 は生成グリッドサイズを使用することを意味します。
  • refer_stride (int、デフォルトは 1) — 参照に対する RoPE 適用のストライドです。

Wan-Animate-2モデルで使用される、動画のようなデータ向けのTransformerモデルです。

Wan-Animate-2 は、KV キャッシュを備えたインコンテキスト注意機構を使用します。まず参照動画をエンコードして(kv_cache_mode="extract")WanAnimate2KVCache に格納し、その後、各デノイジングステップ(kv_cache_mode="cached")では、生成トークンとキャッシュされた参照 K/V に対して、フレキシブルな BlockMask を通じて同時に注意を払います。そのため、生成の自己注意は flex 注意バックエンドでのみ実行されます。モデル内のその他の注意は、いずれのバックエンドでも動作します。

forward

< >

( hidden_states: listtimestep: Tensorencoder_hidden_states: listcondition_latents: listkv_cache: WanAnimate2KVCachekv_cache_mode: strseq_len: intencoder_hidden_states_image: typing.Optional[torch.Tensor] = Noneoffset_grid_sizes: typing.Optional[torch.Tensor] = Nonereference_grid_sizes: typing.Optional[torch.Tensor] = Noneorigin_len: int | None = Noneorigin_area: list[int] | None = Noneis_uncondtion: bool = Falsereturn_dict: bool = True ) → Transformer2DModelOutput or tuple(list[torch.Tensor])

パラメータ

  • hidden_states (list[torch.Tensor]) — このパスの潜変数。kv_cache_mode="extract" の場合は参照潜変数、kv_cache_mode="cached" の場合はノイズ付き生成潜変数です。
  • timestep (torch.Tensor) — Denoising のタイムステップ。kv_cache_mode="extract" の場合は無視され、固定のタイムステップ 1 が使用されます。
  • encoder_hidden_states (list[torch.Tensor]) — このパス用のテキスト埋め込み。
  • condition_latents (list[torch.Tensor]) — パッチ埋め込みの前にhidden_statesに連結される条件付き潜在変数です。
  • kv_cache (WanAnimate2KVCache) — kv_cache_mode="extract" の下で書き込まれ、"cached" の下で読み取られます。
  • kv_cache_mode (str) — "extract" は参照パスを実行して kv_cache を設定し、"cached" はキャッシュされた参照トークンに対してデノイジングステップを実行します。
  • seq_len (int) — パッチ埋め込み後に各サンプルが保持すべきトークン数。
  • encoder_hidden_states_image (torch.Tensor, 任意) — モデルがuse_img_embで設定されている場合に使用される CLIP の画像埋め込みです。
  • offset_grid_sizes (torch.Tensor, 任意) — 参照用潜在変数のパッチグリッドです。refer_offset_* が -1 に設定されている場合の解決に使用されます。kv_cache_mode="extract" の場合は必須です。"cached" の場合は、reference_grid_sizes が同じグリッドを記述するため、そちらが代わりに使用されます。
  • reference_grid_sizes (torch.Tensor, 任意) — 参照用潜在変数のパッチグリッドです。参照用ロータリー埋め込みに使用されます。kv_cache_mode="cached" の場合は必須です。
  • origin_len (int, 任意) — インコンテキストブロックマスクが構築される完全な動画のフレーム数。kv_cache_mode="cached" の場合は必須です。
  • origin_area (list[int]、省略可) — インコンテキストブロックマスクが構築される、完全な動画の空間サイズ [height, width]。 kv_cache_mode="cached" の場合は必須です。
  • is_uncondtion (bool, 任意) — classifier-free guidance の無条件ブランチであるかどうかを示します。
  • return_dict (bool、任意、デフォルトは True) — ~models.transformer_2d.Transformer2DModelOutput を返すかどうか。プレーンなタプルを返す代わりに、~models.transformer_2d.Transformer2DModelOutput を返します。

戻り値

Transformer2DModelOutput または tuple(list[torch.Tensor])

入力潜在変数ごとの予測サンプル(アンパッチ化済み)。return_dict が False の場合は、プレーンなタプルです。

Transformer2DModelOutput

クラス diffusers.models.modeling_outputs.Transformer2DModelOutput

< >

( sample: torch.Tensor )

パラメータ

  • sample (torch.Tensor、形状 (batch_size, num_channels, height, width)、または Transformer2DModel が離散型の場合 (batch size, num_vector_embeds - 1, num_latent_pixels)) — encoder_hidden_states 入力を条件とする隠れ状態の出力です。離散型の場合、ノイズ除去されていない潜在ピクセルの確率分布を返します。

Transformer2DModelの出力です。

Update on GitHub