PR

【Stable Diffusion】見切れた部分をアウトペインティングで描き足す

アウトペインティングで足りない部分を描き足す【Stable Diffusion】
この記事は約8分で読めます。
らん
らん

どうしてもキャラの頭が見切れちゃう…😭

るん
るん

アウトペインティングで描き足しましょう!

Stable Diffusionでキャラクターの絵を生成すると、かなりの確率で頭頂部が見切れてしまいます。
また、獣耳キャラの場合、ほぼ確実に耳が見切れます。縦長画像の場合は肩や腕などが見切れてしまうこともよくあります。

見切れてしまった絵
見切れてしまった絵

「この絵、見切れてさえいなければ完璧なのに…😭」というときに役立つのが「アウトペインティング」というStable Diffusionの機能です。

アウトペインティングは、画面外に絵を描き足すことができる機能で、Stable Diffusion WebUIに標準搭載されています。
この機能を使うと、困った「見切れ」を修正することができます。冒頭で紹介した見切れてしまった絵も、下記のように修正することができます。

アウトペインティングで見切れた絵を修正
アウトペインティングで見切れた絵を修正
らん
らん

おお✨自然に直ってる!

この記事はこんな人におすすめ
  • 生成したイラストの頭や肩などが見切れてしまって困っている
  • 「アウトペインティング」という機能を知りたい

それではいってみましょう!

るん
るん

みなさんも困った「見切れ画像」があれば、一緒に修正していきましょう!

Poor man’s outpaintingを使う

らん
らん

私はこの絵を修正したいな。頭の先っちょが見れちゃってるの

アウトペインティングの元絵
アウトペインティングの元絵
るん
るん

OKです!ではこの絵を例にして進めていきます

アウトペインティングとは

アウトペインティングは、AIを使って画面外に絵を描き足すことができる機能です。

アウトペインティングの説明
アウトペインティングの説明

Stable Diffusion WebUIでは、アウトペインティング機能として「Poor man’s outpainting」「Outpainting mk2」の2つが標準搭載されています。
どちらもできることはほとんど同じですが、使い勝手や機能に少し差異があります。

本記事では、私が使いやすいと感じている「Poor man’s outpainting」について解説していきます。もう一つの「Outpainting mk2」との違いについてはこちらをご覧ください。

使い方

アウトペインティングはimg2img機能の一種です。
まずimg2imgタブを開き、元絵となる画像を読み込みます。

アウトペインティング - img2imgに画像を読み込む
img2imgに画像を読み込む

Scriptから「Poor man’s outpainting」を選択します。

Poor man's outpainting

次のように設定していきます。

①モデル(checkpoint)を元絵と同じものに合わせます。完全に同じでなくてもいいのですが、自然な描き足しになるように、元絵に近い絵柄のモデルを選んだほうがいいです。

アウトペインティングの手順 - モデルの選択

②可能な限り、元絵と同じプロンプトを入力します。Stable Diffusionで生成した画像の場合は、「PNG Info」で画像を読み込ませるとプロンプトを確認することができます。
元のプロンプトがわからない場合は、適切だと思われるプロンプトを可能な範囲で考えて入力しましょう。

アウトペインティングの手順 - プロンプト入力

③Denoising strengthは0.6~0.8くらいの値にしておきます。

アウトペインティングの手順 - Denoising strength

④「Pixels to expand」で、何ピクセル拡張したいのか(描き足したいのか)を設定します。
このときUI上は「8」刻みで設定できるのですが、実際のサイズは指定した通りにならないことがあります。(詳しくは後述しています)

その下の「Mask blur」は元絵と描き足し部分との境目をどれくらいぼかすかの設定です。4とか8とかで良いと思います。

アウトペインティングの手順 - 描き足しサイズ

⑤どの方向に絵を描き足したいのかを設定します。例えば「上」の方に描き足したいときは「up」にチェックを入れます。

アウトペインティングの手順 - 描き足し方向

ここまで設定できたら「Generate」ボタンをクリックして、絵を生成します。
生成された絵がこちらです。上方向に描き足されていることで、頭の見切れが解消されています。背景も自然に描き足されていますね。

アウトペインティングで描き足した絵
頭の見切れ部分が解消された
るん
るん

実際には一発でうまくいくことは稀です。パラメータを調整しながら、いい絵が出るまで何度も生成しましょう。

アウトペインティングは生成のたびに結果は異なる
らん
らん

これなら「見切れ」も怖くないわね♪

コツ・注意点

拡張後の画像サイズは「64の倍数」になる

拡張後の画像サイズに関して、不思議な現象が起きます。
たとえば、『幅512×高さ512』の元画像に対して、上方向に16ピクセル拡張したいとしましょう。
すると、『幅512×高さ528』の画像が生成されるはずだと思いますよね。
ですが、実際にやってみると『幅512×高さ576』の画像が生成されます。

[Stable Diffusion] アウトペインティングの拡張サイズの注意点
らん
らん

え??…なんで?

実はアウトペインティングで拡張した後の画像サイズは、縦・横それぞれの長さ(ピクセル)が64の倍数でなければいけません。
よって、528ピクセルという中途半端な数の場合、もっとも近い64の倍数に切り上げられて「576」になるというわけです。

[Stable Diffusion] アウトペインティングの拡張サイズは64の倍数に切り上げられる
るん
るん

ちょっとややこしいですが、そういうものだと心に留めておきましょう

Denoising strengthの調整

