こんにちは、スタジオ真榊です。前回の記事に引き続き、今夜もControlnet1.1の新モデル検証の続きをお届けしたいと思います。
今回検証するのは「Pix2pix」。前回はイラストの要素をばらばらにして再構成する「Shuffle」について研究しましたが、Pix2pixは再構成ではなく「変化」を扱う新技術です。Controlnetのアップデートに注意しながら、さっそく見ていきましょう。
※今回の検証には一部、着衣状態の女の子を脱衣させる実験が含まれます。ご注意ください。
元イラストを変化させられる「Pix2pix」
Pix2pixは「ペア」になった画像を教師データとして大量学習させることで、AIに二つの画像の間の「関係性」を覚えさせ、ある入力画像を渡すと指示通りに変化させて出力させられるようにする技術のこと。例えば、赤いリンゴの絵と青いリンゴの絵をペアで学習したAIは「Aを青くしたものがB」という関係性を学びますので、「このイチゴを青くして」という要求に応えられるようになる・・・というわけです。

(https://www.timothybrooks.com/instruct-pix2pix より画像引用)
こちらの例では、「ひまわりをバラに取り替える」「空に花火を加える」「果物をケーキに置き換える」といった指示プロンプトによって、その通りに画像が変化していることが分かります。
「ある画像を入力して別の画像に変換する」という意味ではShuffleに似ていますが、Shuffleがあくまで元画像をピースとしてパズルをくみ上げる「再構成」のイメージなのに対して、Pix2pixはあるお題を任意の状態に「変化」させるイメージ。Shuffleと違って元イラストの色合いや要素を必ずしも継承しないので、入力画像と出力画像の雰囲気が似ないこともありますし、変化させる対象(上の例なら花や空、コートなど)を限定して置き換えることもできます。
代表的な指示プロンプト
Pix2pixに触る上でまず理解すべきなのは、このモデルは我々が普段使っているプロンプトではなく、「説明プロンプト」と「指示プロンプト」の組み合わせでトレーニングしているということ。例えば「beautiful fire works」は説明プロンプトであり、「add beautiful fireworks to the sky」が指示プロンプトです。公式の説明によると、「Y を X にする」よりも「X にする」といった単純な指示の方がうまくいくとのこと。
代表的なものを次にまとめてみましたが、単純な指示英文であればかなり広範に理解してくれるようです。
make it ~:~に変えて 例:make it miro painting
make it look like ~:こんなふうに変えて 例:make it look like summer
background to ~:背景を~に変えて
change A to B:AをBに変えて
動詞 A their B:例:絵の一部を動かす 例:Close their eyes
it is ~:これは~ですと指示 例:it is now midnight
add A in B:AをBに描き加えて
replace A with B:AをBに置き換えて
swap A to B:AをBに置き換えて
turn A into B:AをBに変化させて(置き換えより変化のイメージ)
put on ~:~を着せる 例:put on coat
convert to ~:媒体を変化させる 例:convert to realistic photo
face to ~:表情を変化させる 例:face to smile

(https://www.timothybrooks.com/instruct-pix2pix より画像引用)
基本的にはmake~やchangeを使うことが多くなると思います。
「どこを」変化させるかは書かない方がよい生成結果が出るとされているのですが、効かせたい場所以外に効果が漏れてしまうことが多いので、そこはinpaintや「人力マージ」(画像編集ソフトで元画像の取り入れたい部分だけを取捨選択して合成する)でカバーしましょう。
とはいえ、例えば室内にいるキャラの絵を入力して「背景を砂漠に」と指示したら、キャラクターへの光の当たり方にもその背景の影響が出てしかるべきなので、背景だけに効かせればいいというものでもありません。自然な変化をさせるためにはそれなりの工夫が必要となります。





