ControlNET版「Inpaint」機能をわかりやすく解説ー画像の一部を修正|Stable diffusion
Stable diffusionの「ControlNET&拡張機能講座」第14回目。画像の一部を修正するControlNET版「Inpaint」機能についてです。
原理はおなじですが、ControlNETのほうがきれいに修正できますね。プリプロセッサに「inpaint_global_harmonious」を使うことで、修正範囲外も修正して、全体的に自然な感じで画像出力をおこなってくれます。
そんなわけでControlNETの「Inpaint」を使ってみましょう。前回の「「Tagger」機能の導入と使い方をわかりやすく解説ー一般画像からプロンプトを抜き出せる」は以下のリンクから。
「Inpaint」のインストール
「ControlNetv1.1」以上をインストールした状態であることを前提に話を進めます。まだの方や、インストールしたけどバージョンがわからんという方は以下のリンクを参照。
「Inpaint」用モデルのインストール
まだモデルをダウンロードしていない方は、
https://huggingface.co/lllyasviel/ControlNet-v1-1/tree/main
から、1.45Gある「control_v11p_sd15_inpaint.pth」をダウンロードします(赤い箱マークに「LFS」と書いているボタンをクリックするとダウンロード)。
ダウンロードしたものは、「Stable Diffusion」をインストールしたフォルダ内の「stable-diffusion-webui」>「models」>「ControlNet」のフォルダに入れればOKです。
「Inpaint」の使い方
適当に生成した画像を利用します。これの服装を変えてみます。
下の方にある「ControlNet」を開き、元絵を「Single Image」に放り込みます。それから「ControlNet」を使用するため、「Enable」と「Pixel Perfect」にチェックを入れてください。
設定する「Preprocessor」は「inpaint_global_harmonious」に、「Model」は「control_v11p_sd15_inpaint」とします。
あとは修正したい部分をマウスで適当に塗り潰すだけです。今回は服装を変更しますので、服装部分を塗りつぶします。塗りつぶしペンの太さは、画像の右側にあるペンアイコンをクリックするとバーが出てきて調整できます。
プロンプトのほうは「solo, 1girl, sailor fuku, skirt」(セーラー服、スカート)と書いて、服装を変更しましょう。それと画像は縦長なので、出力画像のサイズもHeight(高さ)を変更して縦長にします。あとは「Generate」するだけです。
結果が記事タイトルの画像ですね。
「Inpaint」で検索すると「Inpaint 服を消す sttablediffusion」みたいな検索候補が出てきますしね。
顔を塗り潰して、プロンプトに「angly」(怒り)を入れると、怒っている表情に変更できます。
これ以外にも、手に持っているものを変更するなど、細かいところの修正に使うことができるでしょう。
まとめ
そんなわけで、画像の一部を修正する「Inpaint」機能でした。
持ち物を変えたり、服装を変えたり、表情を変えたりといったことが可能になります。
「Img2img」の「Inpaint」は塗り潰した部分だけをピンポイントで修正するため、ControlNETの「inpaint」(inpaint_global_harmonious)のほうが自由度が高いですね。
それではまた次の講座でお会いしましょう。【追記】次回「「Stable Diffusion」で「mov2mov」を使った動画作成をわかりやすく解説」出来ました。以下のリンクから。