見出し画像

【親記事】A1111でのControlNet 1.1.400の導入と内容まとめ


 Controlnet は画期的な画像生成方法として一時期話題になりましたので知っている方も多いと思うのですが、簡単に説明しますと。

 ランダム性の高いはずのAIイラスト生成の中で、ポーズや構図を具体的に指定して生成できるようになる拡張機能です。

 最近 ControlNet 1.1.400 にバージョンアップされたこともあり、再び注目が集まっています。

 SD1.5モデル向け と SDXL向けでまた違ったりと少々ややこしくなってますので、枝記事を使いながらまとめていければと思っています。

 また、構図やポーズの指定方法にも様々な物がありますので、そのあたりも順番に説明していきます。






はじめに



 AUTOMATIC1111 WebUIVer1.6に上がったのは記憶に新しいところですが、本来はそれに合わせて ControlNet もVerアップするはずだった、という話をききました。

 そういう意味でも、AUTOMATIC1111 は最新のものをお使い頂いた方が良いかと思います。

https://note.com/hcanadli12345/n/naa500c1a2966

↑↑↑AUTOMATIC1111の簡単な導入法を解説した記事はこちら↑↑↑



 他のアプリケーションでも、可能な限り最新版で対応したいところですね。






Controlnetをインストールする



 まずは早速、インストールしていきましょう。

 方法はいろいろありますが、今回は配布者さんが解説されている一番ポピュラーな方法でご説明します。

こちらの内容をやっていきます。



 WebUIを起動しExtensionsタブをクリックします。

 Install from URL タブをクリックし、URL fpr exrension's git repository の欄に以下の内容をコピペしてください。

https://github.com/Mikubill/sd-webui-controlnet.git

 最後にインストールボタンを押します。

 インストールの読み込みが完了し、Installボタンの下に

Installed into D:\A1111_20230901\Packages\Stable Diffusion WebUI\extensions\sd-webui-controlnet. Use Installed tab to restart.

 と出ればインストールは完了しました。


 WebUIを再起動して反映させましょう。
 Installed タブをクリックし、sd-webui-controlnet にチェックが入っているのを確認したら、Apply and quit をクリックします。



 上記のページで紹介したStability Matrix を使ってWebUIを扱っている場合は、ここで Stability Matrix の画面で Launch を押して起動しなおす必要があります。



 再起動できましたら、txt2imgimg2img の画面内、左下の方にコントロールパネルのUIが追加されています。

展開されたUI

 ここから先は、ここをクリックして展開したUIを見ながら解説していきます。






専用のモデルをDLしてセットする



 拡張機能そのものはインストールできましたが、そこで扱うための専用のモデルが必要です。

 銃はあるけど、弾が無いようなものですね。



 以下のサイトでDLできますが、気を付けて欲しいことが一つ。

 右クリック→名前を付けてリンク先を保存使わないでください。


 下の画像のように、ファイルサイズがあるあたりをクリックすることでダウンロードが始まりますので、この方式でダウンロードしてください。

 名前を付けてリンク先を保存、では失敗する可能性があるとのことです。






Controlnet従来の1.1モデルのダウンロード先



 こちらは最終更新が5か月前くらいのものばかりですので、既にこれまで も Controlnet を使ってきた方は既にお持ちかと思いますのでご安心ください。

 ファイル名最後が.pthという拡張子になっている物をダウンロードしてください。
 全部で14個あります。

 これらはSD1.5用として使用できます。






SD1.5用のT2I-Adapter のモデルをダウンロード先



 T2I-Adapter は一見ControlNetと重複した機能に見えるかと思いまが、技術としては別物です。
 ただ、WebUIでは ControlNetの拡張機能 が T2I-Adapter モデルにも対応してくれているため、同じような感覚で使えます。

 こちらはSD1.5用のモデルになっています。

 色々なモデルはあるのですが、WebUI拡張機能の Control Type 一覧の中にある T2I-Adapter に入っている Preprocessor 3種類用のものは緑で下線を引いたものになっています。

 現状のWebUI のControlNetの対応状況ですと、他のモデルは無理に入れる必要はないと思います。

 Canny や OpenPose なんかも全部試しましたが、再現度はイマイチでした。
 WebUI 以外の環境でならちゃんと使えるかもしれませんので、そういった環境ならば是非試して使い勝手を教えて欲しいですね。


 SDXL 用の T2I-Adapter モデルは次の「Controlnet 1.1.400用モデルのダウンロード先」の中に含まれていますので、このまま進んでください。






Controlnet 1.1.400用モデルのダウンロード先


