inpainting用StableDiffusion 1.5 モデル
先日突然Stable Diffusion1.5を公開したRunwayMLが、続いてStable Diffusion1.5のinpainting用モデルを公開した。
モデルの違いの説明
現在、次のチェックポイントを提供している。
- sd-v1-1.ckpt: laion2B-en の解像度で 237k ステップ。レオン高解像度の解像度で194kステップ(解像度付きLAION-5Bの170Mの例)。256x256512x512>= 1024x1024
- sd-v1-2.ckpt: 前記の継続学習。laion-aesthetics v2 5 +(推定美学スコアを持つlaion2B-enのサブセット)の解像度で515kステップ、さらに元のサイズの画像にフィルタリングされ、推定透かし確率。ウォーターマーク推定値はLAION-5Bメタデータからであり、美学スコアはLAION-美学予測変数V2)を用いて推定される。sd-v1-1.ckpt512x512> 5.0>= 512x512< 0.5
- sd-v1-3.ckpt: 前記の継続学習。「laion-aesthetics v2 5+」の解像度で195kステップを踏み出し、テキストコンディショニングを10%削減して、分類子のないガイダンスサンプリングを改善します。sd-v1-2.ckpt512x512
- sd-v1-4.ckpt: 前記の継続学習。「laion-aesthetics v2 5+」の解像度で225kステップ、テキストコンディショニングを10%ドロップして、分類子のないガイダンスサンプリングを改善します。sd-v1-2.ckpt512x512
- sd-v1-5.ckpt: 前記の継続学習。「laion-aesthetics v2 5+」の解像度で595kステップ、テキストコンディショニングを10%ドロップして、分類子のないガイダンスサンプリングを改善します。sd-v1-2.ckpt512x512
- sd-v1-5-inpainting.ckpt: 前記の継続学習。「laion-aesthetics v2 5+」の解像度でのインペイントトレーニングの440kステップと、分類子のないガイダンスサンプリングを改善するためのテキストコンディショニングの10%ドロップ。インペイントの場合、UNet には 5 つの追加入力チャンネル (エンコードされたマスク画像用に 4 つ、マスク自体に 1 つ) があり、その重みは非ペイントチェックポイントを復元した後にゼロに初期化されました。トレーニング中は、合成マスクを生成し、25%ですべてをマスクします。sd-v1-5.ckpt512x512
異なる分類子なしのガイダンス スケール (1.5、2.0、3.0、4.0、5.0、6.0、7.0、8.0) および 50 PLMS サンプリング ステップによる評価では、チェックポイントの相対的な改善が示されているとのこと(図)。但しこれを見る限り1.4と1.5の差はわずか。
colabで実行
マスクを用意する必要があるがcolabで実行出来る。下記URL先に移動してモデル利用の承認を行なってから「Open in colab」をクリックしてノートブックを起動する。
承認済みの場合は直接下記をクリック
実行してみる
やや手間がかかる。近い内にAUTOMATIC1111やPhotoshopアドインツールなどが対応すると思うが、試してみたい方はcolabを下記の手順で実行する。
①元絵を用意する
海に浮かぶヨットの写真を用意した。
②マスクを用意する
画像編集ソフトで変更したい箇所を白色、他を黒色にしたマスクを用意する。
③それぞれURLでアクセスできる様にセット
Gyazoなどを用いて写真とマスクをURLでアクセス出来る場所にUPする。
④colabを実行
- 順に編集しながら実行する
- 2番のコードセル実行時にHuggingFaceのアクセストークンを入力する
- 5番のコードセルのURLに③でセットしたURLを入力する。Gyazoの場合、URLの最後にUPした画像の拡張子(.jpg, .pngなど)を忘れないこと。
- 6番の実行でUPした絵が、7番の実行でマスクが表示されることを確認
- 8番のプロンプトをイルカのジャンプ:a dolphin air jumpに変更
- 同じく8番のmanual_seed(0)を(-1)に変更(シード固定なし)
- 変更したら8〜10を順に実行すると下記のように生成される
マスク領域が狭かったのでイルカのジャンプが十分に描けなかったが、見えなかった背景(遠くの島)が違和感なく作成されていることがわかる。
そこでイルカが描ける様にマスクを広げた。
このマスクでもう一度生成するとイルカが十分に描かれる様になった。
所感としては満足しているが、従前のinpaintingも高いレベルだったのでそれ程のインパクトは感じられなかった。