AIモデルとプラットフォーム

StreamDiffusion: リアルタイムインタラクティブ生成のためのパイプラインレベルのソリューション

mm
Unite.AI を Google の優先ソースに追加
StreamDiffusion: A Pipeline-level Solution for Real-time Interactive Generation

メタバースは、特にゲーム、放送、ビデオストリーミングなどの分野で、商業化の機会が多く、現在最も急速に成長している技術の1つです。モダンなメタバースアプリケーションは、リアリティを高めるために、コンピュータビジョンや拡散モデルなどのAIフレームワークを利用しています。メタバースアプリケーションの大きな課題は、低遅延と高スループットを提供するさまざまな拡散パイプラインを統合することであり、人間とこれらのアプリケーションの間の効果的な相互作用を確保する必要があります。

今日の拡散ベースのAIフレームワークは、テキストまたは画像のプロンプトから画像を作成することに優れていますが、リアルタイムの相互作用では短所があります。この限界は、連続的な入力と高スループットが必要なタスク、たとえばビデオゲームのグラフィックス、メタバースアプリケーション、放送、ライブビデオストリーミングなどのタスクで特に顕現します。

この記事では、StreamDiffusionについて説明します。StreamDiffusionは、リアルタイムのインタラクティブでリアリスティックな画像を生成するために開発された拡散パイプラインであり、連続的な入力を伴うタスクで拡散ベースのフレームワークの現在の限界に対処します。StreamDiffusionは、革新的なアプローチであり、元の画像の順次的なノイズ化をバッチノイズ化に変換し、高スループットと流体的なストリームを可能にします。このアプローチは、既存の拡散ベースのフレームワークで使用されている従来の待機と相互作用の方法から離れます。この記事の後半では、StreamDiffusionフレームワークの詳細、ワーキング、構造、比較結果について説明します。始めましょう。

StreamDiffusion: リアルタイムインタラクティブ生成の紹介

メタバースは、テキスト、アニメーション、ビデオ、画像などの大量のデータをリアルタイムで処理するパフォーマンスが高いアプリケーションです。これらのアプリケーションは、ユーザーにインタラクティブなインターフェースと体験を提供するために、コンピュータビジョン、画像処理、拡散モデルなどのAIベースのフレームワークに依存しています。現在、多くのメタバースアプリケーションは、リアルタイムでインタラクティブ性を高めるために、ノイズ化反復の発生を減らすために、共通の戦略を採用しています。この戦略には、拡散プロセスをニューラルODE(Ordinary Differential Equations)で再構成するか、多ステップの拡散モデルを数ステップまたは1ステップに減らすことが含まれます。ただし、このアプローチには、柔軟性が限られていることや、計算コストが高いことなどの限界があります。

一方、StreamDiffusionは、直交する方向から始まるパイプラインレベルのソリューションであり、リアルタイムでインタラクティブな画像を生成するフレームワークの能力を高めます。StreamDiffusionは、シンプルな戦略を使用し、元の入力のノイズ化ではなく、ノイズ化ステップをバッチ化します。この戦略は、非同期処理からインスピレーションを得ており、フレームワークは最初のノイズ化ステージが完了するまで待たなくても、2番目のステージに進むことができます。次の画像に示すように、StreamDiffusionフレームワークは、入力と出力をキャッシュするために、キュー戦略を実装しています。

StreamDiffusionパイプラインは、非同期処理からインスピレーションを得ていますが、独自の方法でGPU並列性を実装し、単一のUNetコンポーネントを使用してバッチ化されたノイズ潜在特徴をノイズ化できるようにします。既存の拡散ベースのパイプラインは、生成された画像にプロンプトの影響を与えるために、クラスフリー誘導を組み込んでいますが、結果として、現在のパイプラインは冗長で過剰な計算オーバーヘッドで構成されています。StreamDiffusionパイプラインが同じ問題に遭遇しないように、RCFG(Residual Classifier-Free Guidance)アプローチを実装しています。RCFGは、仮想の残留ノイズを使用して負の条件を近似し、プロセスの初期段階で負のノイズ条件を計算できるようにします。また、StreamDiffusionパイプラインは、拡散パイプラインの計算要件を削減するために、確率的類似性フィルタリング戦略を実装しています。

StreamDiffusionフレームワークは、拡散モデルと加速拡散モデルの知識に基づいて構築されています。拡散モデルは、画像生成能力と制御性が優れています。拡散モデルの能力により、画像編集、テキストから画像生成、ビデオ生成などの分野で応用されています。さらに、一貫したモデルの開発により、サンプル処理効率を向上させることができます。拡散モデルの大きな限界は、画像生成が遅いことです。開発者は、加速拡散モデルを導入しました。これらのモデルは、追加のトレーニングステップを必要とせず、予測子-修正子戦略と適応ステップサイズソルバーを実装して、出力速度を高めることができます。

