Hugging Face リモート VAE(推論エンドポイント向け)
Hugging Face は、Variational Autoencoder (VAE) デコードプロセスをリモート エンドポイントに委任する実験的パイロットを導入しました。このアプローチにより、ユーザーはメモリ集約的なデコードステージを Inference Endpoint にオフロードすることで、コンシューマー GPU 上で高解像度の画像および動画合成を実行でき、これによりローカル VAE 実行に関連する VRAM ボトルネックを回避できます。
ラテン空間ディフュージョンにおける VRAM ボトルネックの解決
ラテン空間ディフュージョン モデルでは、VAE デコーダーは生成の最終段階において最もメモリ集約的なコンポーネントとなることがよくあります。コンシューマー グレードのハードウェアを使用するユーザーにとって、これは高解像度出力の大きな障壁となります。Hugging Face は、一般的なローカルなワークアラウンド 2 つとそれぞれの欠点を特定しています:
- Offloading: VAE を CPU RAM に移動すると、デバイス転送オーバーヘッドが発生し、全体の推論レイテンシーが増加します。
- Tiling: 画像を小さなタイルに分割して処理するとメモリ使用量は減少しますが、最終的な画像品質に悪影響を及ぼす可能性があります。
By delegating the decoding process to a remote endpoint, users can maintain high image quality and reduce local VRAM consumption without the latency penalties of local offloading.
技術的実装と統合
この実験的機能は Diffusers チームによって開発され、カスタム ハンドラーとともに huggingface-inference-toolkit を利用しています。実装はオープンソースであり、プロセス中にデータが保存または追跡されることはありません。
Diffusers との統合
リモート VAE を使用するには、ユーザーは main ブランチから diffusers ライブラリをインストールする必要があります:
pip install git+https://github.com/huggingface/diffusers@main
デコードは、diffusers.utils.remote_utils からの remote_decode ヘルパー メソッドを介して処理されます。
モデル サポートとエンドポイント
Hugging Face は、いくつかの人気モデルに対して専用エンドポイントを提供しています:
| モデル | VAE エンドポイント |
|---|---|
| Stable Diffusion v1 | https://q1bj3bpq6kzilnsu.us-east-1.aws.endpoints.huggingface.cloud |
| Stable Diffusion XL | https://x2dmsqunjd6k9prw.us-east-1.aws.endpoints.huggingface.cloud |
| Flux | https://whhx50ex1aryqvw6.us-east-1.aws.endpoints.huggingface.cloud |
| HunyuanVideo | https://o7ywnmrahorts457.us-east-1.aws.endpoints.huggingface.cloud |
機能とユースケース
画像と動画の生成
remote_decode 関数は、さまざまなモダリティとモデル固有の要件をサポートします。たとえば、Flux はそのラテントがパックされているため、height と width パラメータが必要です。HunyuanVideo は、結果を直接 .mp4 ファイルとして出力することをサポートしています。
キューイングによる並行性
デコードがリモートで行われるため、ユーザーはキューイング システムを実装して並行性を向上させることができます。リモート エンドポイントが現在のラテントをデコードしている間、ローカル GPU はパイプライン内の次のラテントの生成を続けることができます。これにより、ハードウェアの利用率を最大化するストリームラインな生成-デコード ループが可能になります。
パフォーマンスとメモリへの影響
ローカルでの VAE デコード要件は、解像度と GPU の容量に応じて急激に増加します。1024x1024 解像度の Stable Diffusion v1.5 では、RTX 3070 でメモリ使用量が 56.3% に達する可能性がありますが、タイル デコードではこれが 16% に減少し、推論時間が 77% 増加します。
SDXL の 1024x1024 では、メモリ消費がさらに深刻で、RTX 3080 では 93%、RTX 3070 では 96.4% に達します。これにより、VRAM にフル VAE プロセスを収められないユーザーにとって、リモート デコードは実行可能な代替手段となります。