今回は、生成した画像wの一部だけを修正したり、変更したりすることができる機能、
img2imgの「inpaint」の使い方と、生成してみた結果を画像つきで初心者にもわかりやすく解説します。
顔の表情や指や手などの修正や変更は1回だけでなく何度か生成する必要がでてくるので、根気よく作業するのがポイントです。
「inpaint」とは何か
inpaint(インペイント)とは「img2img」の機能のひとつで、絵の一部分だけを描き直すことができます。
修正する内容はプロンプトで指示を出します。
「img2img」についてはこちらの記事を参考にしてください。
-
Stable Diffusionの「img2img」基本的な使い方
Stable Diffusionと言えば、テキストを入力すると画像を生成できるツールと思う方が多いかと思いますが、 テキストだけでなく「画像」からも画像が生成できます。 & ...
続きを見る
「inpaint」で加工する部分をブラシで指定
img2imgではブラシツールを使って、加工する場所を塗ります。
指定した箇所を修正や加工してくれます。
ツール機能について
- Undo(元に戻す)
- clear(塗った箇所の削除)
- Remove image(アップロードした画像の削除)
- Use Brush(ブラシの太さを変更)
inpaintの使い方①生成した画像にinpaint機能を使う
いつも通りプロンプトを入力し、画像を生成します。
プレビュー画面下にあるアイコンの中からパレットのアイコン(inpaint tab)を選びます。
img2imgの「Inpaint」が開きます。
ブラシで修正や加工したい部分を塗り、修正、加工に関するプロンプトを入力。
パラメーターを設定して最後に[Generate」をクリックします。
元々のプロンプト、ネガティブプロンプトはそのままにしておき、修正や、変更部分などの指示に書き換え、追記する方が上手くいくと思います。
画像をアップロードしてinpaintを使う
注意点として、元素材のプロンプトがないと、同じような顔の画像が作りにくいという問題があります。
なるべく同じようなプロンプトになるよう作成するようにしましょう。
[img2img]のタブをクリックして開きます。
プロンプト入力の下にある[Generation]タブの中にある[inpaint]を開きます。
修正、または加工したい元となる画像をアップロードし、修正箇所をブラシで塗り指定、プロンプトなどの設定を行い画像を生成していくことになります。
inpaintのパラメーターについて
inpaintではパラメーターでさらに設定ができるようになっています。
Mask Blur
範囲指定した部分の境目のぼかし設定
数値が高いほど境界をぼやかすことができます。
かけすぎると生成が上手くいかない(境目がわからなくなる)ので程よい数値で設定します。
Mask mode
指定範囲のどちらに変化をつけるかの設定
Inpaint masked | 指定した部分に変化をつける |
Inpaint not masked | 指定した部分以外の全てに変化をつける |
基本、修正や加工部分を指示したいと思うので、「Inpaint masked」のままでOKです。
Masked Content
指定した範囲にどのような方法で変化を加えるかの設定
fill | 指定した部分の周囲の色を参照にして画像に変更を加える |
original | 指定した部分に元の画像を参照して変更を加える |
latent noise | 指定した部分を一度ノイズに戻してから再度生成する |
latent nothing | 指定した部分の元の色を参照して変更を加える |
Inpain area
Inpaintは指示の元、新たに画像を生成しますが、その際のモードについての設定です
Whole picture | 全体を再生成すると同時に、範囲指定した部分にも変更を加える |
Only masked | 範囲指定した部分にのみ変更を加える |
Only masked padding, pixels
塗りつぶし部分に対する余白の数値を設定します。
とくに再設定することはないと思います。
Sampling method
サンプラーと言われるもので、どのように画像を生成するかの処理方法となります。
モデルによっておすすめもあるので、推奨されるものを使います。
「Sampling steps」はそのまま、変えるとしても大幅に動かさないでOKです。
Denoising strength
「Denoising strength」は画像のノイズを除去するための強度や効果の度合いを示します。
簡単に言うと、数値が高いと元画像からかけ離れた画像が生成され、
数値が低いとあまり変化を起こさず画像が生成されます。
数値が低いとノイズの多い画像が生成されるので、デフォルトの0.75で様子を見た方が良さそうです。
inpaint使用例①服を変更する
服の部分をブラシツールで塗り、「kimono」に変更しました。
単語だけでは上手く生成できなかったので、左の参照画像生成時のプロンプトをそのまま使い、服だけ着物を指示。
ネガティブプロンプトも同じく使用して生成できました。
inpaint使用例②顔の表情を変える
参照画像のプロンプトをメモしてなかったので、似たようなプロンプトと表情を入れましたが、完全に同じキャラにはならないものの、表情だけを変えることはできました。
同じキャラクターで考える場合は、生成した画像を元にInpaintを使った方が良さそうです。
inpaint使用例③背景を変える
人物周りの背景をInpaintを使って変更してみました。
プロンプトは
- Flower Background
- Tokyo
という変更のみを入力
パラメーターで以下を選択しました。
- Inpaint not masked
- latent noise
ブラーの数値なども直しましたが、輪郭はぼやかしても、髪の毛の部分がマスクがかかったまま、前の画像の絵が残っています。
あと、ネガティブプロンプトを入力しても、指示のないものが入り込んだりするので、複数回生成する必要があります。
ただ、マスクで保護した人物はそのままになっていました。
「Denoising strength」も0.75のままで、強めかと思いましたがマスクはしっかりかかっている印象です。
まとめ
モデルやリアル画像、イラスト系などで差があるかもしれませんが、しっかりしたプロンプトが必要だったり、修正箇所だけのプロンプトだけで済む場合があったので、最初はプロンプトの順番など含めてトライする必要がありそうです。
イラスト系ですと、顔の表情も修正箇所のプロンプトだけで確率良く生成することができました。
拡張機能「controlNet」にも「Inpaint」という機能があります。
機能的には「img2img」と変わらないので私は使用していません。
興味がある方は、こちらをご覧ください。
-
【Stable Diffusion】ControlNetの導入方法・種類について
画像生成AIはなかなか1回で納得いく画像を生成するのが難しく、ガチャを回すとも言われています。 特にポーズの指定はプロンプトで作るのも初心者には難しいと感じてしまうでしょう ...
続きを見る
Stable Diffusionガイド
Stable Diffusionで大事なグラボ
画像生成において、グラボは妥協せずに用意しましょう。
最低でも「RTX 3060」を用意すると、生成もスムーズに行えます
Stable Diffusion関連書籍
Stable Diffusionスタートから応用まで学べる1冊
Stable Diffusion LORAの使い方までしっかりカバー
ゲーム系画像が作りたい方におすすめ