事前学習済みの拡散モデルによる画像合成

Pretrained diffusion model for image synthesis

事前学習済みのテキストから画像への拡散モデルによる生成された画像を制御するためのテクニック

この記事で説明されている手法を使用して生成されたStable Diffusionによる画像。著者による画像。

テキストから画像への拡散モデルは、自然言語の説明プロンプトに従った写真のような画像を生成することで驚異的な性能を達成しています。Stable Diffusionなどのオープンソースの事前学習済みモデルのリリースにより、これらの技術の民主化が進んでいます。事前学習済みの拡散モデルを使用すると、計算能力や長時間のトレーニングプロセスを必要とせずに誰でも素晴らしい画像を作成することができます。

テキストによる画像生成の提供する制御レベルにも関わらず、所望の構成を持つ画像を取得することは、多くの場合困難です。実際、標準のテキストから画像への拡散モデルは、生成された画像に描かれるさまざまな要素に対してほとんど制御を提供しません。

この記事では、論文「MultiDiffusion: Fusing Diffusion Paths for Controlled Image Generation」に基づく最近の手法について説明します。この手法により、テキストによる画像生成モデルで生成された画像において要素を配置する上でより高度な制御が可能になります。論文で提案されている手法はより一般的であり、パノラマ画像の生成など他の応用にも使用することができますが、ここでは領域ベースのテキストプロンプトを使用した画像の構成性に限定して説明します。この手法の主な利点は、高価な再トレーニングや微調整を行うことなく、既存の事前学習済みの拡散モデルと使用できることです。

コードを補完するために、この記事で使用した画像を生成するための簡単なColabノートブックとGitHubリポジトリを用意しました。コードは、Hugging Faceのdiffusersライブラリに含まれるStable Diffusionのパイプラインを基にしていますが、機能するために必要な部分のみを実装し、よりシンプルで読みやすくしています。

拡散モデル

このセクションでは、拡散モデルについていくつかの基本的な事実を思い出します。拡散モデルは、データの分布を等方性ガウス分布にマッピングする拡散プロセスを逆にすることで、新しいデータを生成する生成モデルです。具体的には、画像が与えられた場合、拡散プロセスは各ステップでその画像にわずかな量のガウスノイズを追加する一連のステップで構成されます。ステップ数が無限大になると、ノイズが追加された画像は等方性ガウス分布からサンプリングされた純粋なノイズと区別がつかなくなります。

拡散モデルの目標は、各時刻tにおいて、拡散プロセスのステップt-1でのノイズが追加された画像を、ステップtでのノイズが追加された画像から予測することです。これは、例えば、そのステップで追加されるノイズを予測するためにニューラルネットワークをトレーニングし、ノイズをノイズが追加された画像から減算することで行うことができます。

このようなモデルをトレーニングした後、等方性ガウス分布からノイズをサンプリングし、モデルを使用してノイズを徐々に取り除きながら拡散プロセスを逆にすることで、新しい画像を生成することができます。

拡散モデルの目標は、すべての時刻tにおける確率q(x(t-1)|x(t))を学習することです。論文「Denoising Diffusion Probabilistic Models」からの画像。

テキストから画像への拡散モデルは、テキストプロンプトの説明に対応する画像に到達するように拡散プロセスを逆にします。通常、これは、各ステップtにおいて、ノイズが追加された画像をステップt-1のノイズが追加された画像に予測するニューラルネットワークによって行われます。このニューラルネットワークは、画像を再構築しようとしている画像の説明を含むテキストプロンプトにも依存しています。

Stable Diffusionを含む多くの画像拡散モデルは、元の画像空間ではなく、学習済みの小さな潜在空間で動作します。これにより、計算リソースを最小限に抑えながら品質の低下を最小限に抑えることができます。潜在空間は通常、変分オートエンコーダを介して学習されます。潜在空間での拡散プロセスは以前と同様に機能し、ガウスノイズから新しい潜在ベクトルを生成することができます。これらを使用して、変分オートエンコーダのデコーダを使用して新たに生成された画像を取得することができます。

MultiDiffusionを使用した画像合成

では、MultiDiffusionメソッドを使用して、制御可能な画像合成の方法について説明します。目標は、事前に学習されたテキストから画像への変換モデルによって生成される要素をより良い制御することです。具体的には、画像の一般的な説明(例:表紙画像のようなリビングルーム)に対して、テキストのプロンプトを使用して特定の位置に要素を表示したい(例:中央に赤いソファ、左側に観葉植物、右上に絵画)とします。これは、要素の希望する説明を示すテキストプロンプトのセットと、要素を描画する必要のある領域を指定する領域ベースのバイナリマスクのセットを提供することで実現できます。例えば、以下の画像には、表紙画像の要素の境界ボックスが含まれています。

Bounding boxes and prompts used to generate the cover image. Image by the author.

制御可能な画像生成のMultiDiffusionの核心アイデアは、異なる指定されたプロンプトに対して複数の拡散プロセスを組み合わせて、予め決められた領域において各プロンプトの内容を示す連続した滑らかな画像を得ることです。各プロンプトに関連付けられた領域は、画像と同じ次元のバイナリマスクによって指定されます。マスクのピクセルは、その場所にプロンプトを描画する必要がある場合には1に設定され、それ以外の場合は0に設定されます。

