Diffusers documentation
AnyFlowTransformer3DModel
AnyFlowTransformer3DModel
が使用する双方向3D Transformerです。 AnyFlowPipeline. v0.35.1のWan2.1バックボーンをベースに、構造を1点変更しています。timestep embedderを AnyFlowDualTimestepTextImageEmbedding, に置き換えたことで、すべてのforward呼び出しがソースtimestep t とターゲットtimestep r. の両方を条件として使用します。これは、 で導入されたフローマップ を学習するために必要な埋め込みです。. 論文、著者、公開されたチェックポイントについては、 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
< source >( 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 "g"} 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. の両方を条件として使用します。これは、 で導入された flow map AnyFlow.
チャンク単位の自己回帰(FAR causal)生成には、代わりにAnyFlowFARTransformer3DModelを使用してください。このバリアントは、同じバックボーンの上にFAR causalブロックマスクと圧縮フレームのパッチ埋め込みを追加します。
forward
< source >( 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)でパッチ化され、得られるフラットなトークンシーケンス全体に対して、グローバルな双方向セルフアテンションによるノイズ除去が行われます。