ControlNET版「Inpaint」機能をわかりやすく解説ー画像の一部を修正|Stable diffusion

2023年7月23日Stable diffusionAI, ControlNet

inapint title

Stable diffusionの「ControlNET&拡張機能講座」第14回目。画像の一部を修正するControlNET版「Inpaint」機能についてです。

「Img2img」に最初からある「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」の使い方

moto gazou

適当に生成した画像を利用します。これの服装を変えてみます。

inapint controlnet

下の方にある「ControlNet」を開き、元絵を「Single Image」に放り込みます。それから「ControlNet」を使用するため、「Enable」と「Pixel Perfect」にチェックを入れてください。

設定する「Preprocessor」は「inpaint_global_harmonious」に、「Model」は「control_v11p_sd15_inpaint」とします。

あとは修正したい部分をマウスで適当に塗り潰すだけです。今回は服装を変更しますので、服装部分を塗りつぶします。塗りつぶしペンの太さは、画像の右側にあるペンアイコンをクリックするとバーが出てきて調整できます。

プロンプトのほうは「solo, 1girl, sailor fuku, skirt」(セーラー服、スカート)と書いて、服装を変更しましょう。それと画像は縦長なので、出力画像のサイズもHeight(高さ)を変更して縦長にします。あとは「Generate」するだけです。

inapint title

結果が記事タイトルの画像ですね。

違和感ない感じで変わったのニャ。というかこれ、悪用厳禁な技術ニャ。

「Inpaint」で検索すると「Inpaint 服を消す sttablediffusion」みたいな検索候補が出てきますしね。

angly

顔を塗り潰して、プロンプトに「angly」(怒り)を入れると、怒っている表情に変更できます。

これ以外にも、手に持っているものを変更するなど、細かいところの修正に使うことができるでしょう。

 

まとめ

そんなわけで、画像の一部を修正する「Inpaint」機能でした。

持ち物を変えたり、服装を変えたり、表情を変えたりといったことが可能になります。

「Img2img」の「Inpaint」は塗り潰した部分だけをピンポイントで修正するため、ControlNETの「inpaint」(inpaint_global_harmonious)のほうが自由度が高いですね。

それではまた次の講座でお会いしましょう。【追記】次回「「Stable Diffusion」で「mov2mov」を使った動画作成をわかりやすく解説」出来ました。以下のリンクから。