Tessera: MiniMax H3向けのタイル4K/8K動画アップスケーリング
Tesseraは、MiniMax H3のクリップをタイルごとに2K、4K、8Kへ高精細化するComfyUIノードパックです。タイル単位の条件付けと、ストリーミング方式のエンコードおよびデコードに対応しています。
H3 は 544p の短いクリップを得意とし、それ以上の解像度ではコストが高くなります。高解像度化の既存の手法は、より大きなサイズでフレームを再生成して低速で不安定なパスを許容するか、ピクセルをアップスケールしてディテールを失うかのどちらかです。Tessera は第三の道を取ります。ソースクリップをモデルがすでに理解している参照として保持し、ニュートラルなリサンプラーで画像をアップスケールし、そのプレートの各タイルを正確なローカル条件付けの下で H3 に再レンダリングさせます。
このパックは追加の依存関係がない素の ComfyUI ノードとしてバージョン 1.0.0 で提供され、pyproject.toml には Comfy Registry での公開用に [tool.comfy] ブロック(DisplayName = "Tessera"、PublisherId = "hashu786")が含まれています。
![]() | ![]() |
|---|---|
| 544p のソースクリップ | プロジェクトのプロモ動画からの 3840x2176 レンダー |
タイルは互いではなくプレートに固定される
大きな潜在を分割して精緻化する自明な方法は、タイルを順番に処理し、各タイルが隣接タイルの完了した境界を引き継ぐことです。Tesseraの作者は、H3でこれが失敗する理由を測定しました。位置ずれは行に沿って累積し、4つのタイルにわたって +1.5、-2.1、-9.3、-15.5 px に達します。これは、各タイルがソースではなく前のタイルの推測に条件付けられるためです。
Tesseraはこの依存関係を逆転させます。各タイルは、同じグラウンドトゥルースから自身用に切り出したクロップに対してデノイズされます。
- DiT参照はタイルのウィンドウに合わせてクロップされ、そのウィンドウの潜在グリッドにマッピングされます。これにより、動画参照とオプションの画像参照は、ショット全体ではなくフレーム内のそのタイルのパッチを示します。
- テキストは、
clip入力が接続されている場合、タイル自身のクロップから再エンコードされます。接続がない場合、標準の参照ノードはQwenにフレーム全体を渡し、すべてのタイルは自身に含まれていない可能性のある被写体について条件付けられてしまいます。これはノートでゴースト被写体の失敗と呼ばれています。 - ガイドはプレートの正確なグリッド上に維持され、一致しない場合はノードが即座に失敗します。
また、タイルはタイルごとのノイズを生成するのではなく、1つのグローバルなノイズフィールドを共有します。継ぎ目に沿ったストリップは、32 px の seam_regen バンドを用いて両隣のタイルによって生成され、重みで正規化された累積によってブレンドされます。同じストリップを見た2つのタイルは、ゴースト化したブレンドではなく、正確なレンダー間のクロスフェードを生み出します。
スケジュールはヘッド1ステップとテール2ステップ
デフォルトのシグマは 1.0, 0.7, 0.4, 0.0 です。蒸留された turbo ヘッドによる1ステップに続けて、ファインテール内で euler を2ステップ実行します。インバンドガイドはスペクトラムクランプとして扱われるため、実行全体ではなくテールのみ(guide_release 0.8)でノイズ化されます。ヘッドは完全なエビデンスの下で構造を決定し、テールは自由度の下でテクスチャを追加します。ハンドオフの時点で十分な信号が確定しているため、コンテンツが動くことはありません。
作者の参照クリップで測定したところ、この組み合わせはベースラインとほぼ同等のシマーで、凍結ボーダーのベースラインに対してタイルローカルディテール +67% をもたらし、同一のスケジュールを LMS から euler に切り替えるとディテール +56% かつシマーが約3分の1削減されました。ヘッド2ステップは改善ではなく悪化します。状態がソフトガイドに収束してディテールを21%失い、さらに蒸留 turbo モデルを中間シグマで2回ステップさせたところ、ある測定実行では潜在に NaN が出力されました。
特徴のないタイルはサンプリングされずスキップされます。平坦なプレートのクロップはモデルにゼロのエビデンスと完全な自由を与えるため、作者はモデルが参照の顔を空虚な空や煙の中に描き込むのを確認しました。タイルごとのテキスト再エンコードが有効な場合はさらに悪化しました。flat_skip(デフォルト 4.0)はそれらのウィンドウではプレートをそのまま維持し、サンプリング時間を節約します。この判定は、潜在空間の指標が2つ連続して反証されたため、タイルごと、チャンクごとにソースのピクセルエネルギーに基づいて行われます。
収まらない部分をストリーミングする
4x では、15 秒のクリップは float32 の ComfyUI IMAGE として 1 コピーあたり約 36 GB になり、通常のグラフは 3 コピーとクリップ全体のエンコード 2 つを保持します。これはどの GPU でも OOM になるため、Tessera は処理を分割します。
- Streamed Encode は、H3 の 17 px ブロックグリッド上で時間方向のウィンドウ単位にソースをアップスケールし VAE エンコードします。各ウィンドウごとに 22 px のウォームアップ再エンコードを行い、これは破棄されます。検証済みの 544p から 4K への実行では、エンコード側のピクセルバッファのピークは約 5.2 GB でした。通常のグラフを OOM に陥れたクリップ全体コピーの 57.6 GB と比べた値です。
- Streamed Decode は 1 回のストリーミングデコードで出力を組み立て、4 GB を超える場合はディスクバックのバッファを使用します。124 フレームの 8K キャンバスは以前、モノリシックなデコードで 49.7 GB の割り当てに失敗していました。
- ディスクの事前チェックは最初のタイルのサンプリング前に実行されます。デコードのスクラッチ需要はプラン時点で把握できるためです。ある 8K サンプリング実行は、67.6 GB のバッファ割り当てに失敗するまでに既に 8 時間 49 分を費やしていました。
- クラッシュ保険: それでも出力段階が失敗した場合、リファイン済みの潜在は
tessera_rescue_<timestamp>.latentとして保存され、グラフは依然として潜在を返します。そのため LoadLatent とストリーミングデコーダで、再サンプリングせずにレンダーを復元できます。
高速な動きの長いクリップは Temporal Dilate / Decimate を通ります。これはスパンごとのフレームレートを上げ、戻す際に出力のタイミングを再調整します。チャンクのウィンドウは実コンテンツ秒で予算化されます。ダイレーションは各ウィンドウ内のコンテンツを分割するため、ウィンドウあたり同じ量の動きの構造を保つように、時間方向のウィンドウがダイレーション係数に応じてスケールします。プランナーはまた、スパン中間の各ウィンドウ開始を 5 潜在の倍数にスナップし、H3 自身のトークンタイミング(1 ヘッドトークンの後にトークンあたり 4 フレーム)に合わせます。これは 15 秒のテストで、ずれたチャンクごとに 17 px フレームのちらつきメトロノームが確認されたためです。
実測された実行結果
作者による544pから4Kへのパスの参照実行: 15秒のクリップ、617のdilatedフレーム、18ウィンドウ、3つのスナップされたチャンクにまたがる24タイル、1台のGPUで合計3時間。フレーム間の振動は**平均2.44%、ピーク16.1%**となり、同じクリップの2倍参照の2.32%と12.3%と比較して、自己相関に17フレームのシグネチャは残らなかった。
リリース翌日にBanodoco Discordへ投稿された、作者以外のユーザーによる実行結果:
- LDWorks David、BF16ウェイトのRTX 6000 Pro: 121フレーム、2Kから4K、84のrefineステップで約32秒/ステップ、93%に到達するまで44分。
- seitanism: 1344x768、362フレームを時間方向にダイレートして583フレームとし、2688x1536で46:58でレンダリング。2本目のクリップは1920x1088から3840x2176へ53:08。3本目はQwen-Image 2.1の静止画をフレームアンカーとして27:48。彼の評価: すべてのモーションアーティファクトが修正されるわけではないが、十分に持ちこたえる。
- mdkbは12 GBのRTX 3060で、自身の20分という予算に対してテストし、低VRAM向けのレシピを求めた。作者の回答は、それはまだ用意されていないというものだった。出荷時のデフォルトは高VRAMカードをターゲットにしている。
ComfyUI での使用方法
リポジトリを ComfyUI/custom_nodes/ にクローンしてインストールします。すべてが正しく登録されると、起動時のコンソールに [Tessera] loaded 9 node(s) と表示されます。
| ノード | 機能 |
|---|---|
| Tessera Tile Plan | ドライラン: GPU 時間を消費する前にタイルグリッド、チャンク構成、コストを確認 |
| Tessera Streamed Encode | ソースからプレート潜在へ変換し、ガイド条件付けを時間方向のウィンドウ単位で生成 |
| Tessera Refine | タイル単位の条件付け、チャンキング、ヒーロータイル、フラットタイルのスキップ、クラッシュ保険付き出力を備えたタイルリファイナー |
| Tessera Streamed Decode | 単体で使えるストリーミングデコーダー。レスキューされた潜在の復旧経路も兼ねる |
| Tessera Guide Anchor | 精細なスチルをガイドのファインバンドに接合。シフト補正とフロー伝播付き |
| Tessera Temporal Dilate / Decimate | スパン単位のフレームレート拡張と正確な再タイミング |
| Tessera Guide Grain | ガイドに合わせたグレイン |
| Tessera Extra Options | 検証済みデフォルト値を持つエキスパート向け設定 |
同梱のワークフローは、ソースクリップを H3 の参照として、選択したスケールの Lanczos プレート、任意の Qwen-Image 2.1 による先頭フレームアンカー、そして作者がハウスレシピとして使う LoRA のペア(AlissonerdxのH3パックの LMS ディテール LoRA と 3 ステップ turbo LoRA)を組み合わせています。544p のソースを 4x に拡大し、最終的に 3840x2176 になります。
プロモーション動画に登場する Tile Plan ノード: 実行前のグリッド、チャンク、予測コスト。
サンプルで使用するモデル: MiniMax H3 ref2va(作者の環境では pruned int8 ビルド)、H3 の動画 VAE と音声 VAE、Qwen3-VL テキストエンコーダー、さらに任意でアンカー用スチルのための Qwen-Image 2.1 checkpoint とその turbo LoRA、texture-fix VAE。このワークフローは、任意のヒーローマスクとプレビューノードのために SAM3 と KJ のノードパックも必要とします。
知っておくべき制限
- このサンプルは1つのターゲット向けに配線されています。 期待される出力サイズとスケール係数は別々のウィジェットであり、どちらも読み込むクリップに合わせる必要があります。Discord のあるテスターは、同梱のワークフローを別のクリップで 2 倍を期待して実行し、4K キャンバスを得ましたが、ソースより悪いと判断しました。
- スチルアンカーは 2 倍用のツールです。 4 倍以上では、同じテクスチャの 2 つの異なるレンダリング間でスプライスがクロスフェードするため、接続しないままにしてモデルにヘッドをレンダリングさせることをノートでは推奨しています。
- ソースのシマーは継承されます。 自身の細かい帯域がちらつく低解像度のソースは、拡大すると揺れが増幅されて泳ぐように見えます。リファインメントはコヒーレンスをおよそ 0.75 まで引き上げますが、それを超えることはできません。
- シーンカットは参考情報です。 カットオラクルは検出したフレームを出力し、そこでクリップを分割することを推奨します。1 つのウィンドウ内の短いショットでは、ヘッドタイミングのルールとコンテンツ時間の予算の両方を満たすことはできません。
- 2 ホップ目は低い sigma で入力されます(例:
1.0, 0.923, 0.55, 0.0)。また、2 ホップ目のプレートは、再び柔らかくした中間結果ではなく 1 ホップ目の出力であるべきです。
入手方法
- GitHub の hashu786/ComfyUI-Tessera。
example_workflows/tessera_upscaler.jsonと、docs/LAWS.mdに詳細なエンジニアリングノートが含まれています pyproject.tomlには Comfy Registry 用の[tool.comfy]ブロック(DisplayName = "Tessera")が含まれています。本記事の調査時点ではまだレジストリに登録されていなかったため、リポジトリからインストールしてください- この記事の参照フレームは、プロジェクトのプロモーション動画から抽出したフレームです。この動画では 544p のソースと 4 倍レンダリングを比較しています


コメント
GitHubでサインインしてディスカッションに参加しましょう。