【Stable Diffusion】画像を修正する「Inpaint」機能や「txt2mask」について解説

「生成した画像の一部を修正したいけれども、どうしたらいいの?」「Stable Diffusionを使ってレタッチは可能なの?」と悩んでいる方も多いのではないでしょうか。

実は、Stable Diffusionを活用することで、素早くかつ簡単に画像のレタッチを行うことができます。

今回PROMPTYでは、Stable Diffusionでのレタッチ方法とその手順を徹底解説します。

① Stable Diffusion Web UIの「Inpaint」機能を使う

Stable Diffsuionでレタッチを行う方法として、Stable Diffusion Web UIのimg2img機能のInpaintをご紹介します。

img2img機能についてはこちらの記事で詳しく解説しています。

関連記事

「Stable Diffusionのプロンプトを入力するときに、こんな感じの画像がいい!とイメージは浮かんでいるけど、言語化するのが難しい、、、」 このような悩みをお持ちの方は多いのではないでしょうか? 実は、Stable D[…]

元画像のプロンプトは次の通りです。

プロンプト:

masterpiece,high quality,1 girl,standing,blonde long hair,extremely detailed face,smile,wallpaper

ネガティブプロンプト:

flat color, flat shading, nsfw,(worst quality, low quality:1.4), interlocked fingers, (zombie, sketch, comic)

モデル:AnythingV5
Sampling steps:20
Width:512
Height:512
Batch count:1
Batch size:1
CFG Scale:7
Seed:2751732984

生成した画像:

(1)img2imgに画像をアップロードする

Web UIのimg2imgタブをクリックします。

次に、img2imgタブのInpaintを選択します。

“ここに画像をドロップまたはクリックしてアップロード”から元の画像をアップロードします。

(2)修正箇所を決めて新しいプロンプトを入力する

Inpaintにアップロードした画像で修正したい箇所をブラシを使って画像を黒く塗りつぶします。

今回は、女性キャラクターの目を修正するため、目の周りを黒く塗りつぶします。

塗りつぶしが終わったら、txt2imgと同様に、プロンプトとネガティブプロンプトを入力します。

今回は、元の画像を生成したプロンプトに加えて”red eyes”を入力します。

プロンプト:

masterpiece,high quality,1 girl,standing,blonde long hair,extremely detailed face,red eyes,smile,wallpaper

ネガティブプロンプト:

flat color, flat shading, nsfw,(worst quality, low quality:1.4), interlocked fingers, (zombie, sketch, comic)

(3)画像を新しく生成する

最後に、その他の設定項目を決定します。

  • Mask blur:マスクのぼかし具合を設定できます。大きな値にすると、修正エリアとその周辺の境界がなめらかになり、また修正エリアが拡大します。
  • Mask mode:マスクの方式を選択します。塗った範囲を修正するか、塗った範囲以外を修正するかを決めることができます。
  • Masked content:修正の過程で、塗った箇所に何を配置するかを選ぶことができます。デフォルトの”original”で問題ないと思います。
  • Inpaint area:修正を行う範囲を選択できます。”Whole picture”で問題ありませんが、”Only masked”を選択すると、修正した部分に新しい画像を生成するプロセスになります。

詳しい情報は、公式のページをご確認ください。

今回はこちらの設定で画像を生成します。

Mask blur:4

Mask mode:Inpaint masked

Masked content:orginal

Inpaint area:Whole picture

生成した画像:

プロンプト通り、ほかの部分はそのままにして、目の色のみを変えた画像を生成することができました。このように、Stable Diffusion web uiのimg2img機能のInpaintから、画像をレタッチすることができます。

② Stable Diffusion Web UIの「txt2mask」機能を使う

Stable Diffsuionでレタッチを行う方法として、Stable Diffusion Web UIの拡張機能のtxt2maskをご紹介します。

(1)txt2maskをWeb UIに導入する

txt2maskのインストールはWeb UIのExtensionsメニューから行います。Install form URLタブのURL for extension’s git reposioryに「txt2mask for Stable Diffusion」のURLを貼り付けます。

https://github.com/ThereforeGames/txt2mask

Web UIを再起動して、img2imgのscriptタブに”txt2mask”が表示されていれば、導入完了です。

scriptタブ:

(2)元画像をアップロードして修正箇所を指定する

①と同じ画像を使って画像を修正します。

はじめに、img2imgタブの”ここに画像をドロップまたはクリックしてアップロード”から元の画像をアップロードします。

