画像生成AIを使って画像を作成した際、顔のパーツや指など、一部分だけ納得いかない崩れがおこることもあります。
例えば気に入った人物をそのまま活かしつつ、部分修正を行いたい時、Stable Diffusionでは「Inpaint」という機能を使って、指定範囲のみ再生成できます。
今回はStable Diffusionの「Inpaint」機能の使い方や実際に範囲指定した修正画像を使って、初心者にもわかりやすく説明します。
Stable Diffusionの「Inpaint」機能は無料で使うことができます。
ぜひ参考にしてみてください。
スポンサーリンク
「inpaint」とは何か
範囲指定した部分をプロンプトに従って生成する機能です。
つまり、生成した画像の手や顔のパーツを範囲指定し、修正を行うことができます。
また、指定範囲外も生成できることから、背景を変えたりなどもできます。
「Inpaint」の使用用途
- 指の本数を正しく再生成する
- 表情を変更する
- 上手くいかなかった生成部分を修正する
- 解像度の低い画像を修正する
など
Stable Diffusionではテキストからの画像生成だけでなく、画像から画像を生成できる「img2img」という生成方法があり、「Inpaint」はその機能のひとつです。
Stable Diffusionの『Inpaint』の場所
Stable Diffusionの「Inpaint」のある場所について説明します。
Stable Diffusionを立ち上げると以下のような画面が表示されます。
画面上部にあるタグから「img2img」をクリックします。
(いつものテキストから画像生成できる機能は「txt2img」のタグになります)
以下の画像は「txt2img」の機能メニューになります。
最初に開いている機能は「txt2img」の項目になります。
「txt2img」は画像から画像を生成する機能なので、元画像をアップロードするスペースが設けられています。
「Generation」タブの下の項目にある「Inpaint」をクリックすると、今回紹介する機能が使えます。
生成した画像に直で「Inpaint」機能を使う
「txt2img」で画像生成した直後に「Inpaint」機能を使いたい時は、「txt2img」も項目からも直接使えます。
生成した画像のプレビュー画面の下にアイコンがいくつかあります。
絵具パレットのアイコンをクリックすると、生成した画像を「Inpaint」機能の操作画面に送ることができ、タグも切り替わります。
Inpaintの使い方
例えば生成した画像の「表情を変更したい」「目の色を変えたい」「背景を変えたい」という一部分の変更、修正を行う方法について説明します。
「Inpaint」に修正したい画像をアップロードします。
すると画像の右上にいくつかのアイコンが表示されています。
「Inpaint」の部分指定はブラシツールを使って指定します。
「Inpaint」のツールアイコン
- Undo(元に戻す)
- clear(塗った箇所の削除)
- Remove image(アップロードした画像の削除)
- Use Brush(ブラシの太さを変更)
マウスで変更したい部分を塗りつぶします。
画面上部には、「txt2img」と同じくプロンプトとネガティブプロンプトの入力欄があります。
プロンプトの入力欄に修正内容のプロンプトを入力し、「Generate」をクリックして画像生成します。
inpaintの使い方①生成した画像にinpaint機能を使う
いつも通りプロンプトを入力し、画像を生成します。
プレビュー画面下にあるアイコンの中からパレットのアイコン(inpaint tab)を選びます。
img2imgの「Inpaint」が開きます。
ブラシで修正や加工したい部分を塗り、修正、加工に関するプロンプトを入力。
パラメーターを設定して最後に[Generate」をクリックします。
元々のプロンプト、ネガティブプロンプトはそのままにしておき、修正や、変更部分などの指示に書き換え、追記する方が上手くいくと思います。
inpaintの使い方②画像をアップロードしてinpaintを使う
注意点として、元素材のプロンプトがないと、同じような顔の画像が作りにくいという問題があります。
なるべく同じようなプロンプトになるよう作成するようにしましょう。
[img2img]のタブをクリックして開きます。
プロンプト入力の下にある[Generation]タブの中にある[inpaint]を開きます。
修正、または加工したい元となる画像をアップロード、または画像をドロップします。
修正箇所をブラシで塗り指定、プロンプトなどの設定を行い画像を生成していくことになります。
inpaintのパラメーターについて
上記の画像は指定範囲の選択とプロンプトのみで修正しましたが、「inpaint」では、詳細な設定もできるようになっています。
ここでは「inpaint」で使う各設定について説明します。
範囲指定の再生成で、満足しない時は以下の設定を調整してみてください。
Mask Blur
指定した部分の境目のぼかし具合の設定。
「0」で境目がハッキリしますが、ある程度はブラーをかけた方が画に馴染みます。
デフォルトは「4」で、最大「64」まで上げれます。
逆に数値を上げすぎてしまうと、境目がわからなくなるので注意してください。
Mask mode
指定範囲のどちらに変化をつけるかの設定です。
項目 | 効果 |
---|---|
Inpaint masked | 指定した部分を生成する |
Inpaint not masked | 指定した部分以外を全て生成する |
Masked Content
指定した範囲にどのような方法で変化を加えるかを指定します。
項目 | 効果 |
---|---|
fill | 周囲の色を参照にして変更を加える |
original | 元の画像を参照して変更を加える |
latent noise | 一度ノイズに戻してから再度生成する |
latent nothing | 元の色を参照して変更を加える |
Inpain area
Inpaintでの変更の範囲の設定です。
項目 | 効果 |
---|---|
Whole picture | 全体を再生成すると同時に、範囲指定した部分にも変更を加える |
Only masked | 範囲指定した部分にのみ変更を加える |
Only masked padding, pixels
塗りつぶし部分に対する余白の数値を設定します。
デフォルトは「32」で最大「256」になりますが、特に設定しなくても大丈夫です。
Sampling method
どのように画像を生成するかの処理方法で、サンプラーとも呼ばれます。
Denoising strength
画像のノイズを除去するための強度や効果を設定します。
数値が低いと変化はあまり起こりませんが、上げすぎると元画像のテイストと離れた画像が生成されます。
ただし、数値が低すぎるとノイズの多い画像が生成されるので気を付けてください。
inpaint使用例①服を変更する
【before】
【After】
服を変更したい部分をざっくりと範囲指定し、プロンプトは「navy dress」とだけ入れました。
洋服の変更は服の種類にもよりますが、上記のようなレースが付いている場合、身体から膨らんだ部分も修正範囲で取ってしまいます。
複数回生成した結果、バランスが取れましたが、首の部分に髪の毛が入ってしまったり、左肩の上の膨らんだ部分に余計なものが入ってしまいました。
inpaint使用例②目の色をと口を変更
【before】
【After】
口は開いたことも想定して範囲を気持ち大き目にとりました。
プロンプトは「blue eyes」「laugh」を使いました。
inpaint使用例③背景を変える
人物周りの背景をInpaintを使って変更してみました。
プロンプトは
- Flower Background
- Tokyo
という変更のみを入力し、パラメーターで以下を選択しました。
- Inpaint not masked
- latent noise
ブラーの数値なども直しましたが、輪郭はぼやかしても、髪の毛の部分がマスクがかかったまま、前の画像の絵が残っています。
あと、ネガティブプロンプトを入力しても、指示のないものが入り込んだりするので、複数回生成する必要があります。
ただ、マスクで保護した人物はそのままになっていました。
「Denoising strength」も0.75のままで、強めかと思いましたがマスクはしっかりかかっている印象です。
背景を変えたい時は、人物を切り抜き、他で加工する方が綺麗に出来て作業効率も良さそうです。
まとめ
Stable Diffusionの「inpaint」を使えば、簡単に修正や変更ができます。
細かな設定機能もありますが、さほど変更しなくても修正できたので、まずは生成して微調整するのが良さそうです。
またプロンプトについては、修正したいプロンプトのみで上手くいく場合もありますが、崩れてしまう場合はクオリティを上げるためのプロンプトも使ったり、順番も変えています。
「inpaint」は非常に便利ですが、1回の生成で成功すると思わず、数回生成してみるのがよいでしょう。
Stable Diffusionおすすめ書籍
Stable Diffusion関連書籍
Stable Diffusion LORAの使い方までしっかりカバー