SNSで画像をアップする際、多くの方は画像編集をすることでしょう。
「足を長く見せたい」、「肌をキレイにしたい」、「余計なものを消したい」などなど。
画像編集ソフトで編集するのではなく、それをAIにやらせてみましょう!
編集したい箇所を手動で修正するのではなく、AIに文章で指示を出して描き変えさせます。
こうすると画像編集の手間が軽くなります。
今回はIP2Pという技術で画像編集します。
IP2Pとは
Instruct-Pix2Pix
条件付き拡散モデル(ControlNet)の一種で、画像に対しプロンプトで指示を出すとその通りに画像を編集します。
入力画像 + 編集指示 → 編集済み出力画像
このように学習させるために451990のデータセットを用いたそうです。
このようにプロンプトのとおりの画像編集ができています。
今までだとPix2Pixで画像A→画像Bの学習モデルを作ってから変換する必要がありました。
これがモデルも作らずテキストだけで編集できるとは、基盤モデルの強さを改めて感じますね!
![](http://ai-joyful.com/wp-content/themes/cocoon-master/images/b-woman.png)
5/22にアメリカのペンタゴンが爆発しているフェイク画像が拡散されました。
くれぐれもフェイク画像でデマを流さないようにしましょう。
ちなみに上記の画像は元画像も画像生成しています。
IP2PにはGPT-3、Stable Diffusion、CLIPなど多くの技術が使われています。
詳細は公式の情報をご覧ください。
- Git(公式):https://github.com/timothybrooks/instruct-pix2pix
- Git(ControlNet):https://github.com/lllyasviel/ControlNet-v1-1-nightly
- 論文:https://arxiv.org/abs/2211.09800
IP2PはStable Diffusion Web UIのControlNetに組み込まれているため、簡単に体験できます。
それでは以下からStable Diffusionでの使い方を紹介します。
Stable Diffusionでの使い方
ControlNetの追加
Stable Diffusion の拡張機能であるControlNetを追加します。
IP2Pで使うモデルは以下からv1.1のファイルをダウンロードしてください。
モデルファイル:https://huggingface.co/ckpt/ControlNet-v1-1/blob/main/control_v11e_sd15_ip2p.pth
Web UIでの手順
Stable Diffusion Web UIでIP2Pを実行する手順は以下の通りです。
image2imageではなくtext2imageで実行します。
- Stable Diffusion Web UI を起動
- ControlNetの設定欄を展開
- 編集元画像を入力
- Enable にチェック
- Preprocessorにnone、Modelにcontrol_v11e_sd15_ip2p_fp16を選択
- txt2imageで編集指示のプロンプトを入力
- Generate
設定パラメータ
IP2Pの設定パラメータは、ControlNet共通のパラメータと同じように設定します。
デフォルトのままだとうまく変換できないこともあります。
調整するとしたらControl Weightが良いと思います。
# | パラメータ | 内容 |
---|---|---|
1 | Control Weight | IP2Pの強度 低:プロンプト優先(元画像を多く修正) 高:IP2P優先(元画像保持) |
2 | Starting Control Step Ending Control Step | IP2Pを反映させるU-Netのステップ数の割合。 総ステップ数が20で4〜18ステップにIP2Pを反映させたい場合、 Starting Control Step:0.25 Ending Control Step:0.9 |
3 | Control Mode | プロンプトとIP2Pのどちらを優先させるか |
Control Weightを変化させた結果です。
1.0が一番サイボーグっぽいですね。
今度はControl Modeを変更しています。
IP2P自体がプロンプトに関する機能だからなのか、promptもControlNetも同じような感じで違いがわからないですね。
人にIP2Pをすると他人になりますね。
同じ人で少し変更したい場合は、LoRAで生成するかReference onlyで生成するかでしょうか。
有用指示プロンプト
公式によりますと、「make X into Y(XをYに変える)」より「make it X(Xに変える)」の方が効きやすいそうです。
Stable Diffusion におけるIP2Pでは、命令プロンプトと説明プロンプトを半々で学習させています。
命令プロンプト:少女を可愛くする
説明プロンプト:可愛い少女
ですので、公式と異なり説明プロンプトだけでも画像編集してくれます。
ちなみにNSFWはフィルタリングされています。
![日本人](http://ai-joyful.com/wp-content/themes/cocoon-master/images/man.png)
英文を作れなくても、英単語を知っていれば使えるということか。
服を脱がすのは難しいか。。
どんなプロンプトで指示すればよいのか。
いろいろ試してみます。
けっこうランダム性があるため、ガチャ要素が高いです。
具体的にここを変更して、というより全体を変更するようなプロンプトの方が効きそうです。
![](http://ai-joyful.com/wp-content/themes/cocoon-master/images/woman.png)
冬だから寒くないように帽子を被らせてあげるAIさん素敵
まとめ
IP2Pは手軽に画像編集できますが、うまく使わないと思い通りの画像は生成されません。
他のControlNetやLoRAなどを組み合わせて使うと面白いかもしれません。
Interrogate CLIPでimage2textをして、どのプロンプトを使って編集指示をするか考えてみるのも良さそうですね。
IP2Pに似たようなものとして同じControlNetのreference onlyというのがあります。
reference onlyは以下で紹介しておりますので、ぜひ両方使いこなしましょう!
コメント