どうも、趣味レーターのAKITΩ(あきと)です!
今回は『ControlNet1.1』のプリプロセッサ、モデル、各種設定、オススメの『ControlNet』についてご紹介します!
『ControlNet』はとても便利なのですが、設定箇所やモデルなどが多くてわかりづらくないでしょうか?
わたしは慣れるまで色々数値変えてはおかしなイラストを生成してとても苦戦しました(笑)
同じようにお困りの人のために今回の記事を作成しました!
少しでもお役にたてれば嬉しいです!!!
この記事では機能やモデルなどの解説がメインなので、もし『ControlNet』を未導入の人はこちらをご覧ください。
また、『ControlNet-v1.1.190』バージョンでご紹介しているので『ControlNet』の更新などしたい場合は下の記事の拡張機能の更新をお願いします。
それでは詳しい内容をご紹介します!
ControlNet基本設定
ControlNetの基本設定関連の内容をご紹介します!
Single Image
『ControlNet』で利用する参照画像をアップロードするところです。
Enable(有効)
『ControlNet』のオンオフを切り替えできます。
チェックがついているとオンになります。
Low VRAM(低VRAM)
VRAMが8GB未満の場合にチェックを入れます。
8GB以上でもVRAM不足のエラー時にチェックを入れると解消されることがあります。
Pixel Perfect(ピクセルパーフェクト)
一部のプリプロセッサでは解像度の調整が必要ですが、その調整を自動でしてくれます。
基本的にはチェック推奨ですが、『Shuffle』の場合は解像度で変化量の調整ができるのでチェックしないほうがいいです。
Allow Preview(プレビューを許可する)
『ControlNet』を適用したときに画像を生成せずに『ControlNet』のプレビューだけを確認できます。
画像生成しないのですぐ終わるため、『ControlNet』がどう処理されるかだけ確認したいときに便利です。
操作方法を知りたい場合は以下のタブを開いてください!
Allow Previewの操作方法
『Allow Preview』にチェックをつけるとプレビュー用の枠がでます。
爆弾のようなマークを押します。
画像生成せずに『ControlNet』のプレビューだけ確認することができました。
以上が『Allow Preview』の操作方法です!
Control weight
『ControlNet』とプロンプトの影響度を調整できる機能になります。
基本的には中間の1にしておいて、できた画像のイメージを変えたい時に切り替えるのがオススメです。
似たような機能に『Control Mode』もあります。
starting Control step
いつから『ControlNet』を反映するかを調整が可能です。
例えば、0.3なら画像生成工程の30%から『ControlNet』の影響がはじまります。
Ending Control Step
いつまで『ControlNet』を反映するかを調整が可能です。
例えば、0.8なら画像生成工程の80%から『ControlNet』の影響が終わります。
〜Control stepの補足〜
基本的には『starting Control step』を0で『Ending Control Step』を1にしておけば大丈夫です。
ただし、『ControlNet』の要素が強すぎて生成画像がおかしいときには調整することで改善できます。
変更例を知りたい場合は以下のタブを開いてください!
Control Step変更例
構図はいいけど『ControlNet』の影響が強すぎる場合に変更するのがオススメです。
例として『ボディースーツ、ロングヘアー、赤いインナーカラー』の呪文で画像を生成しました。
こちらの画像を『ControlNet』へアップロードして、『depth』で別画像を生成します。
使用呪文は『メイド服、ボブヘアー、青いインナーカラー』になります。
starting0・Ending1
元画像の深度マップに忠実なため、呪文のボブヘアーではなくロングヘアーで服もボディースーツの体型に合わせた画像になっています。
これは画像生成の最後の工程まで『ControlNet』が影響しているためです。
『starting0・Ending0.25』へ変えて『ControlNet』の影響を25%で終わるように変更します。
starting0・Ending0.25
『depth』とプロンプトがバランスよく表現されていませんでしょうか?
大まかな構図はいいけどプロンプトの反映がイマイチなときには、是非調整してみてください!
作りたいイラストやseed固定の有無で変わりますが、個人的には『Ending0.25〜4』くらいを目安に調整するとバランスよくなることが多いです。
『Control weight』や『Control Mode』なども組み合わせると効果的です。
Preprocessor Resolutino
プリプロセッサによって表示される項目で、プリプロセッサの解像度を手動で調整できます。
解像度を間違えると変なイラストになるので『Pixel Perfect』で自動調整するのがオススメです。
Control Mode
『Control Mode』には3種類あり、プロンプトと元画像の影響度を調整できます。
基本的にはデフォルトの『Balanced』にしておいて、できた画像のイメージを変えたい時に切り替えるのがオススメです。
~Balanced~
プロンプトと元画像をバランスよく画像を生成する。
~My prompt is more imprortant~
プロンプトを優先して画像を生成する。
~ControlNet is more imprortant~
元画像の要素を優先して画像を生成する。
Resize Mode
参照画像のサイズが生成される画像のサイズと異なる場合に調整する機能になります。
同じ縦横比であれば気にしなくて大丈夫です。
~Just Resize~
参照画像の縦横比を維持せずに生成サイズに合うようにサイズ変更する。
~Crop and Resize~
生成画像サイズに合うように参照画像の一部を切り抜きとサイズ変更する。
~Resize and Fill~
生成画像サイズに合うように参照画像をサイズ変更して余白を塗りつぶす。
Multi ControlNetの設定
ControlNetはMulti ControlNetという設定で複数同時に使用することが可能です。
設定方法をご紹介しますが、同時に使用しない場合は設定不要になります。
①『Settings』タブ→②ControlNet→③Multi ControlNet: Max models amount (requires restart)の下のバーを動かすと右端の数字が変わります。
その数字が同時に使用できるControlNetの数になります。
数字を変更したら①『Apply settings』→②『Reload UI』で再起動します。
設定が反映されると『ControlNet Unit 0』、『ControlNet Unit 1』のように切り替えできるタブがでて、それぞれのタブで別々のControlNetを利用できます!
Preprocessor(プリプロセッサ)とModel(モデル)
Preprocessor(プリプロセッサ)
『Preprocessor』は『ControlNet』のモデルが読み込める下処理画像の種類を変えれるところです。
こういうやつ!
すでに下処理画像を用意できていたりモデルによっては不要な場合があるので、その際は『None/なし』を選べば『Preprocessor』なしで生成ができます。
『invert』の項目で『Preprocessor』なしの生成例をご紹介しています。
Model(モデル)
『Model』は選ばれた種類に対応した『ControlNet』の処理をするところです。
所定のフォルダに『Model』用のファイルがないとでてこないため、ダウンロード方法などはこちらを参考にしてみてください!
各プリプロセッサや推奨モデルをご紹介します!
あなたの必要な内容だけ見やすくするために、詳細な内容などはタブで開閉できるようにしています。
invert(from white bg & black line)
基本的には自分で絵が描ける人向けの機能ですが、線画やラクガキなどの白黒を反転して『ControlNet』で読み込めるようにする機能です。
invertの詳細な内容はこちら!
一般的な線画は黒い線で白い背景ですが『ControlNet』では白い線と黒い背景を認識するので、その白黒を反転するのが『invert』機能です。
参考画像
参考画像に『invert』を使用します。『Allow Preview』にチェックをつけるとプレビュー用の枠がでます。
『Preprocessor』で『invert(from white bg & black line)』選んで爆弾のようなマークを押します。『Model』は選択しないで大丈夫です。
白黒反転したイラストが生成されました。
この画像を『ControlNet』で使用したい場合は『invert』で生成した画像を『ControlNet』画像としてアップロード。
『Preprocessor』を『None』で線画をイラストに変更するモデル『canny』や『lineart』にします。
その状態でイラストを生成すると線画を使用したイラストが生成されます。
線画を利用した画像
以上が『invert』についてです!
canny
参照画像の輪郭の情報を線画のように抽出し、その情報を元に画像を生成する機能です。
使用例
ご自身で線画を用意できるなら『invert』を利用して『ControlNet』で利用できます。
似たような『ControlNet』で『Lineart』と『softedge』もあるので、違いは別の項目にまとめました!
depth
『Depth』は参照画像の深度(奥行のようなもの)を抽出して、その情報を元に画像を生成する機能です。
使用例
詳細な内容はこのタブから!
プリプロセッサの使用例
~depth leres~
~depth leres++~
~depth midas~
~depth zoe~
『Depth』のプリプロセッサは4種類ありますが、それぞれ深度の抽出度が違います。
〜抽出度〜
『leres++』>『leres』>『zoe』>『midas』
『leres++』が一番精度が高いので、基本的には『leres++』を使用すれば大丈夫です。
ただし、『leres』以上だと背景の深度も抽出しやすいので、特定の対象だけを抽出したいときは『zoe』以下にするのがオススメになります。
生成画像が深度マップの影響を受けやすいので、変なイラストになる時は『Control stepの補足』の方法を利用してみてください!
inpaint
参照画像の黒くマスクされた部分を描き直す機能です。
イラストの一部を修正したいときにオススメな機能になります。
使用例
~inpaint global harmonious~
~inpaint_only~
『inpaint global harmonious』はマスク範囲外も修正内容に合わせて多少変化がでます。
『inpaint_only』はマスク範囲内だけ変化する違いがあります。
操作方法など詳細な内容はこのタブから!
inpaintは、黒く塗りつぶした部分を違和感なく描き直してくれます。
今回の生成画像の呪文には『笑顔』、『長い髪』、『金髪』を入れて生成しています。
長い髪で笑顔な女性のイラストになり、元が茶髪なので『金髪』はあまり反映されていません。
このようなイラストの一部だけを違和感無く直したいときに便利な機能です。
下処理画像の作り方
お使いのペイントツールで参照画像を用意してもいいのですが、webuiの画面でも簡単に作ることが可能です。
画像の右側にあるペンのマークを押すと黒いペンがでてきて、押すと出てくるバーでペンの太さが変更可能になります。
あとは塗りつぶしたいところをクリックしながらなぞれば黒く塗れます。
Lineart anime
参照画像の輪郭の情報を線画のように抽出し、その情報を元に画像を生成する機能です。
使用例
~Lineart anime~
~lineart_anime_denoise~
『Lineart』と『Lineart anime』で2種類あります。
『Lineart anime』はイラストを中心に学習したモデルなので、『ControlNet』用画像がイラストなら『Lineart anime』で違うなら『Lineart』と使い分けするといいと思います。
ご自身で線画を用意できるなら『invert』を利用して『ControlNet』で利用できます。
似たような『ControlNet』で『canny』と『softedge』もあるので、違いは別の項目にまとめました!
Lineart
参照画像の輪郭の情報を線画のように抽出し、その情報を元に画像を生成する機能です。
使用例
『Lineart』と『Lineart anime』で2種類あります。
『Lineart anime』はイラストを中心に学習したモデルなので、『ControlNet』用画像がイラストなら『Lineart anime』で違うなら『Lineart』と使い分けするといいと思います。
ご自身で線画を用意できるなら『invert』を利用して『ControlNet』で利用できます。
似たような『ControlNet』で『canny』と『softedge』もあるので、違いは別の項目にまとめました!
詳細な内容はこのタブから!
~Lineart coarse~
~Lineart realistic~
~Lineart standard~
『Lineart』には3種類のプリプロセッサがありますが、線の抽出の仕方が違います。
『coarse』は手書きのような線画、『realistic』は元の画像に忠実な線画、『standard』は立体感を線の太さで表現しているような線画です。
個人的な印象ですが、キャラだけを『ControlNet』で利用するなら『realistic』で、背景も含めて利用したいなら『standard』がいいと思います。
mediapipe_face
参照画像の表情を抽出して、その情報を元に画像を生成する機能です。
使用例
mlsd
参照画像の直線部分の情報を抽出して、その情報を元に画像を生成する機能です。
使用例
normal
参照画像の法線マップ(凹凸や溝のような立体感)の情報を抽出して、その情報を元に画像を生成する機能です。
使用例
詳細な内容はこのタブから!
~normal_bae~
~normal_midas~
プリプロセッサが2種類ありますが『midas』のほうは精度が悪い印象なので、アップデートされなければ『bae』を使用するのがオススメです。
openpose
参照画像のポーズを棒人間のような情報へ変換して、その情報を元に画像を生成する機能です。
使用例
詳細な内容はこのタブから!
~openpose~
~openpose_face~
~openpose_faceonly~
~openpose_full~
~openpose_hand~
『openpose』のプリプロセッサは5種類ありますが、特徴がハッキリ違います。
~openposeの違い~
- openpose
- ポーズのみ
- opsenpose_face
- ポーズ+表情
- openpose_faceonly
- 表情のみ
- openpose_full
- ポーズ+表情+手
- openpose_hand
- ポーズ+手
基本的には『full』で表情を指定したくないなら『hand』にすることが多いと思います。
reference
参照画像のイメージを活かして新しい画像を生成します。
キャラクターに使用すると似たようなキャラで呪文を反映するため、簡易的な『LoRa』など学習モデルに近い使い方が可能です。
使用例
呪文に『着物』を入れていますが、元の『ボディースーツ』ではなく『着物』になりキャラクターも似た雰囲気になっています。
詳細な内容はこのタブから!
~reference_adain~
~reference_adain+attn~
~reference-only~
『reference』のプリプロセッサは3種類ありますが、『only』以外はキャラクター以外の情報も取得するので他は使用しないで大丈夫です。
scribble
参照画像をラクガキ風に変換して、その情報を元に画像を生成する機能です。
ご自身でラクガキみたいな絵が描けるなら『invert』を利用して『ControlNet』で利用できます。
使用例
詳細な内容はこのタブから!
~scribble hed~
~scribble pidinet~
~scribble xdog~
プリプロセッサが3種類ありますが、線の抽出度が違います。
〜抽出度〜
xdog>hed>pidinet
xdogは細い線画みたいな情報で抽出してくれますが、『ControlNet』には類似機能が多数あるのでそちらを使うほうがわかりやすいと思います。
『scribble』は、自身で参照画像をイラストにしたい場合や、『hed』以下のプリプロセッサにして元画像から少し変化したイラストを作成したいときにオススメです。
seg
参照画像の物体ごとの情報を抽出して、その情報を元に画像を生成する機能です。
使用例
詳細な内容はこのタブから!
~seg_ofade20k~
~seg_ofcoco~
~seg_ufade20k~
プリプロセッサが3種類ありますが、抽出のアルゴリズムが違うようです。
公式サイトなどで詳しい違いなどの情報がないので、上の画像から抽出度の高さを決めました。
〜抽出度〜
ofcoco>ofade20k>ufade20k
そこまで大きな違いはなさそうなので、現状は『ofcoco』を使用すればいいのかなという印象です。
shuffle
参照画像の情報に少し変化を加えて、その情報を元に画像を生成する機能です。
絵を少し変化させたい時や、テクスチャーの利用や色味を調整したい時にオススメになります。
使用例
詳細な内容はこのタブから!
『shuffle』の変化度は『Preprocessor Resolution』で強弱できるので、『Pixel Perfect』はオフにするほうがいいです。
画像の変化以外にも、なにかと混ぜるような使い方をする時にも便利な印象です。
加工したい画像を用意して『img2imgタブ』で作業します。
img2img用画像
上の画像を『img2img』にアップロードします。
このイラストの雰囲気を変えるために別の画像を用意しました。
合成用画像
外なのにくすんだ色味が気になったので青くてザラザラした画像を合成します。
今回は『ControlNet』用に加工済み画像なのでプリプロセッサを『none』にしてモデルを『shuffle』にしていますが、『ControlNet』用画像に変化を入れたければプリプロセッサを『shuffle』にして生成します。
生成画像
全体的に青い色味になって細かい描きこみが増えた画像になりました。
このようにイラストに変化を加えたい時に利用できる機能が『shuffle』です。
softedge
参照画像の輪郭の情報を線画のように抽出し、その情報を元に画像を生成する機能です。
使用例
ご自身で線画を用意できるなら『invert』を利用して『ControlNet』で利用できます。
似たような『ControlNet』で『canny』と『Lineart』もあるので、違いは別の項目にまとめました!
詳細な内容はこのタブから!
~softedge_hed~
~softedge_hedsafe~
~softedge_pidinet~
~softedge_pidisafe~
『softedge』は4種類ありますが、個人的には『hed』が一番自然な線で細かい部分の抽出してくれるので使いやすいと思います。
t2ia
『ControlNet』用画像を選んだプリプロセッサの加工をしてその情報を元に画像を生成する機能です。
SEEDを固定したり『img2img』で利用すると使いやすいかと思います。
使用例
~t2i1_color_grid~
~t2ia_sketch_pidi~
~t2ia_style_clipvision~
個人的に使いづらい機能ですが『sketch』は『ControlNet』の背景をいかしたようなイラストになるので利用することがあります。
threshold
参照画像モノクロに変えて、その情報を元に画像を生成する機能です。
『none』以外の選んだモデルによって生成画像が変化します。
使用例
tile
参照画像をプロンプトに合わせて変えたり、SEED固定や『img2img』利用して参照画像の印象のまま細部の描きこみを増やしたりキレイにアップスケールできる機能です。
使用例
呪文に『金髪』と『青い目』を入れており、参照画像と呪文を合わせたようなイラストで細部の描きこみも増えています。
このように参照画像の印象を残したまま拡大や変化できるので非常に使いやすい機能です。
詳細な内容はこのタブから!
~tile_resample~
~tile_colorfix~
~tile_colorfix+sharp~
『tile』は3種類ありますが、イラストの描きこみ度が変わっている印象です。
個人的には以下の順で変化度が違うので、どれくらいイラストの印象を変えたいかで変えるといいと思います。
〜描きこみ度〜
colorfix+sharp>colorfix>resample
『tile_colorfix+sharp』はアップスケール時に『tile』のぼやける症状を抑えるためのプリプロセッサということなので、アップスケール時は『tile_colorfix+sharp』を利用するほうがよさそうです。
ip2p
『○○を○○にして』という呪文を反映させやすくする機能です。
プリプロセッサは『none』の状態でモデルだけ選択して使用します。
使用例
『SEED』固定したものや『img2img』で利用しやすいかと思います。
使用例では『img2img』を使用して、呪文に『髪を金髪にして、目を青い色にして』という呪文を入れて生成しています。
canny・softedge・Lineartの違い
どれも輪郭を線にするような機能で違いがわかりづらいので、画像の比較や簡単な特徴をまとめました。
〜元画像〜
~下処理画像~
~生成画像~
~それぞれの特徴~
- canny:
- 線の数が多くより詳細になるが、線が集まっている部分は元の画像より変化しやすい。
- softedge:
- 抽出する線が太いため細かい隙間などは苦手だが、比較的に元のイラストに近い絵になりやすい。
- Lineart:
- 元の線がハッキリしていると細くて忠実な線を取得するが、背景などの細い線やぼやけた線は抽出されづらい。
それぞれ上記の特徴がありますが、使い分けが面倒なら『softedge』が一番使いやすいと思います。
『softedge』が合わない時は、参照画像の線がハッキリしていないなら『canny』で、ハッキリしているなら『Lineart』みたい変えるのがオススメです!
状況別のオススメControlNet
『ControlNet』の種類が多くて悩む人も多いと思うので、状況別の個人的にオススメなプリプロセッサをご紹介します!
■イラストに使いやすい機能
〜Depth〜
〜openpose〜
〜softedge〜
■ある程度絵が描ける人向け機能
〜Lineart〜
〜scribble〜
■使いこなすと便利な機能
〜inpaint global harmonious〜
〜reference〜
~shuffle~
〜tile_resample〜
以上が『ControlNet』についてでした!
人気記事一覧
おわりに
『ControlNet』についてご紹介しましたが、いかがでしたでしょうか?
個人的に調べてると同じ記事で全モデルを紹介している記事がなくて、色々な記事を調べるのが大変だなと思って今回の記事を作りました。
作ってみたら種類が多すぎて逆にわかりづらい感じもするし、作るのメチャクチャ時間かかって大変だったので超後悔(笑)
見やすいと思ってくれる人がいたら嬉しいなと思いながら記事を投稿します!!!
本記事は以上になります。
長文を読んでお疲れだと思いますが、最後まで読んでいただきありがとうございます!
また次の記事でお会いしましょう!!!
明日は何を書こうかな?
コメント