#contents
*ControlNetとは [#sb63d446]
**概要 [#t6c08e50]
現在のAI絵において、最も基本的な指示の仕方はtxt2img。テキストで指示文(プロンプト)を与えて画像生成する方法だ。
しかしテキストによる指示だけでは領域の指定がしづらいため、構図やポーズを細かく制御するのが難しい。

ControlNetは、それを補うための追加の指示方法。
略して「CN」と呼ばれることもある。
画像を参照させることで、生成結果を制御する。
テキストによる指示文に、ControlNetによる画像参照も併用すると、構図やポーズなどに関する指示をより具体的に与えることができ、ユーザーの希望に近い結果を得やすくなる。

**ControlNetのメリット [#y8bc4885]
|~ControlNet|~img2img【参考】|h
|指定した要素をトレースできる|トレース対象を選べない|
|-線画に対して超強力に着色可能&br;-画像から線画を抽出可能&br;これを利用して 画像→線画→再着色 で全く別の色にもできる&br;-画像からポーズだけ抽出して別人や別衣装を適用可能&br;|-元画像の「色」を強く拾う&br;-だから線画に対して着色する能力が弱い&br;雑でもいいから人間があらかじめ多少塗ってあげて、色の参考にさせる必要あり&br;-ポーズや構図を維持しつつ別衣装を着させようとしても、元画像の色が強く残る|
|条件付けやモデルに作用する&br;LoRAの重ね掛け同様、他のモデルやプロンプトと競合して出力品質に影響を及ぼすことがある|キャンバスの初期値をダミー画像から元画像に差し替えるだけ&br;出力品質はt2iと同程度|

**よくある誤解 [#jb0278ed]
-「なるほどimg2imgの上位互換か」
-「i2iでよくね?」

違うんだよかーちゃん!
ガンキャノンとガンタンク
侍と忍者を比べるようなもんだぞ
色情報を拾うか拾わないかは用途次第で長所にも短所にもなる

*導入方法 [#d45e60d6]
**拡張機能の導入 [#ie96a64d]
ツールによって異なるが、中には最初から用意されている場合もある。
-1111:
拡張機能「sd-webui-controlnet」を導入する必要がある。
https://github.com/Mikubill/sd-webui-controlnet
手順は[[一般的な拡張機能の導入方法>Extensions#install_from_URL]]と同様。
#fold(1111に拡張機能を入れるのは今回が初めて…という傾奇者向けの詳しい説明){{{
1111に拡張機能を入れるのは今回が初めて…という傾奇者向けの詳しい説明
+1111を起動後にExtensionsのタブを開く
+Install from URLのタブを開く
+一番上の欄(URL for extension's git repository)に
#code(,nonumber){{
https://github.com/Mikubill/sd-webui-controlnet
}}
をコピペして&color(white,#ce6400){'' Install ''};ボタンを押す
数秒立つとInstallボタンの下にDL完了を知らせるメッセージが出る
+Installedのタブを開く
+&color(white,#ce6400){'' Apply and quit ''};を押す
+あらためて1111を起動する
}}}
txt2imgやimg2imgの左下に[ControlNet v◯◯ ◀]のアコーディオンパネルが追加される。
-Forge/reForge/Forge Classic:
ビルトイン拡張機能として「sd_forge_controlnet」があらかじめ同梱・組み込みされている。
txt2imgやimg2imgの左下に[ControlNet Integrated ◀]のアコーディオンパネルがある。
-ComfyUI:
ControlNet用のノードが標準でいくつか用意されている。
--「ControlNetモデルを読み込む」: 
ControlNet用モデル(cannyやopenposeなど)を読み込むためのノード。
右クリック→ノードを追加→ローダー→ControlNetモデルを読み込む
--「ControlNetを適用」: 
ControlNetを適用する強さなどを制御するためのノード。
右クリック→ノードを追加→サンプリング→コントロールネット→ControlNetを適用
--しかしこれらだけでは、画像からControlNet用の参照画像を作ること(=前処理、プリプロセス)ができない。
実用性を考えると、
「ControlNet Auxiliary Preprocessors (comfyui_controlnet_aux)」
https://github.com/Fannovel16/comfyui_controlnet_aux
も導入する必要があるだろう。
--また、reference only(ReferenceOnlySimple)だけはComfyUI_experimentsというカスタムノードパッケージに分けられている

**ControlNet用モデルの準備 [#j1c0dec2]
***プリプロセッサ [#w254dba3]
-Stable Diffusion web UI系(1111/Forge/reForge/Forge Classicなど)では、使用する際に自動的にDLされる仕組みになっている。なのであまり気にしなくて良い。
-ComfyUIでは: (情報求む)

***ControlNet用モデル [#tf592add]
ComfyUIでは、ComfyUI Managerを利用して導入すると楽。
ComfyUI Manager→Model Manager→「Type: controlnet」で絞り込み

手動で用意する場合は、[[Civitai>https://civitai.com/models]]やHugging Faceなどから探す。
txt2imgやimg2imgで利用するモデル系統に合わせて探すこと。
IL用のモデルにSD1.5用LoRAを適用しても効果を得られないように、
txt2img用モデルとControlNet用モデルにも相性がある。

-IL用
他にもいくつかあるが、代表的な物を紹介。
--Illustrious-XL ControlNet Openpose
https://civitai.com/models/1359846
--Illustrious-XL Canny
https://civitai.com/models/941482
-anyTest
IL用、兄魔神4用など。
https://huggingface.co/2vXpSwA7/iroiro-lora/tree/main/test_controlnet2
プリプロセッサの設定なしでいろいろとできるのが特長。

DLしたControlNet用モデルは、以下の場所に置く。
 models\ControlNet
>1111の場合は、下記の場所でも良い。
 extensions\sd-webui-controlnet\models
同様に、Forge系(Forge/reForge/Forge Classicなど)の場合は、下記の場所でも良い。
 extensions-builtin\sd_forge_controlnet\models


*動作テストという名のチュートリアル [#dbc00332]
※SD1.5当時の内容なので注意。
**(例題1) 棒人間→画像 (none + openpose) [#x842b65e]
&ref(./op_test.png,20%,棒人間);
この棒人間のポーズを、生成画像に反映させてみよう。
#fold(もっと見る){{
+まずは上の棒人間画像を保存
+txt2imgの通常の範囲の設定を行う
|モデル|お好みで。ただしSD2.xベースのモデルやWD1.5には未対応。&br;良い結果を得られなかったら他のモデルで試してみよう|
|プロンプト|1girl, solo, smile, thumbs up, BREAK, red and yellow sunburst background,|
|ネガティブ|(worst quality:1.4), (low quality:1.4), (monochrome:1.1),|
|画像サイズ|512x512|
|ステップ数|15 (動作確認なので時間短縮のために)|
|枚数|合計6 (多少のガチャ要素があるので)|
+txt2imgの左下、scriptの上辺りに [ControlNet ◀] のパネルがある。
クリックして開き、棒人間画像をドラッグ&ドロップ
+ControlNetのパラメータを設定していく
|Enable|☑ON|ControlNetの電源スイッチ的なもの。&br;ControlNetを利用する際は当然ONにする。逆に普段はOFFにしとこう|
|Preprocessor|none|前処理の内容。今回はもう棒人間を用意してあるから前処理は不要。&br;なのでnoneにする。&br;としあきが触ってない限りデフォルトでnoneだけどね|
|Model|control_v11p_sd15_openpose_fp16&br;もしくは、1.0用である「control_openpose-fp16」でもOK|処理内容の種類。今回は棒人間用のもの|
+&color(white,#ce6400){ ''Generate'' };だ!

元画像にあった棒人間のポーズや構図が反映されていれば成功だよ
>困った時は
-効果が全く出ない(ポーズや構図が全く反映されてなさそう)場合は、まずStable Diffusion web UIを最新版に更新してみてね
}}

**(例題2) 画像→線画→画像 (canny + canny) [#na106249]
&ref(./pony_black.png,20%,黒髪ポニテ);
このポニテ少女の黒髪を、金髪に塗り替えてみよう。
#fold(もっと見る){{
#ref(./pony_i2i.png,around,20%,img2imgで金髪にしたもの)
左の画像はimg2img(ノイズ除去0.75)を使って金髪にしたもの。
i2iは元画像の色に従うので、暗い黒髪から明るい金髪への塗り直しとなると、ノイズ除去の値をこれくらい高くする必要がある。
そうなると元画像からの乖離も大きくなってしまう…というのは周知の通り。
人間がある程度金髪に塗ってから髪だけInpaintするとか、フォトショで範囲を指定しつつ色置換する等の手もあるけど…
今回はControlNetのcannyを試してみよっか。
#clear
+黒髪ポニテの画像を保存
+txt2imgの普通の部分の設定
|モデル|お好みで。以下略|
|プロンプト|1girl, solo, upper body, smile, blonde hair, pony tail,|
|ネガティブ|(worst quality:1.4), (low quality:1.4), (monochrome:1.1),|
|画像サイズ|512x512|
|ステップ数|15|
|枚数|合計6|
+[ControlNet ◀] のパネルを開き、黒髪ポニテの画像を突っ込む
+ControlNetのパラメータを設定していく
|Enable|☑ON|そらそうよ|
|Preprocessor|canny|前処理。これを利用して画像から線画にしてもらう|
|Model|control_v11p_sd15_canny_fp16&br;もしくは、1.0用である「control_canny-fp16」でもOK|線画用のモデル|
+&color(white,#ce6400){ ''Generate'' };だ!

結果を見ると、元画像の線がかなり維持されているはずだ(設定次第で調節できる)。
しかし元画像の色がほとんど失われているので「必ずしもi2iの強化版とは言えない」ことも分かるだろう。
}}

**(例題2.5) 編集範囲を限定する(img2imgタブからの利用) [#ecec3c68]
&ref(./pony_black.png,20%,黒髪ポニテ);
例題2では線画を維持しつつ、金髪への塗り直しができた。でも背景および衣装の配色までも、元画像とは大きく異なる結果になってしまったよね。
そこで今回はtxt2imgタブではなく、img2imgタブからControlNetを利用してみよう。
InpaintやInpaint uploadを使うと、編集範囲の限定が可能になる。これにより、髪だけを金色に塗り直しつつ、それ以外の部分を保持することができる。
前回同様にControlNetのcannyを用いるから、髪の線画ももちろん維持できるぞ。
#fold(もっと見る){{
さて今回使うimg2imgタブだけれど、編集範囲の指定はInpaintとInpaint uploadのどちらでも可能。
前者は手動でブラシ塗りしてマスクを作成。後者は(あらかじめ画像編集ソフトなどで作成したグレースケールの)画像ファイルを読み込んでマスクとして利用する…という違いがある。
例えば瞳やリボンのような狭い範囲なら、手塗りのマスクでも十分だから、Inpaintの方が手っ取り早いんだけど…
今回は黒髪を金髪に塗り直したい。範囲が広い上にかなり複雑な形状なので、筆者が画像編集ソフトを使ってマスク画像を作成して用意した。これをInpaint uploadで読み込ませて利用しよう。
+img2img(Inpaint upload)の設定
|モデル|お好みで。以下略|
|プロンプト|1girl, solo, upper body, smile, blonde hair, pony tail,|
|ネガティブ|(worst quality:1.4), (low quality:1.4), (monochrome:1.1),|
|画像(上段)|&ref(./pony_black.png,20%,黒髪ポニテ); |
|画像(下段)|&ref(./pony_mask.png,20%,髪部分のマスク); |
|Mask blur|1|
|画像サイズ|512x512|
|ステップ数|15|
|枚数|合計6|
|Denoising strength|0.8|
ここで2つ注意点がある。
Mask blurは、マスクの境界線を指定ピクセル分だけ「ぼかす」設定だ。マスク箇所とそれ以外を上手く馴染ませる効果を狙って調整する。デフォルト値は4。大抵の場合は4~10くらいでいいだろう。ただし今回は髪のマスクにとても細い部分も含まれているので、0~2くらいの小さめの値が望ましいように思う(個人の感想です)。
Denoising strengthは、元画像にどの程度の変化を加えるかの設定。今回は黒髪から金髪に変化させたいのだが、0.6や0.7程度ではせいぜい茶髪くらいまでしか変化しない。という理由から0.8にしてある。1.0みたいな大胆な値でも一応いけるっぽい。
+[ControlNet ◀] のパネルを開き、黒髪ポニテの画像を突っ込む
+ControlNetのパラメータを設定していく。内容は例題2とまるっきり同じ
|Enable|☑ON|そらそうよ|
|Preprocessor|canny|前処理。これを利用して画像から線画にしてもらう|
|Model|control_v11p_sd15_canny_fp16&br;もしくは、1.0用である「control_canny-fp16」でもOK|線画用のモデル|
+&color(white,#ce6400){ ''Generate'' };だ!
}}

*使い方 [#lfe7d53d]
**パラメータ [#f8539bbb]
(2023/12/11)ControlNet v1.1.422に基づく
|項目|解説|h
|📝(Open new canvas)|既存の画像ではなく自分の手描きで始める場合に利用するボタン。手書き用のキャンバスの設定パネルを表示する|
|New Canvas Width&br;New Canvas Height|手描き用のキャンバスを新規作成する際の幅と高さ。&br;画像ファイルを読み込ませて利用する場合には影響しない|
|Create New Canvas|空(白背景)のキャンバスを作成する|
|📷(Enable webcam)|Webカメラを有効にする|
|⇄(Mirror webcam)|Webカメラの画像を左右反転させる|
|⤴(Send dimensions to stable diffusion)|画像を読み込ませた状態でこのボタンを押すと、画像の幅と高さが、txt2imgやimg2imgのWidthとHeightにコピペされる|
|Enable|ControlNet自体の有効/無効化|
//|Invert Input Color|Invert colors if your image has white background.&br;…と説明にある通りで、背景色が白の際にはON推奨|
//|RGB to BGR|normal mapを利用する際に必要な場合がある|
|Low VRAM|グラボのVRAMが少ない、あるいは大きな画像を出したいのにVRAMが不足するという場合にONにする。&br;デメリットとして画像の生成速度が遅くなる。一度に口に入り切らないから少しずつ齧る…みたいなイメージ|
|Pixel Perfect|ONにすると、Preprocessor Resolutionの値が自動的に調節されるようになる。なのでPreprocessor Resolutionの項目は非表示になる|
|Allow Preview|ONにすると、Preporcessor Previewの表示枠が出現する|
|💥|Preporcessor Previewの表示を更新する|
|Control Weight|[[README.md参照>https://github.com/Mikubill/sd-webui-controlnet#control-weightstartend]]|
|Starting Control Step|~|
|Ending Control Step|~|
|Control Mode|README.mdに[[詳しい説明>https://github.com/Mikubill/sd-webui-controlnet#more-control-modes-previously-called-guess-mode]]がある|
|・Balanced|バランス型。デフォルトはこれ|
|・My prompt is more important|プロンプト重視|
|・ControlNet is more important|元画像重視。1.0ではGuess Modeという名称だった|
|Resize Mode|拡大縮小の種類|
|・Just Resize|アスペクト比(縦横比)を維持せずに拡大・縮小する|
|・Crop and Resize|アスペクト比を維持して拡大/縮小する。はみ出る部分はトリミング(切り取り)される|
|・Resize and Fill|アスペクト比を維持して拡大/縮小する。足りない領域は描き足される|
|[Loopback] Automatically send generated images to this ControlNet unit||
|Presets|よく使う設定の組み合わせをプリセットとして保存/読み込みできる|
他に、Preprocessorをnone以外に切り替えることで出現するパラメータもある。
それらを利用すると、元画像から中間画像を変換・抽出する前処理の解像度や加減を調節できる。
(例えばcannyで線画を抽出する強弱など)

**パラメータ(ComfyUI) [#ib4baebb]
「ControlNetを適用」ノード
|タイプ|項目|解説|h
|入出力|ポジティブ&br;ネガティブ|プロンプト(条件付け)から伸びているラインに挟む|
|入力|コントロールネット|「ControlNetモデルを読み込む」からつなぐ&br;やりたい処理(とベースモデル)にあったモデルを入力しないと破綻する|
|~|画像|Scribble線画情報などを入力する。&br;必要な画像はプリプロセッサによる。&br;comfyui_controlnet_auxで他の画像から抽出することもできる。|
|~|VAE|ベースモデルのVAEをつなぐ|
|パラメータ|>|※適切な設定値はControlNetモデルによって異なる。|
|~|強度|名前の通り。デフォルト値の1.0は強めだがそのままでも割といける。&br;うまくいかなかったら下げてみる。|
|~|開始パーセント|何ステップ目からControlNetをかけるか。&br;ControlNetを複数適用する場合は段階的にかかるようにすると良いかもしれない。|
|~|終了パーセント|何ステップ目でControlNet適用を止めるか。&br;ControlNetモデルによっては、あまり遅くまでかけるとベースモデルと処理がかち合って破綻する場合がある。&br;構図指定系は0.5以下にしても割と効く。|

「ReferenceOnlySimple」ノード(ComfyUI_examples)
|入力|model|画像生成モデル|
|~|refrence|参照画像を「VAEエンコード」して入れる|
|出力|モデル|ReferenceOnly適用済みモデル&br;かなり効果は弱いがモデルだけでも一応有効。&br;例えば半身画を参照させておくと顔が見切れた画像((実写系のモデルの中には顔を隠した自撮り画像でも学習しているのかプロンプトによっては割と高頻度で生成するものがある。))は生成されにくくなる。|
|~|潜在|プリプロセッサが参照する潜在画像&br;モデルと一緒に入力しないとほぼ無意味。&br;この潜在画像ごとサンプラーに入力しないと画風がほとんど反映されない。&br;逆に言うと二次絵を参照させて実写系画像を生成したいときなど画風をあまり反映したくないときはあえて入れないのも手。&br;&br;出力側の潜在画像はインデックス0に参照画像が入った[[バッチ>ComfyUI#q8ddfa60]]になるので、ReferenceOnlyを切るときや出力時には「バッチから(潜在)画像を取得」でインデックス0を捨てる必要がある|
|パラメータ|batch_size|何のパラメータだか分かってないなら「1」で固定する|

**プリプロセッサの種類と用途 [#z5549ea7]
#shadowheader(3,種類と用途の早見表)
|プリプロセッサ名|抽出対象|使用例|用途|h
|none|ー||「前処理いらないよ」という指示。&br;手持ちの線画や棒人間画像から開始する時はこれ|
|binary|||scribbleの閾値付きバージョン。グレースケール系の線画に着色させたい場合とかに使う。&br;閾値を0 or 255に設定すると、大津の手法使って自動でいい感じの閾値が設定される。|
|canny|線画&br;エッジ検出|[[■>https://github.com/lllyasviel/ControlNet#controlnet-with-canny-edge]]|・二次絵の書き換えに全力出せる&br;・canny法と呼ばれるエッジ検出法を使う|
|clip_vison||||
|color||||
|depth|深度情報&br;奥行き|[[■>https://github.com/lllyasviel/ControlNet#controlnet-with-depth]]|・主に実写を使ってやるのに使う。&br;・ズーム写真(POV)のポーズ流用が得意|
|depth_leres||||
|hed|輪郭|[[■>https://github.com/lllyasviel/ControlNet#controlnet-with-hed-boundary]]|cannyより大雑把な輪郭。ソフトエッジ|
|mlsd|直線||家具とか家とかのまっすぐなやつを拾う用|
|normal_map|法線情報((表面の向きのこと))|[[■>https://github.com/lllyasviel/ControlNet#controlnet-with-normal-map]]|3D人形とかをベースにするときにつよい|
|openpose|ポーズ||棒人形。みんな知ってるよね|
//|openpose_hand||棒人形+手。処理するモデルはopenposeでおk。&br;[[一時的に無効化中>https://github.com/Mikubill/sd-webui-controlnet/issues/210]]|
|openpose_hand|ポーズ(手を含む)||棒人形+手|
|pidinet|輪郭||hedと何が違うのかよく分からん|
|reference only|全体的な特徴|[[■>https://github.com/Mikubill/sd-webui-controlnet#reference-only-control]]|・画像のキャラや画風と特徴等を、セットで抽出する。手持ち画像のキャラを登場させることができる(学習不要なので便利)。&br;&color(red){・[[コピー機学習]]で差分画像を作るのに役立つ。&br;・簡易的な学習データ相当としても使える};|
|scribble|ラフ絵|[[■>https://github.com/lllyasviel/ControlNet#controlnet-with-user-scribbles]]|ラフ絵をなんとかする。マウスで丸書いてちょんで顔になる|
//|fake_scribble||入力絵をscribble化。使い道が分からん| →最新のControlNet v1.1.311時点では項目なかったので、一時的にコメントアウト。「使い道わからん」って書いてあるので大丈夫ですよね。
|segmentation|||入力画像を領域分けする。モデルはcontrolnet_seg。実写映像で構図を決めて差し替えに使える。二次絵だとイマイチ読んでくれない。|

#br
#shadowheader(3,用途で選ぶプリプロセッサ)
・簡単にポーズさせたいならopenpose
・塗り絵や色変え表情変えならcanny
・3Dモデルを使ってポーズさせてるならnormal_map
・構図を維持したまま服装や背景を変えたい場合はsegmentation
・線画に色を付けたいならbinary(ModelはScribbleを指定)
#fold(segmentationの実例){{
#ref(./seg_01.jpg,20%,適当に生成)
これを服装をゴスロリにしてお城に移動させると
こうできる
#ref(./seg_02.jpg,20%,服装と背景のプロンプトを書き換え)
}}

#shadowheader(3,補足)
-PreprocessorとModelは基本的にセット、ペアとして考えよう。
例えばPreprocessorをcannyにするなら、モデルにはcontrol_canny-fp16を選ぶ。
-前処理(postprocess)をすっ飛ばしたい場合、つまり手元にある線画や棒人間の画像を読み込ませて実行する場合は、preprocessorをnoneにして、Modelだけを選択する。

**メモや注意点 [#zc570a54]
-モデルとの相性が存在する。というかSD2.x系列のモデル…具体的にはSD2.1やWD1.5は、モデルの作りが大きく異なるため利用できない。
-元画像の影響を強く受けすぎてしまう場合は、Weightの値を思い切って0.5や0.3などに下げてみる。
-線画や棒人間の画像を保存する方法はいくつかある。
--Stable Diffusion web UI画面右のギャラリーから手動で保存する。
--C:\Users\(ユーザー名)\AppData\Local\Temp を覗く。ショトカを作っておくのも手。
ただしこのフォルダは定期的に掃除すべき場所の一つなので、Windowsか何かにいつ掃除されてもおかしくない。
--Settings → ControlNet → Allow detectmap auto saving
をONにして、ページ上部にある&color(white,#ce6400){'' Apply setting ''};を押す。
保存場所はDirectory for detected maps auto savingで指定する。↓の画像参照
&ref(./detectmap_auto_saving.png,5%);

**Multi-ControlNet [#c29d41ce]
-なにそれ?
-どうやって有効化するの?

https://github.com/Mikubill/sd-webui-controlnet#multi-controlnet
&ref(./1677153275141.png,10%);

**m2m [#qa7de1bb]
movie2movie。動画ファイルを読み込ませて、それをベースにAI絵の動画ファイル(.gif形式)を作成する機能。
今のところフレーム間の連続性を補正する機能は無い。単純にバッチ処理で次々とControlNetに送って、最後にgifファイルにまとめている。
seedを任意の値で固定すると、seed=-1 よりはだいぶ良好な結果を得られる(チラつき低減)。
img2imgタブからも利用できるが、ベースとして指定できる画像は1枚だけ。将来的には1フレームずつ自動で送って元絵にできるかもしれない。

有効化する方法
+まずMikubill版ControlNet拡張機能を最新版にしておく
 誘導→[[Extensions#拡張機能の更新方法>Extensions#update]]
+Settings → ControlNet → Allow other script to control this extension
をONにして、ページ上部にある&color(white,#ce6400){'' Apply setting ''};を押す

注意
>動画って基本的にすげー枚数を生成することになる
30fps 10秒の動画ですら300枚だぞ
だから最初は2~3秒くらいの動画にしとけ
あとtxt2imgのWidthとHeightも小さめのサイズにしとけ
16:9なら320x180とか640x360とかね

#fold(使用方法){{
使用方法
+txt2imgのControlNetのパネルを開き、いつも通りEnableをONにする。
画像は読み込ませなくていい。
PreprocessorとModelの指定は必要。
普通の実写動画だったらopenpose+openposeとか、depth+depthとか?
blenderとかで用意した棒人間動画だったらnone+openposeとか?
+Scriptのプルダウンリストからcontrolnet m2mを選択する。
すると[ControlNet-M2M ◀]のパネルが出現する。
+ControlNet-M2Mのパネルを開き、動画ファイルを読み込ませる。
対応しているファイル形式はmp4、avi、webm等。
クリックすればWindowsのエクスプローラーが起動するから、詳細はそこで確認してね。
+Durationのスライダーの作用はよくわかってない…
+いつも通り&color(white,#ce6400){ Generate };で生成開始

動画内の全フレームに対して1枚ずつ自動的にControlNet処理が施されていく
それが終わるととりあえずStable Diffusion web UIちゃんから完了通知が出るけど
実際にはその後animation.gifの作成まで自動で行われる
この時に同名のファイル名が既に存在していると自動的に上書きされてしまうので注意してほしい

>gifファイルはファイルサイズが大きい
息を吸って吐くようにスレへの添付ファイルサイズ上限(8MB)を越えてくる
なのでスレに貼るためには圧縮品質を調整しつつmp4かwebm辺りの動画形式に変換することになるだろう
}}

**ライセンス [#j9186a45]
モデルのライセンスには別途従う必要はあるが、Stable Diffusion等で使われている[[lllyasviel/ControlNet>https://github.com/lllyasviel/ControlNet]]の実装はApache2.0ライセンスなので、ControlNetプログラムの利用自体のみに関して言えば出力画像についての利用制限は特にない。

Apache2.0ライセンスは派生作品(Derivative Works)に対してクレジット表記等を要求しているが、オープンソース“ソフトウェア”の世界ではというか、少なくともApacheライセンスのDerivative Worksとはプログラムそのもののフォーク(私家版)等のことであり、プログラムが出力したデータには及ばない。

またControlNetに含まれるOpenPoseはカーネギーメロン大学(CMU)が開発した商用利用料25,000ドル/円(日本円にして300万円以上)とかいうライブラリが元になっている。
しかし、lllyasviel/ControlNetはあくまでそのクローンであって、%%noob○Iみたいに%%CMUのコードをパクってきて作ったわけではない(ということになっている、今のところ)。
そしてソフトウェアはアートではないので、インターフェースをパクっただけで中身が別物なら著作権侵害にはならないとする考え方が一般的である。GoogleスプレッドシートやLibreOfficeはMicrosoftに訴えられないし((そもそもExcel自体Lotus 1-2-3というかつて覇権だった表計算ソフトウェアから多数の機能を取り込んでいる。))、GoogleはAndroidで約300万行のソースコードうち1万行強をOracle Javaからパクったとして訴えられたが裁判に勝ったし、Android OSのベースとなっているLinuxはUN*Xという商用製品のクローンだが訴えられたりしてい……るが具体的なコード盗用の証拠を挙げられなかったのでスラップ訴訟まがいのものとみなされた。

*よくある質問 [#faq]
**インストールしたのに反映されないんだが? [#v13a46b8]
UIのリロード・リスタートを試してみる。あるいはPCの再起動も検討してみる。
ControlNet のバージョンが Stable Diffusion に対応していないと反映されないことがあったりするらしい…知らんけど。
どうしてもダメならreForge版など内臓済への引っ越しを検討してみる。

**棒人間の対応部位がよくわからない [#gc16bf4e]
こちらの記事内にある画像がわかりやすいのでオススメ
[[機械の目が見たセカイ -コンピュータビジョンがつくるミライ(47) 人物の姿勢推定(1) – OpenPose | TECH+(テックプラス)>https://news.mynavi.jp/techplus/article/cv_future-47/]]
(画像の転載はしません)

**バッチ処理機能はありませんか? [#g99beeda]
1.1にて実装された。
https://github.com/Mikubill/sd-webui-controlnet#batch-mode

**俺のControlNetには○○の機能が見当たらないんだけど… [#d9c90c38]
-ControlNetの拡張機能を最新版に更新せい
-ControlNetの拡張機能を最新版に更新せい
-1111用の「sd-webui-controlnet」と
Forge/reForge/Forge Classicのビルトイン拡張機能「sd_forge_controlnet」とでは
UIや機能に多少の差異がある

**プリプロセッサを適用すると絵が歪む [#x3873840]
仕様。LoRAを強い強度でいくつも適用すると崩壊しやすくなるのと同じ。
それぞれのモデルがバラバラな方向に画像を誘導する結果作画が崩れる。
ControlNetの支配はかなり強いので、精神汚染を食らう絵が出てくる頻度はそこまで高くないが。(出てこないとは言っていない)

&br;

まずはLoRA同様強くかけすぎていないかを確認すること。
構図指定系のプリプロセッサについては、終了パーセント(Ending Control Step)50%程度あるいはそれ以下に下げてしまっても割と効く。
画像生成AIはある程度色分けができるとそれに引っ張られるためだ。

それでもイマイチな場合、ワークアラウンドとしては、プリプロセッサ全部乗せで大まかな構図を出したあとi2iして細部のニュアンスを補うくらいしかない。
構図指定系のプリプロセッサは1パス目でだいたい仕上がるので、2パス目以降ではReferenceOnlyだけなど細部に関わるところ以外のプリプロセッサを外す。
1パス目は最初からラフ画扱いと考えれば、1パス目だけサンプラーをEuler等にすれば処理時間も多少稼げる。
1パス目の画像サイズを縮めると劇的に時間を短縮できるが、画質低下だけでなくControlNetの効きも劇的に悪くなるのでおすすめしない。
ComfyUIなら面倒だが一度ワークフローを組んでしまえば2パス処理もボタン一つで実行できるようになる。

2パスしてもイマイチな場合、顔など目立つところだけさらに条件付けを削って(A)Detailerを薄くかければそれなりにマシになる。



*便利な物 [#c92c3a95]
**(拡張機能) OpenPose Editor [#uf70c8e3]
&ref(./Openpose_Editor.png,15%,OpenPose Editor);
https://github.com/fkunn1326/openpose-editor.git
Stable Diffusion web UI上で2Dの棒人間から画像を作成できる拡張機能。
人数の追加や、ControlNet拡張機能へ画像を送ることも可能。
https://twitter.com/fkunn1326/status/1627173198751211520

**(拡張機能) 3D Openpose Editor [#r28ca223]
&ref(https://user-images.githubusercontent.com/42905588/227674599-21610711-7276-413c-aa36-cc5108e74dc3.png,3D Openpose Editor,30%);
https://github.com/nonnonstop/sd-webui-3d-open-pose-editor
Stable Diffusion web UI上で3Dの棒人間から画像を作成できる拡張機能。
Openposeだけでなく手足のDepth/Normal/Cannyマップの出力にも対応。

**(拡張機能) Posex [#gda86091]
&ref(https://raw.githubusercontent.com/hnmr293/posex/master/image/sample.png,Posex,30%);
https://github.com/hnmr293/posex
Stable Diffusion web UI上で3Dの棒人間から画像を作成できる拡張機能。

**Openpose/Depth/Canny/Landmark用Blenderモデル [#iddea83f]
&ref(./blender.png,Blender);
Blenderで3D人形を操作して画像を作成できる全部入りモデル。
https://toyxyz.gumroad.com/l/ciojz

**ブラウザ上でデッサン人形を動かしてスクショ撮れるwebサイト [#u8465d40]
#ref(./sakana.jpg,around,10%,さかなのポーズ)
>176 無念 Name としあき 23/02/14(火)21:22:20 ID:73xlNJSY No.1066899251 del そうだねx2
>https://webapp.magicposer.com/
>このサイトでポーズ作ったらスクショしてwebuiにコピペして
>さかなー
#clear

**(としあき製) 棒人間ツール [#ac2fdb05]
#ref(./1677080637315.png,around,10%,open_poser_2d)
>238 無念 Name としあき 23/02/23(木)00:43:57 ID:FacyQ2ik No.1069701497 del そうだねx7
>~>この棒人間さん作るのって何かのツールで出力するんです?
色々あるみたいだけど
この機会にちょっとだけアプデしたのを上げる
https://thup.work/miniup/?mode=dl&id=14203
#clear

-棒人間のポーズをマウスで編集して画像保存できる簡易ツール
棒人間の数を追加することも可能
-exeファイルなのでDL時にブラウザに警告されたり、初回起動時Windowsに警告される場合がある
(おめー覚悟できてんのか? セキュリティリスクを承知の上でDL/実行しようとしてんのか? ってこと)
-使用前に同梱のreadmeをよく読んでね

#fold(履歴){{
#ref(./1676878409158.png,around,10%,open_poser_2d)
>4 無念 Name としあき 23/02/20(月)16:33:29 ID:JY/WkoZk No.1068872128 del そうだねx15
たておつシンプル棒人間ツール
ポーズデータが*.jsonだと開くまでどんなポーズかわからないので
pngにポーズを埋め込んで保存/読み込みできるようにしました
他はウィンドウ透明化ON/OFFの実装等々redme参照
https://thup.work/miniup/?mode=dl&id=14167
#clear

#ref(./open_poser_2d.png,around,10%,open_poser_2d)
>9 無念 Name としあき 23/02/19(日)09:34:02 ID:3FNBM1TA No.1068371736 del そうだねx11
たておつ
昨晩上げたシンプル棒人間ツール
なんか殺風景だなと思ったら間違ってメニュー消してたので上げ直し
https://thup.work/miniup/?mode=dl&id=14158
#clear

>324 無念 Name としあき 23/02/18(土)20:42:03 ID:Lc4yjcR. No.1068200555 del そうだねx8
以前上げたシンプルな棒人間ツールの関節の丸が大きいのが気になったのでアプデ
他地味に色々操作追加
改造再配布自由
}}

**(としあき製) セグメント画像作成ツール [#p7b52fd8]
※あぷろだ寿命によるリンク切れ
#ref(./1677156849280.png,around,10%,)
>507 無念 Name としあき 23/02/23(木)21:54:09 ID:gENFNIAM No.1070010214 del そうだねx9
https://dec.2chan.net/up2/src/fu1950923.zip
としちゃんがくれたseg用画像描画ツールのgui改造してみたよ
chatgptちゃんに聞きながらペンサイズ変更GUIと現在選択色と名表示を入れてみた
あと画像読み込みしたら勝手にウインドウサイズ変えるとか(768pxまで)
公開してくれた前二人のとしあきに感謝
#clear

#fold(履歴){{
#ref(./segtool_pentab.jpg,around,10%,ペンタブ対応)
>276 無念 Name としあき 23/02/18(土)14:32:47 ID:rd4xlw9M No.1068074769 del そうだねx8
>としがこないだseg用の画像を書くツールの改造
>自由に改造していいとか言ってた気がするのでペンタブに対応させた
>ペンタブ検出の関係で必要なライブラリ増えたけどれあどめつけたから導入は簡単なはず
>説明に書き忘れたけどctrl+altキーを押しながら左右移動でペン先サイズ変更できる
> 
>もっと使いやすいUIにやろうと思えばできる気はするけど
>GUI組むの本当に苦手なので誰か続きは任せた
#clear

#ref(./1676619788993.png,around,10%,セグメント画像の作成例)
>7 無念 Name としあき 23/02/17(金)16:43:08 ID:VCEU5gRM No.1067769956 del そうだねx20
>GPTちゃんにいろいろ聞いてセグメントの画像を描けるような簡易ペイント的なの作ったよ
>一応ちゃんとセグメントの指定どおりに描いてくれたのは確認
>改造配布などご自由に
#clear
}}

**(としあき製) MMD版ポーズ人形 [#t365ea2a]
%%[[fu1959929.zip>https://dec.2chan.net/up2/src/fu1959929.zip]]%% あぷろだ寿命によるリンク切れ

#ref(./1676689518544.jpg,around,10%,ライン表示とセグメンテーション表示)
>36無念Nameとしあき23/02/18(土)22:51:29 ID:QBc.o.MoNo.1068256309
>MMDポーズ人形のスタンダードの方に材質モーフで輪郭線だけにするのと
>セグメンテーションのpersonの色にする機能追加
>MMMだと静止画出力時に背景透過できるんで合成とか便利かも
#clear

#fold(履歴){{
#ref(./prev.jpg,around,10%,デプスMME適用時)
>124 無念 Name としあき 23/02/18(土)12:48:54 ID:fLqgB9d6 No.1068044809 del そうだねx4
>デプスマップのMME配布してくれてる方がいたのでポーズ人形更新
>深度は手前の白から最奥の黒の範囲をスライダーで適切に設定しないと綺麗なグラデが出ないので注意
#clear

#ref(./1676689518543.jpg,around,10%,ノーマルタイプと法線タイプ)
>30 無念 Name としあき 23/02/18(土)12:05:18 ID:fLqgB9d6 No.1068032007 del そうだねx12
>VRoidベースにしたMMDのポーズ人形作った
>普通の奴と法線マップに対応してる物2つあって
>法線は背景色を(255,128,128)にして出力すればプリプロセッサ通さずに法線マップとして使える
#clear
}}