全部で32個あります


 多すぎん???



 一覧でズラっと見ると眩暈がするので、私なりにまとめました。

 基本的には SDXL用のモデルばかりで、紫の文字で書いたものだけはSD1.5用のモデルのようです。
 同じ名前のモデルでも、サイズごとに複数あるものがありましたのでまとめてあります。

 まだまだSDXLは黎明期ですので、いろいろな方が様々なアプローチで試行錯誤している状況です。
 この中から、いずれ定番のものが出来てくるのかもしれませんね。

 数も多くて重いモデルばかりですので、SDXL を WebUI で使いたい方だけダウンロードすれば良いと思います。





ダウンロードしたControlnet のモデルを設置する



 公式サイトではこのように書かれています。

stable-diffusion-webui\extensions\sd-webui-controlnet\models

stable-diffusion-webui\models\ControlNet

 のどちらかに入れてくれれば良いそうです。




 Stability Matrix を使ってインストールした方は、インストールしたフォルダ内に Packages というフォルダがありまして、その中に stable-diffusion-webui のフォルダが格納されています。


A1111_20230901\Packages\stable-diffusion-webui\extensions\sd-webui-controlnet\models


D:\A1111_20230901\Packages\stable-diffusion-webui\models\ControlNet

 
 このどちらかで良いので、私は Packages\stable-diffusion-webui\models\ControlNet の方に入れています。

 SD1.5 と SDXL とで使い分けるというのも良いのかもしれません。





ControlnetのUI説明



 最初に言いました通り、Controlnetでは様々な方法によって構図やポーズを指定したり、絵の要素などを追加反映させたりすることができます。

 まずはその基本的なUI部分を解説しておきます。
 今後、どのバーを調整すればいいのか、といったときに見てもらえれば概ね扱えると思いますよ。


 先ほどのUI画像では縦長すぎるので、説明のために上部、中部、下部に画像を分けて説明をしていきますね。





UI上部の説明


 ここではControlnetの機能を複数同時に使いたい場合に使い分けるタブがありますね。

 ポーズや構図を画像で指定する場合に使う画像をドロップインできる大きな枠もあります。
 また、Controlnetそのものを有効化するチェックもあり、使用頻度の高いUI部分ですね。

 EnablePixel perfect にはとてもお世話になります。

 Allow Preciew のところにある花火アイコンは、UI中部で preprocessor を選んだ際に表示されることがあるアイコンです。
 そのアイコンを押すことでプレビューを見ることができるようですね。
 私はあまり使ったことがありません。


 また、バッチ処理に関しては私も詳しくないので説明分と和訳を記載しておきます。

Batchモードとは、すべてのユニットを一括処理するための機能です。各ユニットにバッチディレクトリを指定するか、img2imgバッチタブの新しいテキストボックスをフォールバックとして使用できます。テキストボックスはimg2imgバッチタブにありますが、txt2imgタブでも画像を生成するために使用できます。

この機能は、gradioユーザーインターフェースでのみ利用可能です。カスタムバッチスケジューリングのために、APIを何度でも呼び出すことができます。

GitHub - Mikubill/sd-webui-controlnet: WebUI extension for ControlNet






UI中部の説明


 ここでは Controlnet の機能をクリックで簡単に切り替えられます。

 基本的には、上の一覧の中から機能を選んでチェックを入れると、下のPreprocessor と それに対応した Model が自動で選ばれます。

 その間にある花火のようなアイコンが、先ほど説明したプレビュー機能を使いたい時に押すボタンですね。


 Preptocessor というのが機能名なわけでして、有名なポーズ指定のOpenPose なんかもここにあります。



 最下段の3本のバーですが。

  1. Control Weight はコントロールの強さ

  2. Starting Control Step は全体ステップを0~1とした際の開始タイミング

  3. Ending Control Step は全体ステップを0~1とした際の終了タイミング

 となっています。
 0~1はつまり、0~100%と考えれば理解しやすいかと思います。






UI下部の説明



 コントロールモードでは、プロンプトを重視するか、コントロールネットを重視するかを選ぶことができます。
 基本、バランスで問題ないでしょう。

 リサイズモードは、上段で参考画像を入れた際、その画像を適用するサイズ感を選択できます。

 最後のプリセットでは、ここまでの設定内容を名前を付けて保存し、いつでも呼び出せるようになります。
 漫画を描く際など、特定の設定をよく使うという場合には便利な機能ですね。







実際に使用する方法



 細かい機能毎の話は SDXLSD1.5 向けを分けてご紹介したいので枝記事で行うとして、ここでは基本的な使い方を書いておきます。

 ここでは OpenPose を例に出しておきます。