StreamDiffusion: ワーキングとアーキテクチャ

StreamDiffusionパイプラインは、リアルタイムの拡散パイプラインであり、インタラクティブでリアリスティックな画像を生成するために開発されました。StreamDiffusionパイプラインは、6つの重要なコンポーネントで構成されています。RCFG(Residual Classifier-Free Guidance)、Stream Batch戦略、Stochastic Similarity Filter、入出力キュー、モデル加速ツールとオートエンコーダー、事前計算プロシージャです。これらのコンポーネントについて詳細に説明します。

Stream Batch戦略

伝統的に、拡散モデルのノイズ化ステップは順次的に実行され、UNet処理時間が処理ステップの数に比例して増加します。ただし、高忠実度の画像を生成するには、処理ステップの数を増やす必要があります。StreamDiffusionフレームワークは、Stream Batch戦略を導入して、インタラクティブ拡散フレームワークの高遅延解決を克服します。

Stream Batch戦略では、順次的なノイズ化操作がバッチプロセスに再構成され、各バッチは事前に決定された数のノイズ化ステップに対応します。各バッチのノイズ化ステップの数は、バッチのサイズによって決定されます。アプローチにより、各バッチの要素は、シングルパススルーUNetを使用して、ノイズ化シーケンスで1ステップ進むことができます。Stream Batch戦略を繰り返し実行すると、入力画像は時刻「t」でエンコードされた画像を時刻「t+n」で画像から画像への結果に変換できます。ノイズ化プロセスを合理化します。

Residual Classifier-Free Guidance

CFG(Classifier-Free Guidance)アルゴリズムは、元の条件付け用語と負の条件付け用語の間のベクトル計算を実行して、元の条件付けの影響を高めます。ただし、負の条件付け残留ノイズを計算するには、個々の入力潜在変数を負の条件付け埋め込みとペアにして、UNetを参照時刻で通過させる必要があります。

CFGアルゴリズムによって生じる問題に対処するために、StreamDiffusionフレームワークは、RCFG(Residual Classifier-Free Guidance)アルゴリズムを導入しました。RCFGは、負の条件付け埋め込みのための追加のUNet干渉の計算コストを削減することを目的としています。まず、エンコードされた潜在的な入力は、ノイズスケジューラによって決定された値を使用してノイズ分布に転送されます。潜在的な一貫性モデルが実装されたら、アルゴリズムはデータ分布を予測し、CFG残留ノイズを使用して次のステップのノイズ分布を生成できます。

入出力キュー

高速度画像生成フレームワークの主な問題は、UNetやVAEなどのニューラルネットワークモジュールです。効率と出力速度を最大化するために、画像生成フレームワークは、ニューラルネットワークモジュールによる追加の処理を必要としない画像の前処理や後処理などのプロセスをパイプラインの外に出します。その後、これらのプロセスは並列に処理されます。さらに、入力画像の処理については、パイプラインは、テンソル形式の変換、入力画像のリサイズ、正規化などの特定の操作を慎重に実行します。

モデル処理頻度と人間の入力頻度の不一致に対処するために、パイプラインは入出力キューを統合して、効率的な並列化を可能にします。次の画像に示すように、処理された入力テンソルは、拡散モデル用に体系的にキューに配置され、各フレームでモデルは入力キューから最新のテンソルを取得し、テンソルをVAEエンコーダーに転送して、画像生成プロセスを開始します。同時に、VAEデコーダーのテンソル出力は出力キューにフィードされ、最終的に処理された画像データはレンダリングクライアントに転送されます。

Stochastic Similarity Filter

画像が静的環境やアクティブなユーザーインタラクションなしで変化しない、またはわずかに変化するシナリオでは、UNetとVAEコンポーネントに似た画像が繰り返し入力されます。繰り返し入力は、ほぼ同一の画像の生成とGPUリソースの追加消費につながります。さらに、連続入力シナリオでは、変更されていない入力画像が時々出現します。リソースの不必要な使用を防ぎ、StreamDiffusionパイプラインは、Stochastic Similarity Filterコンポーネントをパイプラインに導入します。Stochastic Similarity Filterは、参照画像と入力画像の間のコサイン類似度を計算し、コサイン類似度スコアを使用して、UNetとVAEプロセスをスキップする確率を計算します。