次にScriptのプルダウンメニューからtxt2mask(今回はv0.1.1)を選択します。”Mask prompt”には修正したい箇所をテキストで入力します。今回は、服装を変更するために、”dress”と記入します。

また、その他の設定項目を決定します。

  • Mask precisionはマスクの検出精度を表します。
  • Mask paddingは検出したマスクをどれだけ埋めるかを示します。
  • Show mask in output?:チェックを入れると、マスクのアルファ値の画像も同時に出力されます。

(3)プロンプトを入力して画像を新しく生成する

txt2maskの設定が終わったら、新しく生成する画像のプロンプトを入力します。今回は、服装を変更するためにドレスをマスクとして指定したので、プロンプトにはt-shirtを入力しました。

プロンプト:

t-shirt

ネガティブプロンプト:なし

生成された画像:

検出したマスク(修正が行われた箇所):

少し画質は落ちてしまいましたが、指定した通り服装をドレスからTシャツに変更することができました。このように、Stable Diffusion web uiの拡張機能のtxt2maskから、画像をレタッチすることができます。

③ NMKD Stable Diffusion GUIの「Masked Inpainting」機能を使う

Stable Diffsuionでレタッチを行う方法として、NMKD Stable Diffusion GUIの「Masked Inpainting」機能をご紹介します。

NMKD Stable Diffusion GUIについてはこちらの記事で詳しく解説しています。

関連記事

「画像生成ツールを使いたいが複雑で手が出せない...」「NMKD Stable Diffusion GUIで画像生成を簡単に行うことができるの?...」そう思う方もいるのではないでしょうか。 実は、NMKD Stable Diffu[…]

元画像のプロンプトは①、②と同じです。その他の設定項目は次の通りです。

モデル:BRAv5

Amount Of Image To Generate:1

Generation Steps:25

Prompt Guidance (CFG Scale):8

Seed(Empty=Random):Randam

Resolution(Width × Height):512×512

Sampler:Euler Ancestral

Generate Seamless (Tileable) Images:Disabled

生成された画像:

この画像の一部を修正します。

(1)元画像をロードする

はじめに、NMKD Stable Diffusion GUIの”Load Image(s)”から画像をアップロードします。

画像をアップロードするとGUIの一部が変わるので、Inpaintingのタブから”Image Mask (Draw Mask)”を選択します。

(2)プロンプトを入力する

設定が完了したら、プロンプトを入力します。今回は、元画像の女性の化粧を濃くします。

プロンプト:

dark makeup

ネガティブプロンプト:なし

(3)修正したい箇所を塗りつぶして画像を新しく生成する

Generate!をクリックすると、”Draw Mask”のウィンドウが開くので、修正したい部分を塗りつぶします。ブラスの太さやぼかしを調整することができます。

塗りつぶしが終わると、修正した画像が生成されます。

顕著に化粧が濃くなった女性が生成されました。このように、NMKD Stable Diffusion GUIのInpainting機能から、画像をレタッチすることができます。

まとめ

今回PROMPTYでは、Stable Diffusionを用いた画像のレタッチ方法を3つご紹介しました。

  • Stable Diffusion web UIの「Inpaint」を使う方法
  • Stable Diffusion web UIの「txt2mask」を使う方法
  • NMKD Stable Diffusion GUIの「Masked Inpainting」を使う方法

これらのツールを使えば、画像の一部分のみを修正し、より自由度の高い画像生成が可能となります。

今回の解説を参考に、皆さまもStable Diffusionでのレタッチをぜひ試してみてはいかがでしょうか。

~Stable Diffusionで素早く画像生成するには~

Stable Diffusionの画像生成スピードや画像サイズは、グラフィックボード(GPU)の性能によって大きく変わります。

このため、より効率的かつ快適な画像生成を望むユーザーにとって、最適なグラフィックボードの選択が重要となります。

推論処理やLoRAなどの追加学習処理といった大量の計算を効率よく行うためには、12GB以上のVRAMを持つグラフィックボードを選ぶことを強くおすすめします。

2GBや4GBのVRAMを持つグラフィックボードでは、学習プロセスや高解像度の画像生成に支障が出る可能性が高いです。

コスパを重視する方は、RTX 3060を選ぶと良いでしょう。

このグラフィックボードを使えば、Stable Diffusionの画像生成機能を最大限に活用することが可能となります。