Diffusers documentation

AnyFlowTransformer3DModel

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

AnyFlowTransformer3DModel

が使用する双方向3D Transformerです。 AnyFlowPipeline. v0.35.1のWan2.1バックボーンをベースに、構造を1点変更しています。timestep embedderを AnyFlowDualTimestepTextImageEmbedding, に置き換えたことで、すべてのforward呼び出しがソースtimestep t とターゲットtimestep r. の両方を条件として使用します。これは、 Φr←t\Phi_{r\leftarrow t} で導入されたフローマップ を学習するために必要な埋め込みです。. 論文、著者、公開されたチェックポイントについては、 AnyFlowPipeline のページを参照してください。

チャンク単位の自己回帰(FAR causal)生成には、代わりにAnyFlowFARTransformer3DModelを使用してください。

from diffusers import AnyFlowTransformer3DModel

# Bidirectional AnyFlow checkpoint (T2V):
transformer = AnyFlowTransformer3DModel.from_pretrained(
    "nvidia/AnyFlow-Wan2.1-T2V-1.3B-Diffusers", subfolder="transformer"
)

AnyFlowTransformer3DModel

クラス diffusers.AnyFlowTransformer3DModel

< >

( patch_size: typing.Tuple[int] = (1, 2, 2)num_attention_heads: int = 40attention_head_dim: int = 128in_channels: int = 16out_channels: int = 16text_dim: int = 4096freq_dim: int = 256ffn_dim: int = 13824num_layers: int = 40cross_attn_norm: bool = Trueeps: float = 1e-06image_dim: typing.Optional[int] = Nonerope_max_seq_len: int = 1024gate_value: float = 0.25deltatime_type: str = 'r' )

パラメータ

  • 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、デフォルトは 4096) — テキスト埋め込み (UMT5) の入力次元数。
  • freq_dim (int、デフォルトは 256) — 正弦波時間埋め込みの次元数。
  • ffn_dim (int、デフォルトは 13824) — フィードフォワードネットワークの中間次元。
  • num_layers (int、デフォルトは 40) — Transformerブロックの数。
  • cross_attn_norm (bool、デフォルトは True) — クロスアテンションの正規化を有効にします。
  • eps (float、デフォルトは 1e-6) — 正規化レイヤー用のエプシロン。
  • image_dim (Optional[int]、任意、デフォルトは None) — I2V 条件付け用の画像埋め込み次元(元の Wan2.1-I2V モデルでは 1280)。
  • rope_max_seq_len (int、デフォルトは 1024) — 回転位置周波数を事前計算するために使用される最大シーケンス長。
  • gate_value (float、デフォルト値は 0.25) — ソースタイムステップとデルタタイムステップの埋め込み間の混合ゲート(AnyFlow論文の gg パラメータ、ステージ1の蒸留では0.25に固定されています)。
  • deltatime_type (str、デフォルトは ‘r’) — "r"(delta がターゲットのタイムステップ)または "t-r"(delta が絶対区間)のいずれかです。

AnyFlowのフローマップサンプリング用の双方向3D Transformer。

アーキテクチャは v0.35.1 Wan2.1 3D DiT バックボーンをベースにしており、1 つの構造変更があります。timestep embedder が AnyFlowDualTimestepTextImageEmbedding に置き換えられ、すべての forward 呼び出しがソースの timestep t とターゲットの timestep r. の両方を条件として使用します。これは、 Φr←t\Phi_{r\leftarrow t} で導入された flow map AnyFlow.

チャンク単位の自己回帰(FAR causal)生成には、代わりにAnyFlowFARTransformer3DModelを使用してください。このバリアントは、同じバックボーンの上にFAR causalブロックマスクと圧縮フレームのパッチ埋め込みを追加します。

forward

< >

( hidden_states: Tensortimestep: Tensorr_timestep: Tensorencoder_hidden_states: Tensorencoder_hidden_states_image: typing.Optional[torch.Tensor] = Noneattention_kwargs: typing.Optional[typing.Dict[str, typing.Any]] = Nonereturn_dict: bool = True )

パラメータ

  • hidden_states (torch.Tensor、形状 (batch_size, num_frames, num_channels, height, width)) — 入力動画の潜在変数です。
  • timestep (torch.Tensor) — ソース(ノイズの多い)フローマップのタイムステップ t。
  • r_timestep (torch.Tensor) — ターゲット(よりクリーンな)フローマップのタイムステップ r。フローマップステップの到達点を定義します。
  • encoder_hidden_states (torch.Tensor、形状 (batch_size, sequence_len, embed_dims)) — テキスト条件付け用の埋め込みです。
  • encoder_hidden_states_image (torch.Tensor、optional) — 画像条件付け用の埋め込み。指定された場合、テキストトークンの前に連結されます。
  • attention_kwargs (dict、任意) — diffusers.models.attention_processor の self.processor で定義される AttentionProcessor に転送される Kwargs。
  • return_dict (bool、任意、デフォルトは True) — プレーンなタプルではなく [~models.transformer_2d.Transformer2DModelOutput] を返すかどうか。

双方向フローマップのフォワードパス。hidden_statesは(B, F, C, H, W)(フレームごとの潜在変数)として配置されています。 入力は標準的なpatch_embedding(カーネル = ストライド = patch_size)でパッチ化され、得られるフラットなトークンシーケンス全体に対して、グローバルな双方向セルフアテンションによるノイズ除去が行われます。

Update on GitHub