2024/08/23(金) [n年前の日記]
#1 [cg_tools] Stable Diffusion web UIでアウトペインティングをする際の手順をメモ
画像生成AI、Stable Diffusion web UI を使ってアウトペインティングを試していた。手順については覚えたぞ、と思ったけれど3日後には全部忘れてそうだなと不安になってきたので、一応念のために手順をメモしておこうかなと…。
環境は Windows10 x64 22H2 + Stable Diffusion web UI 1.6.0 / Stable Diffusion web UI Forge。
環境は Windows10 x64 22H2 + Stable Diffusion web UI 1.6.0 / Stable Diffusion web UI Forge。
◎ 元画像 :
今回は以下の画像をアウトペインティングの元画像とした。
◎ Mosaic outpainting拡張を使った事例 :
Mosaic outpainting という拡張を使えば、Stable Diffusion web UI Forge版でもアウトペインティングが使える。一応手順をメモ。
インストールは、Extension タブから行える。
インストール後は、Mosaic タブが増える。以下のような感じで指定。
続いて、img2img タブでの作業になる。
赤丸がついているあたりを操作していけば、それらしくなるかなと…。
Generate をクリックして処理を開始。
今回は、以下のような画像が生成できた。元画像に比べると、横幅が増えて、それらしい内容が描画されていることが分かる。
インストールは、Extension タブから行える。
インストール後は、Mosaic タブが増える。以下のような感じで指定。
- 処理したい画像をドラッグアンドドロップすると読み込ませることができる。
- Directions で、上下左右のどちらにアウトペインティングするかを指定。
- Horizontal / Vertical Expand % で、元画像の幅や高さの何%分を増やすのかを指定。
- Process Mosaic で、モザイク画像を作成。
- できたモザイク画像でまあまあ良さそうなら、Send to Inpaint で、img2img に結果画像を送る。
続いて、img2img タブでの作業になる。
赤丸がついているあたりを操作していけば、それらしくなるかなと…。
- Inpaint upload タブの中に、モザイク画像とマスク画像の2つが読み込まれる。
- プロンプトにはそれらしい内容を記述しておくこと。
- Mask blur は、境界をどれだけぼかすか。
- Mask mode は、Inpaint masked に。
- Masked content は、Original に。
- Inpaint area は、Whole picture に。
- Soft inpainting にチェックを入れておく。
- Sampling method と Sampling steps は任意の種類、値に。
- Resize by を選んで、Scale は 1 に。
- Denoising strength は任意の値に。
Generate をクリックして処理を開始。
今回は、以下のような画像が生成できた。元画像に比べると、横幅が増えて、それらしい内容が描画されていることが分かる。
◎ スクリプト Poor man's outpainting による事例 :
img2imgタブの一番下のほうにあるスクリプトの中に、アウトペインティングを簡単にできるようにするスクリプトがある。
注意点。スクリプトを使ったアウトペインティングは、Stable Diffusion web UI 本家版(A1111版)で行うこと。Forge版では正常動作しなかった。
img2imgタブで、ドラッグアンドドロップで元画像を読み込む。プロンプトには、適切な内容を記述しておく。
一番下のほうにある Script の中からスクリプトを選ぶ。
以下の2つが選べる。
今回は、Poor man's outpainting を選んでみた。
いきなり上下左右の全部を指定してもいいのだけど…。満足できる生成結果が出てくるまで何回かガチャを回すことになるだろうから、一方向ずつ生成して結果が良ければ次の方向に、と作業していったほうが良さそう。ちなみに、複数の方向を指定しても、結局は一方向ずつ順々に処理されていくことになる。
今回は、左、右、上、下、の順番でアウトペインティングをしてみた。
よく見ると境界のあたりが不自然…。
注意点。スクリプトを使ったアウトペインティングは、Stable Diffusion web UI 本家版(A1111版)で行うこと。Forge版では正常動作しなかった。
img2imgタブで、ドラッグアンドドロップで元画像を読み込む。プロンプトには、適切な内容を記述しておく。
一番下のほうにある Script の中からスクリプトを選ぶ。
以下の2つが選べる。
- Outpainting mk2
- Poor man's outpainting
今回は、Poor man's outpainting を選んでみた。
- Pixels to expand で、増やしたいドット数を指定する。
- Mask blur は、境界をどれだけぼかすか。
- Masked content は、fill に。
- Outpainting direction で、上下左右のどちらに増やすかを指定。
いきなり上下左右の全部を指定してもいいのだけど…。満足できる生成結果が出てくるまで何回かガチャを回すことになるだろうから、一方向ずつ生成して結果が良ければ次の方向に、と作業していったほうが良さそう。ちなみに、複数の方向を指定しても、結局は一方向ずつ順々に処理されていくことになる。
今回は、左、右、上、下、の順番でアウトペインティングをしてみた。
よく見ると境界のあたりが不自然…。
◎ スクリプト Outpainting mk2 による事例 :
Outpainting mk2 も使ってみた。これも、左、右、上、下、の順番で処理してみた。
下をアウトペインティングしたら、腕や腹のあたりが…。こういう状態で処理するのは難しいということなのだろうな…。ざっくり手描きで色を塗って処理したほうがいいのかもしれない。
下をアウトペインティングしたら、腕や腹のあたりが…。こういう状態で処理するのは難しいということなのだろうな…。ざっくり手描きで色を塗って処理したほうがいいのかもしれない。
◎ img2img の Resize and fill による処理 :
[ ツッコむ ]
以上です。