Denoising strengthが0.1とか0.2とかの小さな値だと、何も描き足されないので注意してください。

Denoising strengthが小さすぎるアウトペインティング

結果を見ながら0.4~0.9くらいで調整するといいでしょう。値を大きくするほど、複雑な描き足しになる傾向にあるようです。

アウトペインティングでのDenoising strengthの違い
Denoising strengthの違い

プロンプトはできるだけ元絵と同じものを

プロンプトはできるだけ元絵と同じものを指定するのがおすすめです。プロンプトが空欄でもアウトペインティングすることはできますが、やや精度が悪い印象です。

アウトペインティング - プロンプト

元絵による違い

シンプルな背景

白背景などのシンプルな背景の場合、描き足し部分の背景に模様など余計なモノが描き足されることがあります。Denoising strengthは気持ち低めに設定するのがいいでしょう。

シンプルな背景に対するアウトペインティング
シンプルな背景に対するアウトペインティング

複雑な背景

複雑な背景でも自然につながるように描き足してくれます。
生成するたびに描かれるモノがかなり違うので、気に入った絵になるまで何度も生成してみましょう。描き足す範囲が広いほど大胆にモノが描き足されるので、元絵からあまり印象を変えたくない場合は、「Pixels to expand」は小さめに設定するといいです。

複雑な背景に対するアウトペインティング
複雑な背景に対するアウトペインティング

補足:「Outpainting mk2」との違い

Stable Diffusion WebUIには「Poor man’s outpainting」の他に「Outpainting mk2」というアウトペインティングが標準搭載されています。
「Outpainting mk2」は「Poor man’s outpainting」に比べて派手に描き足してくるという印象です。

ですので、私は「Poor man’s outpainting」の方が扱いやすいような気がしています。

Poor man's outpaintingとOutpainting mk2の違い
Poor man’s outpaintingとOutpainting mk2の違いの例

うまくいかないときは…

アウトペインティングが便利な機能ですが、初めはなかなかうまくいかないかもしれません。
ここではうまくいかないいくつかのパターンと対策について解説します。

ぼやっとしてしまう

アウトペインティング - ぼやっとしてしまう
るん
るん

Denoising strengthが低すぎませんか?

アウトペインティングで描き足した部分がぼやけていたり、変な模様になってしまっているときは、Denoising strengthの値が低すぎないかをチェックしてみましょう。
0.1や0.2だとほとんど意味のある絵にならないため、このような現象になることがあります。
0.4~0.9くらいまで値を大きくしてみましょう。

余計なものが足されている

アウトペインティング - 余計なモノ
るん
るん

拡張範囲を大きくしすぎていませんか?

拡張範囲(「Pixels to expand」設定)を大きくするほど、余計なモノが描き足される傾向にあるようです。

らん
らん

余白が広いといろいろ描いてみたくなるよね(笑)


よって、元絵がシンプルな背景の場合は、拡張範囲は小さめに取ったほうが自然な仕上がりになります。

また「Outpainting mk2」の方が描き足しが激しい印象があるので、Scriptを「Poor man’s outpainting」に変えてみるとうまくいくかもしれません。

継ぎ目が不自然

アウトペインティング - 継ぎ目
継ぎ目が微妙にずれている
るん
るん

インペイントで修正できます

特に白背景だと目立つのですが、描き足した部分と元絵との継ぎ目が不自然になってしまうことがあります。
ただ、これは「インペイント」というStable Diffusionの描き直し機能で修正できるので、そこまで神経質にならなくても大丈夫です。

何度やっても同じ描き足しになる

アウトペインティング - 同じ絵ばかり
るん
るん

Seedの値が固定されてませんか?

特に「PNG Info」で元絵を読み込んで「Send to img2img」で送った場合にありがちです。この場合、Seedに元絵のシード値が入力されているので、そのままアウトペインティングを行っても、同じ絵しか生成されません。

Seedの横にある「サイコロ」のボタンを押して、「-1」をセットしましょう。これでシード値は毎回ランダムになるので、生成される絵もランダムになります。

描き足し部分の絵のタッチが違う

アウトペインティング - 絵がちぐはぐ
るん
るん

checkpointを見直してみましょう

checkpointが元絵と違っていると、描き足し部分と元絵がちぐはぐな印象になります。
上の絵の場合、元絵は「Cetus-Mix」で、アウトペインティングでは「Flat-2D Animerge」を指定しています。両者は絵のタッチがかなり違うので、描き足し部分がちぐはぐになってしまいました。

できる限り、元絵のcheckpointと同じものをアウトペインティングでも指定するようにしましょう。

まとめ

頭や肩などが見切れてしまった絵は、Stable Diffusionの「アウトペインティング」という機能を使ってうまく描き足すことができます。

らん
らん

よーし!これで「見切れ」も怖くないぞー✨

るん
るん

アウトペインティングを使って、「見切れて惜しい絵」を復活させちゃいましょう😍

プロフィール
この記事を書いた人
千鳥 るん | Chidori Run

画像生成AIで思い通りのイラストを描くためのノウハウを試行錯誤で模索しています。IT企業でAI戦略に関わっていたこともあるAIエンジニアです。大学生の頃から趣味でイラストを描いていましたが、仕事が忙しくなり一旦筆を置きました。最近、NovelAIと出会ってまたお絵描きへの情熱を取り戻しています。

千鳥るんをフォローする
Stable Diffusion
スポンサーリンク
シェアする
千鳥るんをフォローする

コメント