project
LayerDiffusion - 透明度を持つAI生成画像のためのフレームワーク。
スタンフォード大学の研究者らが提案したLayerDiffusionは、大規模な事前学習済み潜在拡散モデルを用いて透明画像を生成する技術です。単一の透明画像、あるいは複数の透明レイヤーを生成することができます。
レイヤー拡散とは何ですか?
LayerDiffusion(現在はLayerDiffuseに改名)は、スタンフォード大学の研究者であるLvmin Zhang氏(ControlNetの著者)とManeesh Agrawala氏によって提案された技術です。この技術は、大規模な事前学習済み潜在拡散モデル(Stable Diffusionなど)を利用して透明画像を生成し、ユーザーが単一の透明画像または複数の透明レイヤーを生成できるようにします。この手法の中核は、「潜在的透明性」という概念を導入し、画像のアルファチャネルの透明情報を潜在空間にエンコードすることにあります。これにより、元々は不透明な画像を生成するために使用されていたモデルで、透明画像を生成することが可能になります。
LayerDiffusionを使えば、ユーザーはまず画像を生成してからRemove.bgのようなAI技術を使って背景を除去することなく、透明な切り抜き画像を素早く生成できます。
LayerDiffusion公式サイトへの入り口
- GitHubリポジトリ:https://github.com/layerdiffusion/LayerDiffusion(モデルとソースコードは近日中に公開予定です)
- LayerDifffusion SD WebUI バージョン:https://github.com/layerdiffusion/sd-forge-layerdiffusion
- arXivの研究論文:https://arxiv.org/abs/2402.17113
レイヤー拡散機能
- 透明な画像を生成するLayerDiffusioは透明度を持つ画像を生成できます。つまり、アルファチャンネルを持つ画像を作成でき、アルファチャンネルは画像内の各ピクセルの透明度を定義します。
- 複数の透明レイヤーを生成するLayerDiffusionは、単一の透明画像に加えて、複数の透明レイヤーを生成することもできます。これらのレイヤーは、個別に生成することも、特定の条件(前景や背景など)に基づいて生成することもでき、それらを組み合わせて複雑なシーンを作成できます。
- 条件付き生成LayerDiffusionは条件付き生成をサポートしており、透明な画像に基づいて前景または背景を生成することができるため、特定のシーン向けの画像を作成する際の柔軟性が高まります。
- 階層コンテンツ構造制御ユーザーはLayerDiffusionをControlNet制御フレームワークと組み合わせることで、レイヤーコンテンツに対する構造的な制御を行い、レイヤー、レイアウト、要素、オブジェクトの形状をガイドすることもできます。
- レイヤーを繰り返し反復して組み合わせるLayerDiffusionは、背景条件と前景モデルを繰り返すことで複数のレイヤーを反復的に組み合わせ、任意の数の透明レイヤーを持つ合成画像を段階的に構築できます。
- 高画質画像出力LayerDiffusionは、事前学習済みモデルの潜在空間に潜在オフセットとして透明性を追加することで、元の潜在分布を大きく変更することなく、事前学習済みモデルの高品質な出力を維持することができます。
LayerDiffusionの仕組み
- 潜在的空間の準備:
- まず、LayerDiffusionは、変分オートエンコーダー(VAE)を通してRGB画像をエンコードすることによって得られる、事前学習済みの潜在拡散モデル(Stable Diffusionなど)の潜在空間を使用します。
- 透明性をサポートするために、LayerDiffusionは潜在空間に新たな次元(潜在的透明性)を導入し、画像のアルファチャンネル(透明度情報)を表現します。
- 潜在的透明性の符号化と復号化:
- LayerDiffusionは、潜在的透明度エンコーダーと潜在的透明度デコーダーという2つの独立したニューラルネットワークを学習します。
- エンコーダは、元の画像のRGBチャンネルとアルファチャンネルを受け取り、透明度情報を潜在オフセットにエンコードし、それを潜在空間における表現に追加します。
- デコーダーは、調整された潜在表現から透明度情報を抽出し、それを元のアルファチャンネルにデコードする。
- 潜在空間の調整:
- 追加された透明度情報が元の潜在空間の分布を乱さないようにするため、LayerDiffusionは潜在オフセットを使用して潜在表現を調整します。
- このプロセスでは、「無害性」指標が用いられ、元の事前学習済みモデルのデコーダーのデコード結果と調整後の潜在表現を比較することで、潜在オフセットがモデルの再構築能力を損なうかどうかを評価します。
- 拡散モデルの微調整:
- LayerDiffusionは、潜在空間に透明度情報を導入した後、元の拡散モデルを微調整して、新しい潜在空間で透明な画像を生成できるようにします。
- このプロセスでは、拡散モデルを訓練して、ノイズを加えながら透明度情報を保持する方法を学習させます。
- 多層生成:
- LayerDiffusionは、複数の透明レイヤーの生成をサポートする機能も備えています。これは、共有アテンションメカニズムと低ランク適応(LoRA)によって実現され、異なるレイヤー間の一貫性と調和のとれたブレンドを保証します。
- データセットの準備とトレーニング:
- モデルの学習のため、研究者らは、人間が参加する収集プロセスを通じて、多数の透過画像(多様なコンテンツテーマとスタイルを網羅した100万枚の透過画像)を収集した。このデータセットに基づいて、モデルは高品質の透過画像とレイヤーを生成するように学習された。