【instruct-pix2pix】画像にプロンプトで指示を与えて修正を行うControlNetのモデルを紹介!【Stable Diffusion】

こんにちは!悠です!

 

今回は「instruct-pix2pix」という、ControlNetで使用可能なモデルについて紹介していきます。

img2imgタブにアップロードした画像に対して、プロンプトで指示を与えることで元画像を改変・修正することができる面白い機能です。

ただ手の形を調整するような細かい修正には向いていません。もっと大きく元画像を改変して楽しむような機能だと思っています。

 

アイキャッチ画像は「Yuzu」で生成しています。
スポンサーリンク
スポンサーリンク

「instruct-pix2pix」とは?

GitHub - timothybrooks/instruct-pix2pix
Contribute to timothybrooks/instruct-pix2pix development by creating an account on GitHub.

 

「instruct-pix2pix」とは、下のようにimg2imgにアップロードした画像に対し、ポジティブプロンプト内で指示を与えることで、元画像をその指示に則って改変・修正する機能です。

 

make her angry(彼女を怒らせて)と指示を与えることで、いわゆる怒り顔の表情差分を作れるんですね。

ただ「instruct-pix2pix」で修正を行うと、画像全体の構図にまで影響を与えることが多いため、表情差分を作りたい場合は下の拡張機能「adetailer」を使うことをおすすめします。

【Stable Diffusion】顔を自動認識して崩れを補正してくれる拡張機能「adetailer」の使い方を紹介!【表情差分】
「Stable Diffusion」で、AIイラストの顔を自動認識して崩れを補正してくれる拡張機能「adetailer」の使い方について紹介した記事です。

 

↑と思っていたんですが、コメントで「inpaintでも使えるよ」と教えていただいて試してみたところ、かなりいい感じで表情差分を作れました。記事の最後で紹介しています。

 

どちらかというとturn a girl into cyborg(女の子をサイボーグに変えて)のように、元画像に大幅な改変を加える指示の方が面白いものが出来上がると思います!



「instruct-pix2pix」の導入方法

 

【その1】ControlNetの専用モデルを導入

拡張機能「ControlNet」に関しては下の記事で紹介しています。

【Stable Diffusion】生成されるイラストのポーズを指定できる「ControlNet」の導入方法と使い方について紹介!
「Stable Diffusion」で、生成されるAIイラストのポーズを指定することができる拡張機能「ControlNet」の導入方法と使い方を紹介した記事です。

 

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

lllyasviel/ControlNet-v1-1 at main
We’re on a journey to advance and democratize artificial intelligence through open source and open science.

 

 

これでWebUI上で「instruct-pix2pix」が利用できるようになります。

今回の記事では、この方法で導入した場合の使い方を紹介していきます。

 

【その2】「instruct-pix2pix」モデルを導入

timbrooks/instruct-pix2pix at main
We’re on a journey to advance and democratize artificial intelligence through open source and open science.

 

上のページからダウンロードできる「instruct-pix2pix-00-22000.safetensors」を「~\webui\models\Stable-diffusion」に保存することでも利用できるようです。

導入するだけで自動的にImage CFG Scaleというバーが表示されるそうです。

 

この導入方法を行った場合の使い方に関しては、下の記事で詳しく説明されていました。

instruct pix2pix:プロンプトだけを使ってAIでイラストの修正を行う
1.instruct pix2pix:プロンプトだけを使ってAIでイラストの修正を行うまとめ・思い通りの編集効果が出せない時はImage CFGやText CFGの値をチューニングすると期待通りの効果が出せる可能性がある・本家githubに

 

【その3】拡張機能として導入【更新停止】

GitHub - Klace/stable-diffusion-webui-instruct-pix2pix: Extension for webui to run instruct-pix2pix
Extension for webui to run instruct-pix2pix. Contribute to Klace/stable-diffusion-webui-instruct-pix2pix development by creating an account on GitHub.

 

上記拡張機能を導入することでも「instruct-pix2pix」を利用できるようですが、現在は更新が停止しています。

なのでこの方法は非推奨です。

 

「instruct-pix2pix」の使い方

上で紹介した方法その1の、ControlNetの専用モデルを使ったやり方の紹介になります。

WebUIを起動し、img2imgに素材となる画像をアップロードします。

 

WidthとHeightを素材画像と同じサイズに合わせ、CFG ScaleとDenoising strengthを調整します。

プロンプトの指示通りに修正が行われない場合はこの2つを大きくして、逆に構図や色合いが変わり過ぎる場合は小さくしてください。

 

個人的にはCFG Scale = 9.5Denoising 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.55Denoising strength = 0.5あたりが一番おすすめです。

 

【元画像】

 

【指示:make her angry

 

【指示:make her grin

 

【指示:she is crying with tears

 

【失敗例】

顔の圧力ヤバすぎw



まとめ

以上が、img2imgタブにアップロードした画像に対して、プロンプトで指示を与えることで改変・修正することができる「instruct-pix2pix」の紹介でした。

想像もつかないような面白画像が生成されることも多く、遊んでいて本当に楽しかったのでぜひ皆さんも試してみてくださいね!

 

では、ここまで読んでいただきありがとうございました。

コメント

  1. 匿名 より:

    inpaintモードでも使えるので表情差分に限るなら拡張いらなさそう。
    通常のinpaitよりも元絵に忠実なのがいいですね。
    過程を見ていると、inpaintはプロンプト情報を含んだノイズガチャ、p2pは元絵にノイズを上書きしていくって感じでした。
    てかすごい。ゲームの立ち絵くらいならマジで実用レベルで変化させられるんだけどこれ……。

    • 悠 より:

      コメントありがとうございます!!

      おおお!inpaintで使うという発想が全くありませんでした!これ試したら表情差分結構いけますね!!

      記事に追記させていただきます!教えていただき感謝です!