Reference-only ControlNet:ついに前処理さえ不要になったコントロールネット

入門/解説

1.Reference-only ControlNet:ついに前処理さえ不要になったコントロールネットまとめ

・ControlNetがアップデートにより「前処理せずとも参照画像と似た画像を作れるようになった!」というニュースが昨日あった
・当然ではあるが参照用画像に似た画像を綺麗に生成するためには少なくとも「参照用画像と似た画像を作る事の出来るモデル」が必要
・LoRAや微調整が不要な時代になったわけではなく自分で生成したものではないイラストを参照するのは工夫と根気が必要になりそう

2.Reference-only ControlNetとは?

アイキャッチ画像はStable Diffusion 2.1用のControlNetの記事中で上手く生成できなかったイラストの再挑戦。久々にナウシカを生成しましたがやっぱり楽しいですね。

コントロールネットは入力として与えた参照画像からポーズや輪郭を抽出し(前処理)、抽出したポーズや輪郭を自分が生成したいイラストに流用できるStable Diffusion用の拡張機能です。

前処理部分は公式なものだけでも30以上あって、それらの前処理に対応するモデルもControlNet1.1の時点で公式なものだけでも14あるので、どんなタイプの画像に対してどの前処理を使うべきかは試行錯誤して身につけていくしかなく、強力ですが、使いこなすのが難しくも感じるのがControlNetです。

そのControlNetがアップデートで「前処理せずとも参照画像と似た画像を作れるようになりました!」というニュースを昨日耳にしました。

何ですと!


公式サイトのサンプル

公式サイト上のサンプル画像を見ると、もはやLoRAも微調整も不要になったレベルで同様な画像が生成できているように見えましたが、実際に評価してみると、そうでもなさそうでした。

当たり前ではありますが、参照用画像に似た画像を綺麗に生成するためには少なくとも「参照用画像と似た画像を作る事の出来るモデル」が必要です。より好ましい条件は「同じモデル」で「同じプロンプト」があるとより綺麗にできそうです。

おそらく使っているモデルにLoRAも微調整もなくても参照用画像と同じ絵柄が描ける能力が備わっていれば、同等なイメージが作成できると思いますが、そうでない場合、自分で生成したものではないイラストを参照するのは難しそうです。絵柄やスタイルがワンクリックで真似放題になったとかそういった話ではないのでご安心ください。

しかし、5/16に更にControlNetが更新されており、新規追加されたReference Adain、Reference Adain+attnという前処理モデルがだいぶ特徴と雰囲気を似せてきます。ControlNetとPromptのどちらを優先させるかのバランス調整に試行錯誤は必要ですが、従来よりモデルの出力制御が容易になったという観点からイラスト生成AIはステージが変った感があります。

以下がカスタムモデルで実際に作成してみたサンプルです。作成時のControl Modeは「Balanced」です。カスタムモデルなのでプロンプトの影響が非常に大きくでています。Control Modeを変える事でもだいぶ変わってくると思いますが、まだ全部は試せていません。

1
元の絵

元の絵とmodel同じ 元の絵とprompt違う
2
元の絵

元の絵とmodel違う 元の絵とprompt同じ
3
元の絵

元の絵とmodel違う 元の絵とpromptだいぶ違う(No2と同じプロンプト)
4
元の絵

元の絵とmodel違う 元の絵とprompt同じ
5
元の絵

元の絵とmodel同じ 元の絵とprompt微妙に違う
6
元の絵

元の絵とmodel同じ 元の絵とprompt同じ

以上により、シンプルなイラストのバリエーションを作るには便利ですが、複雑なワークフローで作成しているイラストはちょっと難しそうです。

写真を参照用画像に使うケースも試しましたが、Interrogateでちょっと頑張ってプロンプトを作るくらいでは雰囲気が微妙に似てるかな?程度にしか似せる事ができなかったです。被写体を上手にプロンプトで表現する事が必要そうです。

なお、5/16の更新に含まれるReference AdainとReference Adain+attnという2つの前処理モデルは、だいぶいい感じで元の被写体の雰囲気を似せてきます。LoRAとReference Only ControlNetの比較は「Waifu Diffusion 1.5 Beta 3を使ってLoRAとReference-only ControlNetを比較」をご覧ください。


追悼のっぽさん
「失敗を恐れず大きな世界に向かってとべとべ」

モデルその1 プロンプト同じ

モデルその2 プロンプト同じ

モデルその3 プロンプト同じ

モデルその4 プロンプト同じ

Reference Adain(Adaptive Instance Normalization)
5/16に追加されたV1.1.171以降用の前処理モデル

Reference Adain+attn
5/16に追加されたV1.1.171以降用の前処理モデル

Reference-only ControlNetの使い方

ExtentionsタブよりCheck For Updatesのボタンでアップデートし、いったんWebUIを終了させる(Restart UIではなくて一度終了させる事)事でアップできます。もし、ControlNetが1.1.153以降であればアップデートしなくても使えます。前述のReference Adainを使うためにはV1.1.171以降にする必要があります。前処理部分だけなので手動でモデルをダウンロードする必要はありません。

前処理(Preprocessor)の部分でreference_only、もしくはReference_Adain等を選び、Enableのチェックをチェックし、Generateするだけです。特筆すべき事は、使うのは前処理モデルだけなので昨日ベータ3が出たWaifu Diffusion 1.5のようなStable Diffusion 2.1系のモデルでも動くと言う事です。

おまけ:AUTOMATIC1111のv1.2.1へのアップデート

久々にAUTOMATIC1111もgit pullしました。pull前は3月末時点の版を使っていてReference-only ControlNetも動いたので、Reference-only ControlNetのためだけにアップデートする必要はないと思います。

そんなに大きくトラブりませんでした。

(1)pytorch2.01の自動インストール
起動時に「torch: 2.0.1+cu118でテストしたよ!の警告が出るので念のため実施
webui.shの起動optionに

--reinstall-torch

を追加するだけで無事pytorch2.01をインストールできました

(2)TCMallocの手動インストール
起動時に「Cannot locate TCMalloc (improves CPU memory usage)」の警告が出るので念のため実施
Linux環境ですが以下のコマンドです。

sudo apt install --no-install-recommends google-perftools

(3)xformersの手動再インストール
コントロールネットがエラーになってしまうためxformersをアンインストールしてから手動で再インストールしています。

(4)起動オプションの変更
コントロールネットがエラーになってしまい警告が出たので
webui.shの起動optionに

--no-half-vae --no-half

を追加しています。

画像生成が少し早くなった気がします。

3.Reference-only ControlNet:ついに前処理さえ不要になったコントロールネット関連リンク

1)github.com
[Major Update] Reference-only Control #1236

タイトルとURLをコピーしました