1.ControlNet:棒人間で表現した好きなポーズをAIでイラスト化するまとめ
・ControlNetはイラスト生成AI界隈で今、話題沸騰中の新手法で画像を使って生成するイラスト内の物体の姿勢の制御を可能にする新手法
・ControlNetが解釈できる画像形式は8種類あり本家ではそれぞれ別モデル扱いだがAUTOMATIC1111版は画像解釈部を切り離そうとしている
・ポーズの制御はバッチリ出来ても、場面やキャラクターの制御は従来通りプロンプト頼りなのでControlNet用の修練は別途必要になってくる
2.ControlNetとは?
2023年4月追記)本記事紹介している8モデルに加えて6モデルを追加したControlNet1.1が公開されています。
ControlNetとは、一週間くらい前に発表されてイラスト生成AI界隈で今、話題沸騰中の新手法です。
「ゲームチェンジャーだ!もはやプロンプトでイラストを制御する時代は終わった!」等々、凄い盛り上がりです。
盛り上がりすぎて、2、3日経緯を追えなかったら情報の洪水で、何がどうなったのか追いつくのが難しい状況ですが、極力シンプルにまとめると以下です。
ControlNetはニューラルネットワークを使って、イラスト生成AIであるStable Diffusionを制御する手法です。
Stable Diffusion自体は変更せず、ControlNetが入力として与えられた画像を解釈し、その画像を元にしたイラストを生成するようにStable Diffusionを仕向けます。
ControlNetが解釈できる画像形式(人が書いた線画、写真、深度マップ、セグメンテーションマップなど)は複数存在しますが、本家版では、各画像形式専用に別々のモデルとして実装されており、全部で8モデルが公開されています。各モデルは「各画像形式用のControlNet + Stable Diffusion1.5」が1つのファイルにまとまっています。本家版(lllyasvielさん開発)は各画像形式から特徴を抽出する前処理部分は現時点では外部アプリに頼っています。
なので例えば、線画形式を解釈する用ではないモデルに線画を与えると以下のように想定外のイラストが出来ます。
例によって人気の高いAUTOMATIC1111にControlNetを移植しようとする試みがあり、AUTOMATIC1111版(Mikubillさん開発)では画像形式を解釈して接続する部分(adapter)や前処理する部分(preprocessor)をモデルから切り離す方向で実装が進められており、扱える画像形式や様々な改良が秒進分歩で爆発的に増えつつあります。
本家版も本家版でブラウザから操作できるようにした実装を公開してくれているので、NVIDIAのGPUを搭載したLinuxのConda環境なら割合簡単に動かす事ができます。AUTOMATIC1111版も拡張機能sd-webui-controlnetとしてインストール可能ですが、まだ開発中のため変更が多く、追いかけていくのは少し大変かもしれません。
本家版とAUTOMATIC1111版の情報がごっちゃになっている事が多いので、情報収集の際はどちらの話なのかを意識して読む事が必要です。
ControlNetを使うと何が嬉しいのか?
・好きなポーズを取ってもらう事が出来る
従来のイラスト生成AIは細かいポーズを制御するのはほぼ不可能でした。プロンプトで場面等は制御できますが、詳細なポーズを指定しても指定した通りのポーズを取ってくれる事はほぼ期待できませんでしたが、ControlNetを使う事で様々な画像形式で細かく制御できるようになりました。
・動画化への期待
イラスト生成AIでは同じ人物を異なるポーズで描く事が難しいです。プロンプトが同じでも毎回違う人物の絵になってしまいますし、前述のように細かいポーズ指定も困難なので、時間的に一貫して見える動画の作成は困難でした。しかし、Image2Imageなどの既存手法やBlenderなどの3DCGアニメーション作成ソフトと組み合わせる事で、一貫性を持った動画が従来より楽に作れそうだという事で期待も高まっています。
・イラスト内に文字やマークを入れ込みやすくなる
イラスト生成AIではプロンプトでイラスト内にアルファベットを入れようとしても崩れてしまう事が多く、ましてや日本語の漢字などを入れ込むのはまず不可能でした。判読可能な文字を書くためにはイラストを後からphotoshop等で追加/修正する方が楽でしたが、ControlNetを使うと文字やマークをStableDiffusionに綺麗に装飾して貰いやすくなります。
・線画に色を塗って貰う使い方も可能
従来のゼロからイラストを生成する使い方以外にも、自分の描いた線画と大まかな色塗りの指示を与えるだけで、controlnetを使ってフルカラーイラストを仕上げる事が出来るので、イラストを描ける人にとっても恩恵になっているようです。
・カスタムモデルにも適用が容易
本家版のControlNetはStable Diffusion1.5が同梱されており1つのファイルにまとまっていますが、チェックポイント同士のマージを行う事で、カスタムモデルをControlNetで制御する事が可能になっています。
(あなたの作ったカスタムモデル) + (ControlNet + stable diffusion1.5) – stable diffusion1.5 = (あなたの作ったカスタムモデル + ControlNet)
現時点では、ControlNetを適用するカスタムモデルはstable diffusion1.5を元に微調整/マージしたモデルである必要があります。詳細は、本家githubページ内をご覧ください。
AUTOMATIC1111版は実験的な実装ではありますが、マージ作業をしなくても済むようにする方向性のようですが、少なくとも現時点ではWaifu Diffusion 1.5のようなstable diffusion2.x系列のVモデルが元になっているモデルはエラーになって動かないと思います。(2023年3月追記:stable diffusion 2.1用のControlNetが公開されています)
ControlNetを使った実例
姿勢の制御は確かに容易になりましたが、姿勢制御効果がプロンプトと相互に影響してしまう気がしています。今までと操作感覚がかなり違うので同じ感覚でイラスト生成ができず「プロンプトでイラストを制御する時代は終わった!」というより「プロンプト(だけ)でイラストを制御する時代は終わっ(てより高度になっ)た!」感が正直あります。ワークフロー、すなわち、イラスト完成までにやる事や選ぶべき事を見直す必要がありそうだなと感じています。
姿勢制御の効果
上半身だけであっても顔の向きなどの姿勢制御効果は素晴らしいです。しかし、ナウシカ感が薄れてしまう時が多く、逆にナウシカを強調しようとすると画像品質が劣化してしまう傾向をまだ上手く制御できず、苦戦しています。
難しいポーズのイラスト化
難しいポーズをイラスト化できる効果も凄いです。しかし、ナウシカ感が薄れて単なる赤い髪をした青い服を着ている人っぽくなる先祖返り現象と、ポーズの制御はバッチリ出来ても、周辺環境やキャラクターの動作、服装の制御がプロンプト頼りなので、私は今のところ、まだ思った通りのイラストを自在に描けるといったレベルには達していません。
もしかしたら、私が2.1ベースのプロンプトに慣れすぎてしまっているのかもしれませんが、ControlNetは慣れるまで時間かかりそうと感じています。
なお、現時点でも急ピッチに開発が進められている新機能で情報も錯綜しているため、動かすのは結構苦戦する可能性があります。以下に強めのGPUで動作させているSpaceへのリンクを張っておくので、試しに無料Webサイトで動かしてみたい方は以下で先に試してみる事をお勧めします。
fffiloni / ControlNet-Video (A100)
3.ControlNet:棒人間で表現した好きなポーズをAIでイラスト化する関連リンク
1)arxiv.org
Adding Conditional Control to Text-to-Image Diffusion Models
2)github.com
lllyasviel / ControlNet (本家)
Mikubill / sd-webui-controlnet(AUTOMATIC1111向けの実装)
3)huggingface.co
lllyasviel/ControlNet