ComfyUI SPEEDがMiniMax H3だけでなく画像モデルも高速化

ComfyUI Wikinews

ComfyUI-SPEEDがKSampler形式のノードを追加し、MOSS ImageとKrea 2でもMiniMax H3と同様にプログレッシブ解像度サンプリングを実行できるようになりました。モデルごとのキャリブレーションと新しい計測値も公開されています。

ComfyUI SPEED は、以前 ComfyUI-MiniMax-H3-SPEED として公開されていたサンプラーパックです。今回の名前の変更は、このパックが現在行っている内容に合わせたものです。同じプログレッシブ解像度サンプラーが、KSampler形式のノードを通じてフロー系画像モデル上で動作し、当初からのMiniMax H3ノードと並んで利用できます。
MiniMax H3のクリップ、左がネイティブサンプリング、右がSPEEDの4ステージサンプリング

同じシードとプロンプトによる、Modal L40S上の5秒・960x544のクリップ。左: 通常のサンプリングで288秒。右: 許容値0.05・4ステージのSPEEDで182秒。

このパックが行うこと

SPEEDは、スタンフォード大学のHoward Xiao、Brian Chao、Lior Yariv、Gordon Wetzsteinによる論文Spectral Progressive Diffusion for Efficient Image and Video Generationに基づいています。その背景にある観察は次のとおりです。diffusionモデルは画像をおおよそ低周波から高周波へと構築していくため、初期のデノイズステップはモデルがまだ解像していない帯域に支配されています。そうしたステップをフル解像度で実行すると、計算資源の大部分がノイズに費やされます。

このパックは、再学習なしでそれをComfyUIに適用します。実行は小さなグリッドから始まり、ディテールが重要になり始めるにつれて潜在を大きなグリッドへと段階的に引き上げます。stagesがその段数のはしごを決めます。2ステージなら0.5から1.0、3ステージなら0.33から0.66を経て1.0、4ステージなら0.25から0.5、0.75を経て1.0です。Tolerance (Delta)、noise_amplitude、noise_decay_exponentが各切り替えをどのステップで行うかを決め、許容値が小さいほど切り替えは遅くなります。安全ですが、遅くなります。

MiniMax H3では、動画ストリームがどのステージにあっても、音声ストリームはフル解像度のまま維持されます。

名前の変更で変わったこと

リポジトリはStanLukuvka/ComfyUI-MiniMax-H3-SPEEDからStanLukuvka/ComfyUI-SPEEDになり、変更履歴ではこれらが2.0.0としてグループ化されています。このパックがまだH3専用だった頃、当サイトはそのV2サンプラーセットを紹介しました。

  • 2つの系統に6つのノード。 SPEED KSampler、SPEED KSampler (Manual)、SPEED KSampler Sigma Harvestは、ComfyUI標準のKSamplerと同様にmodel、条件付け、latent_imageを受け取り、ノイズ、ガイダー、サンプラー、シグマスケジュールを内部で構築します。Advanced系統はMiniMax H3向けのSamplerCustomAdvancedの配線を維持します。
  • フロー系画像モデル。 MOSS ImageとKrea 2はKSamplerノードを通じて動作します。このパックはEPSやv-predictionのチェックポイントなどフロー系でないモデルを、サンプラー内でもHarvest内でもエラーで拒否します。
  • 画像から画像へ。 denoiseはKSamplerと同様に機能します。最初のステージは、そのステージのサイズに縮小されたエンコード済み画像から開始し、Automaticは短縮されたスケジュールがすでに通過した粗いステージをスキップします。
  • 編集モデルでの参照潜在。 Flux 3 Kleinのようにreference_latentsを受け取る編集モデルは、以前は粗いステージで参照の左上隅しか見えていませんでした。KSamplerノードは各ステージで参照潜在をスケーリングし、最後のステージで復元するようになりました。
  • デフォルト値の埋め込みを廃止。 noise_amplitudeとnoise_decay_exponentは0から始まり、Harvestキャリブレーションを実行するまでエラーで停止します。Eulerを使うベースのH3については、READMEに参照値として35.4213と1.0126が記載されています。
  • ノード名の変更。 以前のMiniMaxH3*のIDは非推奨のサブクラスとして登録されたままなので、保存済みのワークフローは引き続き読み込め、ノードを1つずつ置き換えていくことができます。

Sigma Harvestは、モデルごとのキャリブレーションを行う場所です。SPEEDの連鎖なしで、お使いのサンプラーとスケジュールをフル解像度で1回実行し、残差のパワーが周波数とともにどのように低下するかを測定して、P(ω) = A·|ω|^-βをフィッティングします。その後Automaticがそのフィットから各ステージ境界を解き、Harvestはr²とhealthラベル(r²が0.7以上でgood、0.4でfair、以降はweak、suspect、invalid)を報告するので、そのフィットを信頼する価値があるかどうかがわかります。

