Stable Diffusion と DALL·E 2 の Inpaint
negocia株式会社で機械学習エンジニアを担当している神谷です。
画像生成AIのInpaint(修復)機能を試してみたので紹介します。
要約
Stable DiffusionとDALL·E 2の Inpaint (修復)機能を比較しました。
Stable Diffusion より DALL·E 2 の方が境界を滑らかに修復できました。
背景
画像生成AIとして Stable Diffusion と DALL·E 2 が有名です。2022年8月31日にDALL-EにOutpaint機能がリリースされ、Stable Diffusion と DALL·E 2 の Outpaint 機能を比較したいと考えました。しかし2022年10月14日の時点ではHugging Face の Stable Diffusionに Outpaint 機能は実装されていないようです。そこでOutpaint の代わりに Inpaint を比較することにしました。
補足: Inpaint と Outpaint
- Inpaint:画像内に変更を加える
- Outpaint:元の画像の外側に画風そのままに描き足す
補足: Stable Diffusion の Outpaint 機能
Huggin Face ではありませんが Stable Diffusion の Outpaint 機能の実装が公開されています。
比較結果の表
モデル | 実験1 | 実験2 |
---|---|---|
Stable Diffusion | Stable Diffusionの生成画像 | Stable Diffusionの生成画像 |
DALL·E 2 | DALL·E 2の生成画像 | DALL·E 2の生成画像 |
実験1(ベンチに座る犬を猫にする)
実験1.1(Stable Diffusion)
まずはStable Diffusion の Inpaint のサンプルを試しました。
入力
画像2枚とプロンプトを入力しました。
- ベンチに犬が座っている画像
元の画像 - 犬をマスクする画像
マスク画像 -
a cat sitting on a bench
というプロンプト
出力
ベンチに猫が座っている画像が出力されました。
生成画像
実験1.2(DALL·E 2)
次に実験1.1をDALL·E 2で再現しました。 実験1.1に比べて猫が小さくなりました。
猫が小さくなった分はベンチや背景で修復されています。
DALL·E 2の生成画像
実験1.3(大きなマスクの Stable Diffusion)
実験1.1ではマスクした部分が猫で占められていたため、ベンチがどのように修復されるかわかりませんでした。
そこで Stable Diffusion でベンチがどのように修復されるかを知るため実験1.1のマスクを大きくしました。
Stable Diffusionの生成画像
Stable Diffusion と DALL·E 2 の比較
「ベンチの網目」や「ベンチと背景の境界」の修復は Stable Diffusion より DALL·E 2 の方が優れていました。
Stable Diffusion より DALL·E 2 の方が境界を滑らかに修復しています。
実験1の結果の表
モデル | マスク画像 | 生成画像 | 備考 |
---|---|---|---|
Stable Diffusion | Stable Diffusionのマスク画像 | Stable Diffusionの生成画像 Stable Diffusionの生成画像 | 実験1.1:Stable Diffusion の inpaint のサンプル |
DALL·E 2 | DALL·E 2のマスク画像 | DALL·E 2の生成画像 DALL·E 2の生成画像 | 実験1.2:実験1.1を DALL·E 2 で再現 |
Stable Diffusion | Stable Diffusionのマスク画像 | Stable Diffusionの生成画像 Stable Diffusionの生成画像 | 実験1.3:実験1.1のマスクを大きくした |
実験2(富士山を赤くする)
冨嶽三十六景の甲州三坂水面の富士山を凱風快晴のように赤くしました。
プロンプトは red mount fuji
です。
入力画像:甲州三坂水面(正方形にリサイズ)
参考画像:凱風快晴
実験1と同様に Stable Diffusion より DALL·E 2 の方が境界を滑らかに修復しています。
Stable Diffusionの生成画像
DALL·E 2の生成画像
実験2の結果の表
モデル | マスク画像 | 生成画像 |
---|---|---|
Stable Diffusion | Stable Diffusionのマスク画像 | Stable Diffusionの生成画像 |
DALL·E 2 | DALL·E 2のマスク画像 | DALL·E 2の生成画像 |
考察
Stable Diffusion より DALL·E 2 の方が境界を滑らかに修復できる理由について、DALL·E 2 は Stable Diffusion にはない Outpaint 機能があることから、元の画像との接続を滑らかにすることをより重視していると思われます。またStable Diffusion の Inpaint の実装は潜在変数を足し合わせる単純な実装になっています。今後 Stable Diffusion の Inpaint 機能がアップデートされ DALL·E 2 のように境界を滑らかに修復できるようになることが期待されます。
Discussion