TARA: MiniMax H3 リファレンス向けネイティブ時間整列
ComfyUI-BFSNodes が TARA を追加しました。MiniMax H3 のモーション参照をネイティブのまま保ち、対応するガイド時刻へアテンションをソフトに偏らせる実験的パッチです。
MiniMax H3 でのモーショントランスファーは通常、ドライビングクリップの latent をガイドとして注入する方法で行われます。Add Guide を使うか、同じ latent 空間のマスク済み latent を使います。TARA は別の道を取ります。クリップは MiniMax H3 Reference to Video へのネイティブな <Video N> 参照として入力され、その時間方向の RoPE 原点が出力の時間軸に整列され、各出力時刻から遠いガイド時刻へのアテンションにペナルティが課されます。リポジトリの表現では、このモードは「ネイティブな動画参照を保持し、その時間方向の RoPE 座標をターゲットと整列させ、遠いガイド時刻にアテンションするターゲットのクエリにソフトなペナルティを与える」ものです。
パッチ自体のために学習されるものは何もありません。学習済みの重みを追加せず、独自の LoRA も読み込みません。時間的な優先度はサンプリング時に計算され、選択済みのモーションビデオにアテンションする出力クエリにのみ作用します。参照画像はネイティブな座標を保ち、テキスト、参照音声、ターゲット自身のセルフアテンションは通常の規則のままです。
時間ルール
出力動画のクエリから、選択済みモーションビデオのキーへのエッジだけが変更されます:
dt = abs(output_time - guide_time)
penalty(dt) = min(strength * (max(dt - window, 0) / falloff)^2, cap)
score = dot(Q, K) / sqrt(head_dim) - penalty(dt)デフォルトはフリーウィンドウ 0.20 秒、フォールオフ 0.25 秒、強度 2.0、上限 6.0 で、ノード上では window、falloff、strength、cap として公開されています。フリーウィンドウの内側ではペナルティは一切ありません。外側ではペナルティが上限に達するまで二次関数的に増加するため、遠いガイドフレームはマスクで除外されるのではなく、小さな重みで利用可能なまま残ります。デフォルト設定では、ローカル補正は約 0.633 秒でゼロになります。
| 時間差 | ペナルティ | アテンション係数 |
|---|---|---|
| 0.00 秒 | 0.00 | 1.000000 |
| 0.40 秒 | 1.28 | 0.278037 |
| 0.80 秒 | 6.00 | 0.002479 |
注意点が 1 つ明記されています。強度をゼロにするとバイアスはなくなりますが、RoPE の整列は残るため、真の「TARA オフ」比較を行うにはノードをバイパスし、オリジナルのモデルを guider と scheduler の両方にルーティングする必要があります。
接続方法
単体ノードは BFS MiniMax H3 TARA - Native Temporal Alignment (Experimental) で、LoRA 読み込みの後、guider の前の MODEL パスに配置します。モーションクリップは通常のネイティブ <Video N> 参照で、motion_video_index でどれがモーションを供給するかを選びます。画像と動画の番号は独立しています。
リポジトリは両側とも 24 fps と一致するフレームウィンドウ(107 フレームも有効な値)を求めており、2 つ目の時間パッチを重ねないこと、Add Guide、first-frame ガイド、VSA、SLA、および不明なアテンション/ブロック置換を MODEL パスから外しておくことを警告しています。通常の生成マスクは引き続き許可されます。マスクは時間ガイドを生成しないためです。CFG パスでは、パッチ適用後のモデルが評価するすべての条件付けブランチがモーション参照を保持している必要があります。
Shot Planner(BFS Shot H3 Conditioning)の中では、同じ動作が 1 つのドロップダウン項目 guide_mode = TARA - Native Temporal Alignment (experimental) になります。条件付けノードはパッチ適用後のモデルを返し、現在のショットのパック済み時間グリッドがサンプリングされます。
3 つのバックエンド
- Flash Partitions(1.115.11 以降デフォルト)はルールを維持しつつ、ネイティブ CUDA FlashAttention と log-sum-exp 出力を用いて評価します。密なバイアステンソルや
torch.compileカーネルを構築する代わりに、3 つの非負の寄与をマージします。CUDA FP16/BF16 と PyTorch の FlashAttention-with-LSE プリミティブが必要です。 - Comfy Kitchen のワンパスカーネル(1.115.16 以降)はルールを密な INT8 カーネルと sol-attn カーネルに融合し、フレームごとのアテンションループを排除します。ビルド済みライブラリは Linux 向けに SM80、SM86、SM89、SM90、SM100、SM120 を提供し、Windows DLL は SM86、SM89、SM120 用があります。PyTorch が 12.x で動作していても、ドライバーは CUDA 13 をサポートしている必要があります。1.115.17 以降、Linux SM120 では初回使用時のセットアップが自動化され、サンプリング時に融合パスが実際に実行されたかどうかがログ行で示されます。
- sol-attn 互換性(1.115.14)は文書化された制限付きでサポートされ、公式のモデルアテンションバックエンドノードは 1.115.13 以降尊重されています。
数値が示すもの
リポジトリは、1 つの独立したマイクロベンチマークと、あるユーザーのフルワークフローログを区別し、両方にラベルを付けています。RTX PRO 6000 Blackwell、107,126 トークン、8 ヘッド、BF16 の場合:
| バックエンド | アテンション呼び出し |
|---|---|
| ネイティブ FlashAttention | 0.327 秒 |
| Flash Partitions | 0.422 秒 |
| オリジナルの時間 FlexAttention | 0.628 秒 |
これはその形状においてオリジナルの時間バックエンドと比べて約 1.5 倍で、トレーニングプロセスが動作中に測定されたものであり、H3 の 56 ヘッドではなく 8 ヘッドでの結果で、モデル全体の速度を主張するものではありません。あるユーザーの RTX 5090 による 544×928、360 フレームの実行では、ガイドスケール 1.0(ガイド行 52,751)で最初の完全なモデル評価に 179.18 秒、スケール 0.5(11,984 行)で 54.45 秒、2 回目の評価は 47.19 秒と報告されています。旧来の FlexAttention パスは初期化を含む最初のステップで 603.40 秒と記録されており、ドキュメントではこれをウォームアップ済みのアテンション呼び出しとは比較できないとしています。
まだ必要なもの
TARA はモーショントランスファー LoRA を置き換えるものではなく、参照の条件付け方法を変えるものです。ドキュメントでは、このノードを ai-toolkit の feat/h3-native-temporal-motion ブランチ(native_temporal_v1)を通じて学習したチェックポイントと組み合わせています。一方、リポジトリの公開比較では Add Guide 向けに学習した step-10500 LoRA を使用しています。時間パッチの下でもこの LoRA は元の演技に追従し、参照キャラクターの服装を保つとされ、作者はこれを保証ではなく実験的な観察として記録しています。step 750 の新しいネイティブ時間チェックポイントは、ドキュメントで identity の保持が弱いと述べられており、ダウンロードとして公開されていないため、対応する公開アダプターはまだ存在しません。
Banodoco の Discord では、あるユーザーが公開当日に RTX 4090 と H100 でこのノードを試し、両方のカードで動作したと報告しています。そのハードウェアでは Kitchen パスが flash partitions よりわずかに遅かったとのことです。
6 列比較の 1 フレーム。左から: オリジナルのガイド、TARA をガイドスケール 1.0 で使った step-10500 LoRA、同じ LoRA を TARA 0.5 で使ったもの、同じ LoRA を Add Guide latent で使ったもの、時間パッチなしのネイティブ参照、ネイティブ参照付きのベースモデル。時間方向の列は動画内で NEW と記されています。
リポジトリによる 15 秒の完全な並列比較エクスポート。6 列すべてが同時に再生されています。
4 つのコントロールの調整
パックにはアニメーション付きパラメータガイドも含まれており、オフライン HTML 版ではスライダーが同じルールをアニメートします。推奨はデフォルトから始め、シード、LoRA、プロンプト、ソース、出力を固定し、一度に 1 つのコントロールだけを変更することです。モーションのドリフトはまずタイムラインの問題です。誤った <Video 1>、フレームレートの不一致、ずれたフレームウィンドウは、より強いバイアスでは修復できません。identity のドリフトは時間コントロールではなく、参照の割り当て、LoRA、画像条件付けを示します。
フリーウィンドウ、フォールオフ、強度、上限。リポジトリのパラメータガイドより。
制限事項
- 機能は実験的かつオプトインです。Planner のデフォルトは依然として Add Guide で、ドキュメントは完全な視覚品質の検証が未完了だと述べています。
- 公開されているデモは定性的なものです。列間でシードは同一ですが、すべての生成設定が記録されているわけではなく、要求された背景の置き換えは部分的にしか行われていません。
- 両方のクリップに一致する時間グリッドが必要で、この方針は密な二次アテンションの計算を保持します。
- これまでの検証は CPU の数式テストとルーティングテスト、およびユーザー報告の RTX 5090 評価です。ガイド音声はネイティブにパックされますが、時間バイアスはかかりません。
利用可能性
ComfyUI-BFSNodes は Comfy レジストリに bfsnodes として公開されており、ComfyUI Manager からインストールするか、custom_nodes/ にクローンできます。TARA はネイティブの MiniMax H3 ノードと、通常の H3 生成に使われる Comfy-Org/MiniMax-H3 の重みの上で動作します。
条件付けの完全な仕様は H3_NATIVE_TEMPORAL.md、バックエンドの導出とタイミングの表は H3_FLASH_PARTITIONS.md、この手法の背後にある研究ブランチは alisson-anjos/ai-toolkit にあります。このノードパック以外で使用する場合の手動インストールガイドも用意されています。
コメント
GitHubでサインインしてディスカッションに参加しましょう。