具体的には、tを潜在空間で動作する拡散プロセスの一般的なステップとします。ステップtでのノイズのある潜在ベクトルが与えられた場合、モデルは各指定されたテキストプロンプトのノイズを予測します。これらの予測されたノイズから、前のステップtでの潜在ベクトルから各予測されたノイズを除去することで、ステップt-1の潜在ベクトルのセットを得ます(各プロンプトにつき1つ)。拡散プロセスの次のステップの入力を得るために、これらの異なるベクトルを組み合わせる必要があります。これは、各潜在ベクトルを対応するプロンプトマスクで乗算し、マスクによるピクセルごとの平均を取ることで行うことができます。この手順に従うことで、特定のマスクで指定された領域では、潜在ベクトルは対応するローカルプロンプトによって導かれる拡散プロセスの軌跡に従います。各ステップで潜在ベクトルを組み合わせてからノイズを予測することにより、生成される画像のグローバルな結束性と異なるマスクされた領域間の滑らかな遷移が保証されます。

MultiDiffusionは、緻密なマスクに対してより良い適合性を実現するために、拡散プロセスの初期段階でブートストラップフェーズを導入します。この初期ステップでは、異なるプロンプトに対応するノイズの除去された潜在ベクトルは結合されず、代わりに定数の背景色に対応するノイズのある潜在ベクトルと組み合わせられます。この方法により、レイアウトは通常、拡散プロセスの早い段階で決定されるため、モデルは最初にマスクされた領域に焦点を当ててプロンプトを描画することが可能です。

このセクションでは、この手法のいくつかの応用例を示します。私はHuggingFaceがホストする事前学習済みの安定した拡散2モデルを使用して、この記事のすべての画像、表紙画像を作成しました。

前述のように、この手法の直感的な応用例は、あらかじめ定義された位置に要素を含む画像を取得することです。

Bounding boxes. Image by the author.
Image generated using the above bounding boxes. Image by the author.

この手法では、描画される単一の要素のスタイルやその他の属性を指定することができます。これは、ぼかされた背景の鮮明な画像を得るために使用することができます。

ぼかされた背景の境界ボックス。画像:著者による。
上記のバウンディングボックスを使用した画像。著者による画像。

要素のスタイルは非常に異なる場合があり、見栄えの良い視覚的な結果をもたらすこともあります。例えば、以下の画像は、高品質の写真スタイルとヴァン・ゴッホの絵画スタイルを組み合わせたものです。

異なるスタイルのバウンディングボックス。著者による画像。
上記のバウンディングボックスを使用した画像。著者による画像。

結論

この記事では、テキストによる拡散モデルを使用して生成される画像を制御するために、異なる拡散プロセスを組み合わせる方法を探求しました。この方法は、画像の要素が生成される場所を制御するだけでなく、異なるスタイルで描かれた要素をシームレスに組み合わせることも可能です。

この手法の主な利点の一つは、通常は高価な調整手続きを必要とせず、事前に学習されたテキストから画像への拡散モデルと組み合わせて使用できることです。もう一つの強みは、複雑な条件付けよりも簡単に指定および処理できるバイナリマスクを使用して制御可能な画像生成が得られることです。

この技術の主な欠点は、各拡散ステップで、対応するノイズを予測するためにプロンプトごとにニューラルネットワークを通過する必要があることです。幸いにも、これらはバッチ処理で実行することで推論時間のオーバーヘッドを削減できますが、より大きなGPUメモリの使用を伴います。さらに、時にはいくつかのプロンプト(特に画像の一部にのみ指定されたもの)が無視されるか、対応するマスクで指定された領域よりも広い範囲をカバーすることがあります。これはブートストラップステップで緩和することができますが、それらが多すぎると要素を調和させるための利用可能なステップが少なくなるため、画像の全体的な品質がかなり低下する可能性があります。

異なる拡散プロセスを組み合わせるアイデアは、この記事で説明されている内容に限定されるものではなく、制御された画像生成のためのパノラマ画像生成など、さらなる応用にも利用できることを言及しておきます。

この記事がお気に召しましたら、技術的な詳細に深入りするために、このColabノートブックとコードの実装が行われているGitHubリポジトリをご覧ください。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

人工知能

「ElaiのCEO&共同創業者、Vitalii Romanchenkoについてのインタビューシリーズ」

ヴィタリー・ロマンチェンコは、ElaiのCEO兼共同創設者であり、マイク、カメラ、俳優、スタジオの必要なく、個人が一流のビデ...

機械学習

「Prolificの機械学習エンジニア兼AIコンサルタント、ノラ・ペトロヴァ – インタビューシリーズ」

『Nora Petrovaは、Prolificの機械学習エンジニア兼AIコンサルタントですProlificは2014年に設立され、既にGoogle、スタンフ...

人工知能

キャルレールの最高製品責任者、ライアン・ジョンソンへのインタビューシリーズ

ライアンは、初期のスタートアップからフォーチュン100の組織まで、多様なテクノロジーと製品開発のリーダーシップ経験を15年...

人工知能

Diginiのスマートセンスの社長、ガイ・イエヒアブによるインタビューシリーズ

ガイ・イハイアヴ氏は、ビジネスの成功に最も重要な資産を保護するためにインターネット・オブ・シングス(IoT)の力を活用す...

人工知能

「Zenの共同創設者兼CTO、イオン・アレクサンドル・セカラ氏によるインタビューシリーズ」

創業者兼CTOであるIon-Alexandru Secaraは、Zen(PostureHealth Inc.)の開発を牽引しており、画期的な姿勢矯正ソフトウェア...

人工知能

ベイリー・カクスマー、ウォータールー大学の博士課程候補 - インタビューシリーズ

カツマー・ベイリーは、ウォータールー大学のコンピュータ科学学部の博士課程の候補者であり、アルバータ大学の新入教員です...