画像をピンポイントで修正できる「Inpaint」の使い方。欲しい画像に早く近づける!?

Stable Diffusion

前回は、img2imgを使ってみました。これまでtxt2imgを使ってプロンプトを試行錯誤していましたが、img2imgに触れてみて世界が広がったような気がします。

Inpaint機能の説明

Inpaintとは?

画像を部分的に修正したい場合などに役立つ機能です。img2imgの「Inpaint」機能は、元画像の修正を加えたい部分をマスク(色を塗り)、マスクした部分を中心に変更処理がなされます。

構図や画風が決まった後、部分的に少しずつ修正を加えられます。

Inpaintで何ができる?画像の修正例

今回、説明するInpaint機能を使うと以下のような事ができます。例として元画像の背景のみを変更しています。他には、顔だけを変更したり、手の不正を修正したりと用途は広いです。

Inpaintの機能の使い方・利用の流れ

それでは実際にimg2imgの「Inpaint」機能を使っていきましょう。

今回は、着物の女性の背景を日本庭園に変えてみましょう。

元画像の準備し、Inpaintに送る

参考にする元の画像を準備します。やり方は、作業の流れによって違います。txt2imgや、PNGInfoで、「Send to Inpaint」で送ります。

元画像を生成した際のプロンプトを後から使いますので、一旦img2imgに送ってから、Inpaintに転送するという流れの方が良い場合もあります。img2imgで読み込んで、Inpaintに送る場合は「Inpaint」というボタンを押すだけで、Inpaintの機能に送られ、Inpaintの機能が使えるタブに切り替わります。

  • txt2imgで生成した画像 → Send to Inpaint で送る
  • 過去に生成し保存していた画像 → Inpaint画面でファイル指定
  • 著作権フリー画像をダウンロードしたもの → Inpaint画面でファイル指定

こちらが元の画像になります。過去に生成した記事はこちらになります。

マスクする部分を塗りつぶす

Inpaintのタブになっていること、画像が読み込まれていることを確認してください。

右に小さなアイコン、スライダーがあります。

  • ×:画像を削除
  • 丸矢印:アンドゥ
  • ペンマーク:クリックするとペンの幅を指定できるスライダーが表示され調整できます

残したい境界付近をなぞっていきますが、多少はみ出しても大丈夫です。少し多めに塗りつぶした方が良いでしょう。境界が塗れたら、ペン幅を太くして一気に塗っていきましょう。直観的で分かりやすいですね。

プロンプトの変更

元画像を生成した際のプロンプトのうち、変更したい部分を変更します。塗った部分に関係するプロンプトを入力すれば良いというわけではなく、Stable Diffusionは全体を調整するため全体の絵を描く気でプロンプトを指定した方が、思い通りの結果を得ることができます。

best quality, ultra high res, (photorealistic:1.4), RAW photo, (upper waist:1.4), (bokeh:1.7),(Window light only:1.6), (in bright japanese-style room:1.5),(bright:1.5)
1japanese girl, (solo), (smile:1.2,open mouth:0.7), (dark brown eyes), natural skin, (brown updo hair,bangs),standing
(blue silk floral kimono),(obi),

背景に関する上記プロンプトの太字のキーワード部分を変更します。旅館にある庭を背景にしようと思い「garden of Ryokan」と入力した結果が、上に示した「旅館内にある小さな庭のような一角」のような背景になったので、更に以下のようなプロンプトに変更しました。

best quality, ultra high res, (photorealistic:1.4), RAW photo, (upper waist:1.4),Japanese-style garden,outdoors,
1japanese girl, (solo), (smile:1.2,open mouth:0.7), (dark brown eyes), natural skin, (brown updo hair,bangs),standing,
(blue silk floral kimono),(obi),

Inpaintのパラメータ設定

Denoising strength
Inpaintの結果に大きく関係するパラメータが、「Denoising strength」(デノイジング ストレングス:ノイズ除去の強さ)でした。img2imgの時は大きくしすぎると元画像とかけ離れるため大きくしすぎない(~0.6程度)ようにしていました。今回は、背景を大きく変更してほしいので、少し大きめのDenoising strength0.75に設定しました。

Masked content
original」にしておきましょう。

その他は、いろいろ試してみてください

結果:Inpaintで背景を変えてみた

設定が終わったら、「Genarate(生成)」ボタンを押します。特に時間が掛かる印象もなく生成できました。特にマスクした境界に違和感が出ることもなく書き換えてくれています。マスクしていない部分の着物の女性はそのままです。これは凄いです。

Inpaintで背景を海に変えてみる

違いがよく分かった方が良いので、背景を「海」に変えてみます。

Japanese-style garden,outdoors を sea

に変更しただけです。非常に簡単に、背景を変更できました。

面白いのは、元画像では女性の左手が手摺に乗っていましたが、ロケーションが海になって手摺がなくなったので、手を下に降ろしています。前回のimg2imgでサーフボードを指定したら、ウエットスーツに服装を変更してくれていた動作に似ていますね。

お顔もInpaintしてみる

最後に顔を変えるプロセスは取らないように感じますが、Inpaintの挙動を確認するために顔を変更してみます。

Inpaintで顔を塗る(マスクする)だけです。

違いが出るように美人系のプロンプトを追記しています。

beautiful young girl,18yo,very cute, detailed face,extremely detailed eyes and face, eyes with beautiful details,smiling, cinematic lighting, action,(shiny skin),detailed skin,extremely detailed face,extremely detailed eyes,eyes with beautiful details,extremely beautiful face,

まとめ

Stable DiffusionのInpainti機能の使い方を確認し、画像をピンポイントで思い通りの画像に修正できるのか実践してみました。初めて使ってみた感想ですが、操作も分かりやすく、何より結果の生成画像が思い通りに、短時間でコントロールできた印象です。使いこなせば、欲しい画像により早く近づけることができそうだと感じました。

最後に、以下は元画像の顔のみを変更した結果になります。非常に有用な機能ですので、皆さんも是非ためしてみてください。

コメント

タイトルとURLをコピーしました