Diffusers documentation

AnyFlowTransformer3DModel

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

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, defaults to 0.25) — Mixing gate between source-timestep and delta-timestep embeddings (the AnyFlow paper’s{@html "ggg"} parameter, fixed at 0.25 in stage-1 distillation).
  • 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