こんにちは!悠です!
今回は「instruct-pix2pix」という、ControlNetで使用可能なモデルについて紹介していきます。
img2imgタブにアップロードした画像に対して、プロンプトで指示を与えることで元画像を改変・修正することができる面白い機能です。

ただ手の形を調整するような細かい修正には向いていません。もっと大きく元画像を改変して楽しむような機能だと思っています。
「instruct-pix2pix」とは?
「instruct-pix2pix」とは、下のようにimg2imgにアップロードした画像に対し、ポジティブプロンプト内で指示を与えることで、元画像をその指示に則って改変・修正する機能です。
make her angry(彼女を怒らせて)と指示を与えることで、いわゆる怒り顔の表情差分を作れるんですね。
ただ「instruct-pix2pix」で修正を行うと、画像全体の構図にまで影響を与えることが多いため、表情差分を作りたい場合は下の拡張機能「adetailer」を使うことをおすすめします。

どちらかというとturn a girl into cyborg(女の子をサイボーグに変えて)のように、元画像に大幅な改変を加える指示の方が面白いものが出来上がると思います!
「instruct-pix2pix」の導入方法
【その1】ControlNetの専用モデルを導入
拡張機能「ControlNet」に関しては下の記事で紹介しています。

下記のHugging Faceのページから「control_v11e_sd15_ip2p.pth」をダウンロードして、「~\webui\extensions\sd-webui-controlnet\models」に保存してください。

これでWebUI上で「instruct-pix2pix」が利用できるようになります。
今回の記事では、この方法で導入した場合の使い方を紹介していきます。
【その2】「instruct-pix2pix」モデルを導入

上のページからダウンロードできる「instruct-pix2pix-00-22000.safetensors」を「~\webui\models\Stable-diffusion」に保存することでも利用できるようです。
導入するだけで自動的にImage CFG Scaleというバーが表示されるそうです。
この導入方法を行った場合の使い方に関しては、下の記事で詳しく説明されていました。

【その3】拡張機能として導入【更新停止】
上記拡張機能を導入することでも「instruct-pix2pix」を利用できるようですが、現在は更新が停止しています。
なのでこの方法は非推奨です。
「instruct-pix2pix」の使い方
上で紹介した方法その1の、ControlNetの専用モデルを使ったやり方の紹介になります。
WebUIを起動し、img2imgに素材となる画像をアップロードします。
WidthとHeightを素材画像と同じサイズに合わせ、CFG ScaleとDenoising strengthを調整します。
プロンプトの指示通りに修正が行われない場合はこの2つを大きくして、逆に構図や色合いが変わり過ぎる場合は小さくしてください。
個人的にはCFG Scale = 9.5、Denoising strength = 0.5くらいがおすすめです。
Sampling methodとSampling stepsはお好みで設定してください。
次にControlNetのタブを開きます。
ControlNetの入力欄は空のままでOKです。Enableにチェックを入れ、PreprocessorをNone、Modelを「control_v11e_sd15_ip2p.pth」に設定します。
これで準備はOKなので、ポジティブプロンプトに好きな指示を記入してGenerateボタンをクリックしましょう。
「instruct-pix2pix」のサンプル画像
最後に私が「instruct-pix2pix」でいろいろ実験してみた結果をご紹介します。
CFG Scale = 9.5、Denoising strength = 0.5で、素材画像は次の通りです。モデル「Yuzu」で生成しています。
【元画像】
【指示:make her cry】
【指示:make her angry】
【指示:she has blue hair】
【指示:turn a girl into cyborg】
これ一番のお気に入りです!!!
【指示:turn the sky into flame】
【指示:make her on the street】
【指示:turn a girl into an old man】
これだけ上の素材ではうまくいかなかったので、サムネにしてある画像で試しました。
大爆笑wwwwwwwwwwwwwwwwwwwwww
Inpaintを使った表情差分の作成
コメント欄で「instruct-pix2pix」はinpaintでも使えると教えていただいたんですが、実際に試してみるとかなりいい感じの表情差分を作れたので紹介します。
Inpaintタブを開いて下のような感じで顔だけ塗り潰してください。
いろいろ試したんですが、表情差分を作る場合はCFG Scale = 3.5~5、Denoising strength = 0.5あたりが一番おすすめです。
【元画像】
【指示:make her angry】
【指示:make her grin】
【指示:she is crying with tears】
【失敗例】

顔の圧力ヤバすぎw
まとめ
以上が、img2imgタブにアップロードした画像に対して、プロンプトで指示を与えることで改変・修正することができる「instruct-pix2pix」の紹介でした。
想像もつかないような面白画像が生成されることも多く、遊んでいて本当に楽しかったのでぜひ皆さんも試してみてくださいね!
では、ここまで読んでいただきありがとうございました。
コメント
inpaintモードでも使えるので表情差分に限るなら拡張いらなさそう。
通常のinpaitよりも元絵に忠実なのがいいですね。
過程を見ていると、inpaintはプロンプト情報を含んだノイズガチャ、p2pは元絵にノイズを上書きしていくって感じでした。
てかすごい。ゲームの立ち絵くらいならマジで実用レベルで変化させられるんだけどこれ……。
コメントありがとうございます!!
おおお!inpaintで使うという発想が全くありませんでした!これ試したら表情差分結構いけますね!!
記事に追記させていただきます!教えていただき感謝です!