確率スコアに基づいて、パイプラインは、VAEエンコーディング、VAEデコーディング、UNetなどのプロセスをスキップするかどうかを決定します。プロセスがスキップされない場合、パイプラインは入力画像をその時点で保存し、参照画像を将来使用するために同時に更新します。この確率ベースのスキップメカニズムにより、StreamDiffusionパイプラインは、フレーム間の類似性が低いダイナミックシナリオで完全に動作し、フレーム間の類似性が高い静的シナリオで動作します。このアプローチにより、計算リソースが保存され、入力画像の類似性に基づいてGPUの最適な使用が保証されます。

事前計算

UNetアーキテクチャには、条件付け埋め込みと入力潜在変数の両方が必要です。伝統的に、条件付け埋め込みは、フレーム間で一定のプロンプト埋め込みから派生します。プロンプト埋め込みの派生を最適化するために、StreamDiffusionパイプラインはこれらのプロンプト埋め込みを事前に計算してキャッシュに保存し、ストリーミングまたはインタラクティブモードで呼び出します。UNetフレームワーク内では、各フレームの事前に計算されたプロンプト埋め込みに基づいて、キー-値のペアが計算され、UNetにわずかな変更を加えることで、これらのキー-値のペアを再利用できます。

モデル加速とTiny AutoEncoder

StreamDiffusionパイプラインは、NvidiaのTensorRTを使用して、VAEとUNetエンジンを構築し、推論速度を加速します。TensorRTコンポーネントは、深層学習インターフェースの最適化ツールキットであり、効率とスループットを高めるために、ニューラルネットワークに対して多数の最適化を実行します。速度を最適化するために、StreamDiffusionは、固定入力ディメンションと静的バッチサイズを使用するように構成されており、特定の入力サイズの最適なメモリ割り当てと計算グラフを確保して、より高速な処理時間を実現します。

上記の図は、推論パイプラインの概要を示しています。コアの拡散パイプラインには、UNetとVAEコンポーネントが含まれます。パイプラインには、ノイズ化バッチ、サンプルノイズキャッシュ、事前に計算されたプロンプト埋め込みキャッシュ、スケジューラ値キャッシュが含まれており、画像をリアルタイムで生成する能力と速度が向上します。Stochastic Similarity Filter(SSF)は、GPUの使用を最適化し、拡散モデルを動的にゲートするために導入されています。

StreamDiffusion: 実験と結果

StreamDiffusionパイプラインの能力を評価するために、LCMとSD-turboフレームワークで実装されました。NvidiaのTensorRTがモデル加速器として使用され、軽量効率のVAEを可能にするために、TAESDコンポーネントが導入されました。StreamDiffusionパイプラインが現在の最先端フレームワークと比較してどのように実行されるかを見てみましょう。

定量的評価

次の図は、パイプライン内の伝統的な順次的なUNetとノイズ化バッチコンポーネントの効率の比較を示しています。ノイズ化バッチアプローチを実装すると、伝統的なUNetループの順次的なノイズ化ステップと比較して処理時間が大幅に削減されることがわかります。

さらに、さまざまなノイズ化ステップでの平均推論時間も、現在の最先端パイプラインと比較して大幅なブーストを示しています。結果は次の画像に示されています。

StreamDiffusionパイプラインは、RCFGコンポーネントを使用して、伝統的なCFGコンポーネントを含むパイプラインと比較して、推論時間が短くなります。

RCFGコンポーネントの使用の影響は、CFGコンポーネントを使用した場合と比較して、次の画像に示されています。

CFGを使用すると、画像生成でテキストプロンプトの影響が強化され、画像は入力プロンプトにさらに似てきます。RCFGコンポーネントを使用すると、プロンプトの影響がさらに強化され、画像は元のCFGコンポーネントと比較してさらに強化されます。

最終的な考え

この記事では、StreamDiffusionについて説明しました。StreamDiffusionは、リアルタイムの拡散パイプラインであり、インタラクティブでリアリスティックな画像を生成するために開発され、連続的な入力を伴うタスクで拡散ベースのフレームワークの現在の限界に対処します。StreamDiffusionは、シンプルで革新的なアプローチであり、元の画像の順次的なノイズ化をバッチノイズ化に変換し、高スループットと流体的なストリームを可能にします。StreamDiffusionは、従来の待機と相互作用のアプローチを排除し、現在の拡散ベースのフレームワークと比較して、潜在的な効率性の向上を示しています。StreamDiffusionパイプラインの潜在的な効率性の向上は、高性能コンピューティングとジェネレーティブAIのための魅力的なソリューションを提供する商業アプリケーションの可能性を強調しています。

職業はエンジニア、心は作家。クナルは、AIとMLを深く愛し理解しているテクニカルライターで、これらの分野の複雑な概念を魅力的で情報の多いドキュメンテーションを通じて簡素化することに尽力しています。