計測された高速化

新しいH3の検証データでは、以前の10秒クリップに代えて、960x544の5秒のラテアート注ぎのクリップを、Modal L40S上で1回のHarvestキャリブレーション(A 35.4213、β 1.0126)とともに実行しています。通常のサンプリングは許容値0.01と0.05のセッションで288秒、0.005のセッションで276秒かかり、各高速化率はそれぞれのセッションに対して計測されています。

許容値2ステージ3ステージ4ステージ
0.005238秒 (1.16x)236秒 (1.17x)227秒 (1.22x)
0.010238秒 (1.21x)226秒 (1.27x)224秒 (1.29x)
0.050206秒 (1.40x)194秒 (1.48x)182秒 (1.58x)

同じペアを並べて再生したもの。左が通常のサンプリング、右が許容値0.05・4ステージのSPEEDです。

作者によれば、10本のH3クリップのいずれにもカラーフラッシュはなく、注ぎ、ラテアート、文字はすべての実行で保たれているとのことです。これは同じリポジトリが以前のH3クリップについてRTX 5080上で報告した2.41xよりも低いため、この倍率は方法そのものではなく、クリップ、GPU、キャリブレーションに依存する特性として扱うべきです。

画像のスチルは実行時間がはるかに短く、数値も小さくなります。

モデルネイティブAutomatic、3ステージ、許容値0.05Manual、0.5xからステップ数半分
MOSS Image、1344x768、20ステップ、CFG 522秒18秒 (1.26x)14秒 (1.54x)
Krea 2 raw、fp8、1216x832、52ステップ、CFG 3.5283秒215秒 (1.31x)183秒 (1.55x)
MOSS Image、左がネイティブ、右がSPEED 3ステージ

1344x768のMOSS Image、同じシードとプロンプト。左: ネイティブで22秒。右: SPEED 3ステージで18秒。

Krea 2、左がネイティブ、右がSPEED 3ステージ

1216x832、52ステップのKrea 2。左: ネイティブで283秒。右: SPEED 3ステージで215秒。作者によると、Krea 2の行は8 GBのカードで13 GBのモデルを動かした単発の実行であるため、数十秒単位で変動します。

許容値0.005では、Harvestで得られた境界が画像スケジュールの最初の数ステップに入ってしまい、ほとんど節約にならないため、画像ワークフローでは0.05を使用します。

構図と速度のトレードオフ

noise_policyは、各切り替え時に追加の高周波ディテールをどこから得るかを決めます。coupled_full_gridは通常のSamplerCustomAdvanced実行で使われるノイズ場を再利用するため、同じシードで同じ構図が保たれ、H3クリップでは5〜10パーセントしか節約できませんでした。direct_coarseは独自のフィルを生成します。特定のシードでの画像は変わりますが、同じクリップで15〜30パーセントを節約しました。

ワークフロー

リポジトリには3つのサンプルグラフが同梱されており、それぞれが1組のローダー上にHarvest、Automatic、Manualの各ノードを持ち、Automaticのみが有効になっています。

H3のグラフはAdvancedノードをEuler、シンプルスケジューリング、20ステップ、3ステージ、許容値0.005で実行します。2つの画像グラフはKSamplerノードをEulerで実行し、MOSS Imageは20ステップ、Krea 2は52ステップ、3ステージ、許容値0.05です。

制限事項

  • フロー系(CONST)の画像モデルのみを受け付けます。これはサンプラー内でもHarvest内でも同様です。
  • noise_maskおよびマスク付きデノイズはサポートされていません。
  • Advancedノードではlatent_imageは空で開始する必要があります。画像から動画へはH3のキーフレーム条件付けを通じて行われ、このパックが自身でサイズ変更と復元を行います。
  • 各ステージは独立したサンプラー呼び出しであるため、マルチステップのサンプラーは解像度が変わるたびに履歴を再起動します。各ステージには少なくとも2ステップを割り当ててください。
  • 一部のサンプラーはH3上で依然として不具合があります。dpm_fastとdpm_adaptiveはデノイズが完了せず、uni_pcはステージに1ステップしか割り当てられない場合に破綻します。

入手方法

この記事の執筆時点で、リポジトリは110個のスターを集めていました。発表はr/StableDiffusionで行われており、執筆時点では画像モデルの数値について独立した再現は公開されていませんでした。

コメント

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

コメントを読み込み中…
ComfyUI SPEEDがMiniMax H3だけでなく画像モデルも高速化 | ComfyUI Wiki