【Stable Diffusion】Inpaintを使って生成したAIイラストの細部(手や指の崩れなど)を後から修正する方法!

こんにちは!悠です!

 

「Stable Diffusion」を使ってAIイラストを生成していると、顔も構図も背景も完璧なのに手(指)だけが崩れている時ってありませんか?

他の部分が完璧なだけに何とかうまく指だけを修正したいけれど、やり方がわからなくて困っている方もいらっしゃるはず。

 

そこで今回は、「Stable Diffusion WebUI」のInpaintという機能を使って、生成済みのAIイラストの細部を修正する方法をご紹介していきます。

Inpaintは、Google Colaboratory版とローカル版の両方で使用することができます。
アイキャッチ画像はモデルに「Hassaku」、LoRAに「flat2」を使用しています。
スポンサーリンク
スポンサーリンク

Inpaint機能の使い方

今回は例として、下記の画像の手の部分を修正していきます。

使ったモデルやプロンプトは下記の通りです。

  • Model: IrisMix
  • Clip skip: 2
  • ENSD: 31337
  • Steps: 20
  • Sampler: DPM++ 2M Karras
  • CFG scale: 7

 

【Positive】
masterpiece, best quality, highres, 1girl, upper body, cowboy shot, Disgust, Narrowed eyes, Geyser, Revealing apron, Big Hair, One Side Up, Translucent Hair, Dark Green Hair,<lyco:flat2:-0.5>
【Negative】
(worst quality, low quality:1.4), (monochrome, greyscale:1.4), nude, bad anatomy, EasyNegative, text, logo, watermark, bad_prompt_version2

 

右手の指が4本しかない!

 

構図や顔は完璧なのに、手だけが崩れてしまっている悔しい例です!

 

まず「img2img」タブを開き、「Inpaint」を選んだ後修正したい画像をドラッグアンドドロップします。

 

次にアップロードした画像の修正したい箇所をブラシで黒く塗りつぶします。ブラシのサイズはCtrl+マウスホイールで拡大・縮小が可能です。

今回は手を修正したいので、下記の画像のように手の位置を塗りつぶします。(正確になぞる必要はありません)

 

画像下部にある各種設定を変更していきます。基本的に、元画像と同じ画像サイズやsampling method、ステップ数を選択しましょう。

Denoising strengthは0.75付近がおすすめです。

 

それ以外は初期設定のままでOKです。念のためmasked contentがoriginal、Inpaint areaがWhole pictureになっているかだけ確認しましょう。

hires.fix等でアップスケールした画像を素材に使う場合、widthとheightを素材とする画像と同じサイズに設定しないとリサイズされてしまうので注意してください。

 

ここまで終わったらプロンプトを設定していきます。基本的には元画像の生成に使ったものと全く同じで大丈夫です。

今回は手の部分を修正したいので、私は下記のように設定しました。

【Positive】
masterpiece, best quality, highres, 1girl, upper body, cowboy shot, Disgust, Narrowed eyes, Geyser, Revealing apron, Big Hair, One Side Up, Translucent Hair, Dark Green Hair, waving <lyco:flat2:-0.5>
【Negative】
(worst quality, low quality:1.4), (monochrome, greyscale:1.4), nude, bad anatomy, EasyNegative, text, logo, watermark, bad_prompt_version2

 

手を修正したい時は、wavingholdingなどの手の構図に関するプロンプトを入れておくと、成功率が上がるので覚えておきましょう。

これで設定は完了なので、オレンジ色のGenerateボタンを押してイラストを生成してください。

 

黒く塗りつぶした部分だけが修正された画像が生成されます。

手のガチャは運が悪いと100回近く回しても納得いくものができなかったりします。気長にトライしましょうね!

 

生成される画像に合わせて、その都度プロンプトやDenoising strength、Sampling stepsを調整していくのがいいイラストを引けるコツだと思います。



拡張機能「Depth library」で手や指を修正する方法!

ControlNetと連動した拡張機能「Depth map library and poser」を使って、inpaintよりも簡単に手や指の修正をする方法について下の記事でまとめました。

【Stable Diffusion】手や指を修正できるControlNetの拡張機能「Depth map library and poser」の使い方を紹介!
「Stable Diffusion」で、生成したAIイラストの手や指を簡単に修復できる拡張機能「Depth map library and poser」の使い方について紹介した記事です。

 

Inpaintに送った画像を拡大して修正する方法

Inpaintタブにドラッグアンドドロップした画像のみを、拡大・縮小して表示してくれる拡張機能「Canvas Zoom」について下の記事で詳しく紹介しています。

キャラの瞳などの、小さい領域だけに限定して塗りつぶしたい時に便利ですよ!

【Canvas Zoom】InpaintやSketchに送った画像を拡大・縮小して修正できるようになる拡張機能【Stable Diffusion】
「Stable Diffusion WebUI」で、Inpaint・Sketch・Inpaint sketchタブにドラッグアンドドロップした画像を拡大・縮小して表示してくれる拡張機能「Canvas Zoom」について紹介した記事です。

 

まとめ

以上が、「Stable Diffusion WebUI」のInpaintという機能を使って、生成済みのAIイラストの細部を修正する方法でした。

なお、Gimpというフリーソフトを使ってより詳細なマスク画像(修正箇所を指定する画像)を作成することで、生成済みAIイラストの服装を任意のものに変えることもできるようです。

Stable Diffusion - inpaintingタスクによる服装変更

 

Impaint機能を使うことで、より理想に近い1枚を生成することができるので、ぜひ試してみてくださいね!

では、ここまで読んでいただきありがとうございました。

コメント

  1. 匿名 より:

    そもそも左腕に右手が付いてません?親指が下になってますよ。

    • 悠 より:

      コメントありがとうございます!

      おっしゃる通りですねw
      ただぱっと見ではわからないため、ちょっと妥協しました( ;∀;)

      100%を引くのは本当に難しいんですよね…