【webUI】端が見切れた画像を救う!Poor man’s outpainting(簡易アウトペインティング)を使って続きを描き足してもらおう

生成しているとたまに「あー惜しいな、ここっで切れちゃったか…」という画像ありませんか。背景付きの一枚絵ならいいけど、立ち絵やアイコン用に使いたかったので何としてもサイズ内に収まってほしかったのに見切れてしまう…そう、例えば
ドット絵にしようと生成した遺跡の右端が見切れてしまったり…
立ち絵にしたかったのに、左端がほんの少しだけ見切れてしまったり…
(これぐらいだと自分で描き足した方が早い説はある、というのは横に置く)

こういう時に活躍してくれるのが「Poor man’s outpainting(簡易アウトペインティング)」です!これは「Stable Diffusion web UI(AUTOMATIC1111)」の標準機能にあります。

「Poor man’s outpainting」の使い方

先にも書いた通り、標準機能として備わっているので別途インストールなどは不要です。
さっくりと進めてみます!

img2img画面に生成画像を転送

生成時のプロンプトをそのまま再利用します。
txt2imgで生成したばかりなら「img2imgに転送(Send to img2img)」ボタンを押します。

既に生成済み画像ならば「PNG内の情報を表示(PNG Info」タブに対象画像をドラッグ&ドロップ。その後は同じように「img2imgに転送(Send to img2img)」ボタンを押します。
こちらは「PNG Info」のスクリーンショット

Poor man’s outpaintingの設定

さほど多くはありません。ノイズ除去強度(Denoising strength)については「0.8」にしましたが、様子を見ながら調整してください。
また、「設定を上書き(Overrid setting)」のところにModel hashが付きますが、これは削除してもそのままでもあまり変わらない…という印象(詳しいことが分からず申し訳ない)

さて、ここが最も大事!
スクリプト(Script)から「Poor man’s outpainting(簡易アウトペインティング)」を選択します。設定についてはざっくりと説明していきます。
  • 拡大するピクセル数
    初期値は「128」です。描き足したい分だけサイズを指定。初期値のままでもいいんですが、あまり多くすると余計な要素を色々と描き足されるので注意。
    ※最小値:8、最大値:256
  • マスクのぼかし:初期値は「4」です。特にいじってません。
  • マスクされたコンテンツ:初期値は「埋める」です。特にいじってません。
  • アウトペインティングを行う方向:初期値は全てに☑が入ってます。
    広げたい方向だけ☑を入れたままにして、不要な方向は外してOKです。

生成(Generate)!

ちゃんと生成してくれました!(下記の画像がOutpainting後の生成品)
右上に余計な要素は足されたものの、簡単に消せる範囲。
いつも、これをこうしてドット化して楽しんでます。

サンプル2:立ち絵向けキャラクター画像

先ほどの、左端がほんの少しだけ切れてしまった惜しい画像もOutpaintingしてみます。
はい、出来上がり!白背景の指定にも関わらず、描き足した部分はグレー背景ですが、これぐらいなら特に問題なく背景透過も可能です。
とりあえず、右上の衣装差分っぽい画像や、右下のテキストを白塗りしてトリミング後…
愛用させていただいてる「Anime Remove Background」でさくっと背景透過完了。
もちろん、以前にご紹介した拡張機能「rembg」もありです。お好みでどうぞ!
なお「remove.bg」はサイズによっては透過後のダウンロードが有料となりますのでご注意を。

おまけ:Outpaintingの様子

こちらは「左」「右」方向へのOutpaintingの様子。まずは左側を描き足して…
次に右側を描き足して…という感じで、Outpaintingされていきます。
そして完成!ちゃんと左右、どちらの方向にも指定ピクセル分が描き足されています。