Source画像

 今回はこちらのリアル系モデルで作成した画像からポーズを抽出し、普段の自分の絵柄でのイラスト画像を作成します。

 このように、元となる画像を Source(ソース)画像 といいます。

 OpenPoseに関しては枝記事の個別紹介部分で詳しくご紹介します。
 ひとまず、一通りの作成方法を見てくださいね。


 Txt2Img の左下から、ControlNet をクリックして展開。

 画像をドラッグ&ドロップし、EnableにチェックしてControlNetを有効化させます。

 グラボのメモリが心もとない場合は、Low VRAM にチェックを入れれば多少遅くなりながらも ControlNet を動作させやすくなるでしょう。


 一覧から OpenPose をクリックすると、PreprocessorModel が自動で選択されます。
 細かい内容を変更したい場合は、ここをクリックしてプルダウンから内容を変更してください。
 そのあたりは枝記事で細かく解説していきます。


 Control Weight初手1のままでOK
 強すぎた場合に調節すれば良いです。

 Starting Control Step  Ending Control Step も作成ステップの最初から最後まで影響させたいので、そのままでOK。


 Control Mode も基本、バランスのままで大丈夫です。

 Resize Mode は Source(ソース)画像 と作成予定のサイズがどのくらい比率が違うかで選択を変える必要があります。

 今回は同じ比率ですので、Pixel Perfect にチェックを入れるだけでOK。
 サイズ感はこれだけで合わせてくれます。


 とりあえず、この状態で prompt を入れてGanarete ボタンを押せばポーズに沿ったイラストを作成してくれるのですが、その前にプレビュー機能も見ておきましょう。






プレビュー機能でInput画像を確認する方法



 OpenPose を選択した状態で、Allow Preview にチェックを入れ
 火花アイコンをクリックする。

 すると、Source画像からポーズを抽出された棒人間の画像が横に見えるようになりました。

 このように、要素を抽出した画像を Input 画像 もしくはdetectmap と呼びます。
  この Input 画像はOpenPoseの棒人間以外にも、Preprocessor の機能によって様々なものが存在します。

Source → Input → Output

 必要な動作のために、それに応じた機能の選択をしていく為にも、どのような要素を抽出しているのか知ることは大きな指針になります。

 また、Controlnet がどうもうまく機能していない気がする時とかは、このInput画像を見れば正しく要素が抽出されているのかを確認できるので便利です。






実際にイラストを生成してみる



 それでは、実際にイラストを作成してみましょう。
 先ほどの OpenPose の設定のまま、promptを入れて画像を生成してみました。


 自作マージモデルに、自作の絵柄LoRAも入れて作成しています。

 作成した画像の下に、見えにくいですがInput画像も同時に生成されています。
 今回は Hires.fix での 拡大i2i の段階も経ているため、余分にもう1枚作成されていますね。

 こちらのサムネイルをクリックすることで、Input 画像を保存できるようになります。

画像を開いた画面から右クリック ➡「名前を付けて画像を保存」ができる



「いや、別にこんなの要らんのやけど???」

 とか思いました?

 でも実はこの Input 画像 を流用することで、Source画像を使わずにポーズ指定をすることができるのです。

 抽出する手間を省くことができますし、Input画像をネットでダウンロードしてきて使うこともできるようになります。

 次はその方法を覚えておきましょう。






Input 画像から直接画像を生成する方法



 大事なことを先に言っておくと、Input画像 から直接イラストを生成するなら、Preprocessor の欄は none(無し) にしておいてください。


 まずは用意した画像をドラッグ&ドロップし、OpenPoseを選択するところまでは同じです。

 そうしたら、Preprocessor 部分をクリックして、None を選択します。

(game character portrait), character design facial expressions, same description and outfit, white background, three view drawing, character sheet, same description and outfit, white background, In the same outfit, the same person., 1_girl, (pink ballet tutu:1.5), slender body, (two side up, pink medium hair:1.3),heart-shaped_hair_clips, flower_pattern_hair_rubber, small breasts, Cute, kawaii, Girly, smile, BREAK

今回使用したprompt


 無事、ゲームのキャラクターシートの三面図風の画像を出すことができました。
 キャラクターLoRAの素材を作る際には重宝する機能ですね。

 今後、こういったInput画像の配布もメンバーシップ向けに行う予定です。
 ひとまず、Controlnet の基本的な使用法の解説を終わります。






【枝記事】ControlNet の機能を用途別に全て解説








Setting画面の翻訳画像


 一応確認しておきたいのは水色文字で、まぁ放置でいいでしょっていうのは紫文字で書いてあります。

 detectmap(Input画像)を毎回 画像としてフォルダに保存したい 場合にはチェックが必要です。








ComfyUIと同じ画像が出せるようにしたい場合(参考動画)


 WebUIがVer1.6でSDXLにちゃんと対応できるまでは、SDXLの画像はComfyUIを使うことが多かったです。
 WebUI と ComfyUI での作成結果を揃えたい場合、こちらの動画が参考になるかと思います。

この記事が気に入ったらサポートをしてみませんか?