MiniMax H3動画VAEの最適化がComfyUI 0.36.0に登場

ComfyUI Wikinews

ComfyUI 0.36.0はcomfy-kitchenカーネルでMiniMax H3動画VAEを高速化し、公式Comfy-Orgリポジトリがコンパクトなint8 convrot VAEをホストするようになりました。

MiniMax H3動画VAEは、ComfyUIコアの新しいcomfy-kitchenカーネルを中心に書き直され(PR #16187、9月15日マージ)、公式のComfy-Org/MiniMax-H3リポジトリがコンパクトなint8 convrot動画VAEを提供するようになりました。どちらもComfyUI 0.36.0に含まれており、インストールするノードも、配線し直すワークフローもありません。

VAEパスで変わったこと

変更はすべてcomfy/ldm/minimax/vae.pycomfy/ops.pyにあります。カーネルはcomfy-kitchen #167(9月13日マージ)から提供されています。

  • 融合されたエンコーダパス。 group_norm_silu_pad3dはフレームごとのGroupNorm、SiLU、reflect/causalパディングを1パスで実行し、NDHWCで出力するため、cuDNNがレイアウト変換なしで動作します。PRはこのステップをロスレスで常時有効と説明しています。
  • fp16アキュムレート。 ck.fp16_conv3dck.fp16_linearはCUTLASSのfp16アキュムレートカーネルを使用し、バイアスと残差はエピローグに畳み込まれます。これらはfp16アキュムレーションを伴う--fastで有効になり、GPUを埋め尽くせないほど小さな起動はcuBLASに返されます。
  • Int8デコーダ。 Int8量子化されたデコーダはck.int8_attentionと、エピローグが残差を運ぶint8 GEMMを経由し、rms_norm/swigluはアクティベーション量子化器に畳み込まれ、128x256タイルと128x128タイルの間にはwave quantizationガードが入ります。
  • バッチ化されたタイルデコード。 tiled_decodeは空きメモリでクランプされつつ最大4タイルを一度にデコードするようになり、タイル実行がフレームごとに直列化されなくなりました。
  • Dynamic VRAM互換。 重みと正規化パラメータはcast_bias_weightを通じて渡されるため、上記はすべてComfyUIのDynamic VRAM読み込み下でも動作し続けます。

comfy-kitchenまたは特定のカーネルが不足している場合、コードは以前のeagerシーケンスにフォールバックするため、古いインストールは影響を受けません。

計測された効果

カーネルPRは、5090で計測した1344x768、362フレームにわたるエンドツーエンドのcomfy.sd.VAE呼び出しを報告しています。

パス
エンコード(fp16)46.6 s32.0 s
エンコード(--fast、fp16アキュムレーション)47.2 s21.2 s
デコード(fp16)34.6 s31.1 s
デコード(--fast27.7 s23.2 s
デコード(int8)18.7 s12.9 s

品質は正確なパスに対して測定されました。fp16アキュムレートのエンコードで68 dB、int8デコードで67.7 dBで、VAE自体の再構成フロアは約38 dBです。後続のコアコミット(PR #16332)はMiniMax VAEのメモリ使用量をさらに少し下げます。

int8 convrot VAEが公式リポジトリへ移動

使用するファイルはComfy-Org/MiniMax-H3のvae/minimax_h3_video_vae_int8_convrot.safetensorsで、9月15日に2.81 GBでアップロードされました。Redditスレッドで、H3向けに流通していた以前の実験的int8 VAE(3.17 GB)とどう違うのかと尋ねられたKijaiは、エンコーダが今やfp32ではなくfp16で保存されていると答えました。そもそもデフォルトでfp16で動作していたため、両者は同一にデコードされ、保持すべきは小さい方のファイルだとのことです。

改善を報告したスレッドのMiniMax H3 Ref2VA出力

作者のカードが許す最大解像度で3枚の参照画像を使ったMiniMax H3の参照から動画の実行。更新されたVAEに関するRedditの報告とともに投稿されました(u/Chiduck99)。

小型カードでユーザーが見ているもの

この変更は、H3での以前の上限が10秒で0.8 MPだったRTX 3060 12 GBユーザーによるRedditの報告で明らかになりました。同じカードで更新済みVAEを使うと、10秒で1 MP、15秒で0.7 MPになり、目に見える品質低下はないと報告しています。そのスレッドでのKijaiの返信は、このアップロードをカーネル作業と結び付けています。comfy-kitchenの最適化されたカスタムカーネルはint8 VAEとオリジナルのfp16 VAEの両方を高速化し、ComfyUIとcomfy-kitchenが最新である限り常に有効です。

利用可能性

どちらのパーツもComfyUI 0.36.0(9月15日)の一部です。VAEパスはPR #16187を通じて提供され、comfy-kitchen 0.2.34がそのタグのrequirements.txtにピン留めされています(現在のmasterでは0.2.35)。そのため更新済みのインストールに追加のものは不要です。動画VAE、音声VAE、デコーダはすべて、既存のMiniMax H3ワークフローによって自動的に読み込まれます。

コメント

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

コメントを読み込み中…
MiniMax H3動画VAEの最適化がComfyUI 0.36.0に登場 | ComfyUI Wiki