Buckets:

hf-doc-build/doc / diffusers /main /ja /api /models /anyflow_transformer3d.md
mishig's picture
|
download
raw
7.19 kB

AnyFlowTransformer3DModel

AnyFlowPipelineで使用される双方向3D Transformerです。v0.35.1のWan2.1バックボーンをベースに、1つの構造変更を加えたものです。具体的には、timestep embedderがAnyFlowDualTimestepTextImageEmbeddingに置き換えられており、すべてのforward呼び出しにおいて、ソースのtimestep tとターゲットのtimestep rの両方を条件として使用します。これは、AnyFlowで導入されたフローマップ $\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]]

diffusers.AnyFlowTransformer3DModel[[diffusers.AnyFlowTransformer3DModel]]

diffusers.AnyFlowTransformer3DModel(patch_size: typing.Tuple[int] = (1, 2, 2), num_attention_heads: int = 40, attention_head_dim: int = 128, in_channels: int = 16, out_channels: int = 16, text_dim: int = 4096, freq_dim: int = 256, ffn_dim: int = 13824, num_layers: int = 40, cross_attn_norm: bool = True, eps: float = 1e-06, image_dim: typing.Optional[int] = None, rope_max_seq_len: int = 1024, gate_value: float = 0.25, deltatime_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 つあります。タイムステップエンベッダーが AnyFlowDualTimestepTextImageEmbedding に置き換えられ、すべての forward 呼び出しにおいてソースタイムステップ t とターゲットタイムステップ r の両方を条件として使用するようにしました。これは、AnyFlow で導入されたフローマップ \Phi_{r\leftarrow t} を学習するために必要なエンベディングです。

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

forward[[diffusers.AnyFlowTransformer3DModel.forward]]

forward(hidden_states: Tensor, timestep: Tensor, r_timestep: Tensor, encoder_hidden_states: Tensor, encoder_hidden_states_image: typing.Optional[torch.Tensor] = None, attention_kwargs: typing.Optional[typing.Dict[str, typing.Any]] = None, return_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、optional) : diffusers.models.attention_processor の self.processor で定義される AttentionProcessor に転送される Kwargs。

return_dict (bool、optional、デフォルトは True) : プレーンなタプルではなく、[~models.transformer_2d.Transformer2DModelOutput] を返すかどうか。

戻り値:

~models.transformer_2d.Transformer2DModelOutput(return_dictがTrueの場合)、または予測速度テンソルが最初の要素であるtuple(それ以外の場合)。

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

Xet Storage Details

Size:
7.19 kB
·
Xet hash:
de93584f2c668c0a8dab319b3ecb2458233546dbf841a1e1d57e34f7bbf44909

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.