ControlNetとは 
- この技術のこと。https://github.com/lllyasviel/ControlNet
- 上記を1111上で簡便に利用できるように拡張機能化したsd-webui-controlnet
のこと。
従来のi2iは
- 元画像の「色」を強く拾ってた
- だから線画に対して着色する能力が弱かった
雑でもいいから人間があらかじめ多少塗ってあげて、色の参考にさせる必要があった - ポーズや構図を維持しつつ別衣装を着させようとしても、元画像の色が強く残ってた
一方、拡張機能sd-webui-controlnetを利用すると
- 線画に対して超強力に着色できる
- 画像から線画を抽出することもできる
これを利用して 画像→線画→再着色 で全く別の色にもできる - 画像からポーズ(ボーン、棒人間)だけを抽出して別人や別衣装を適用することもできる
よくある誤解
なるほどimg2imgの上位互換か
i2iでよくね?
違うんだよかーちゃん!
ガンキャノンとガンタンク
侍と忍者を比べるようなもんだぞ
色情報を拾うか拾わないかは用途次第で長所にも短所にもなる
1111上で利用可能な拡張機能版としてはもう一つ
https://github.com/ThereforeGames/unprompted
通称unpromptedもあるのだが、利用者の数と出回っている情報量の都合上、一旦忘れていい。
何かしらの特徴や優位点もあるかもしれないので、もし奇特な人柱あきがいたら情報提供お待ちしております。
最低動作環境 
- VRAM 4GBでも動作報告例あるよ。
- 1111本体を最新版にしておくといいよ
(あんまり古い1111だとControlNetが動作しない恐れがある)。 - 某氏製の通称ワンタッチ版1111を利用している人は要注意。
某氏のページで「追加パッチ_prettytable.bat」が配布されているので、まずは確認を。ワンタッチ版での詳しい手順
81 無念 Name としあき 23/02/16(木)00:23:26 ID:rEoZHy7U No.1067284380 del そうだねx8
ワンタッチでControlNetインストール、実施までは
・追加パッチ_prettytable.bat をDL
・スタート_webui-user,dat と同じ所に配置
・ダブルクリック
・続行するには何かキーを押してください 消える
(以後は通常のAutomatic1111 と同じのはず)
・スタート_webui-user,dat 起動
・拡張機能 URLからインストール
拡張機能のリポジトリのURL に
https://github.com/Mikubill/sd-webui-controlnet
を入力してインストール (設定適応 UIの再読み込み必要かも)
txt2imgの下に ControlNetがあれば成功
拡張機能=Extensions
あとは↓の導入手順の3、4、5を行えばたぶんOK
導入手順 
- 拡張機能sd-webui-controlnet
を導入する
この部分は一般的な拡張機能の導入方法と同様1111に拡張機能を入れるのは今回が初めて…という傾奇者向けの詳しい説明
- 1111を起動後にExtensionsのタブを開く
- Install from URLのタブを開く
- 上の欄に https://github.com/Mikubill/sd-webui-controlnet
を入力して Install ボタンを押す
数秒立つとInstallボタンの下にDL完了を知らせるメッセージが出る - Installedのタブを開く
- Apply and restart UI を押す
- 1111(コマンドプロンプトとブラウザページ両方)を一旦終了
- https://huggingface.co/webui/ControlNet-modules-safetensors/tree/main
control~と名前が付いた723MBモデルが8つあるのでDLする(合計5.4GB)
「火遁の術」「水遁の術」みたいなもので、それぞれ効果の効かせ方と得意な用途が異なるから全部落としとけ
- ControlNet1.1対応はこっちから→https://huggingface.co/comfyanonymous/ControlNet-v1-1_fp16_safetensors/tree/main
「t2i~とか名前がついてるやつは要らないの…?」
それらは「T2I-Adapter」っていう、テスト中の機能のためのモデル。
だから今のところ必要ない。まあファイルサイズ小さいし、DLしといても害にはならないけど…
でも現時点では情報不足で、どんな用途に向いてるのかあんまよく分かってないよ
- \extensions\sd-webui-controlnet\models に突っ込む
- 1111を起動するとtxt2imgやimg2imgの左下
Scripitの上に[ControlNet ◀]のパネルが追加されている
動作テストという名のチュートリアル 
(例題1) 棒人間→画像 (none + openpose) 
- まずは上の棒人間画像を保存
- txt2imgの通常の範囲の設定を行う
モデル お好みで。ただしSD2.xベースのモデルやWD1.5には未対応。
良い結果を得られなかったら他のモデルで試してみようプロンプト 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の電源スイッチ的なもの。
ControlNetを利用する際は当然ONにする。逆に普段はOFFにしとこうPreprocessor none 前処理の内容。今回はもう棒人間を用意してあるから前処理は不要。
なのでnoneにする。
としあきが触ってない限りデフォルトでnoneだけどねModel control_openpose-fp16 処理内容の種類。今回は棒人間用のもの - Generate だ!
元画像にあった棒人間のポーズや構図が反映されていれば成功だよ
困った時は
- 効果が全く出ない(ポーズや構図が全く反映されてなさそう)場合は、まず1111を最新版に更新してみてね
(例題2) 画像→線画→画像 (canny + canny) 
左の画像はimg2img(ノイズ除去0.75)を使って金髪にしたもの。
i2iは元画像の色に従うので、暗い黒髪から明るい金髪への塗り直しとなると、ノイズ除去の値をこれくらい高くする必要がある。
そうなると元画像からの乖離も大きくなってしまう…というのは周知の通り。
人間がある程度金髪に塗ってから髪だけInpaintするとか、フォトショで範囲を指定しつつ色置換する等の手もあるけど…
今回はControlNetのcannyを試してみよっか。
- 黒髪ポニテの画像を保存
- 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_canny-fp16 線画用のモデル - Generate だ!
結果を見ると、元画像の線がかなり維持されているはずだ(設定次第で調節できる)。
しかし元画像の色がほとんど失われているので「必ずしもi2iの上位互換とは言えない」ことも分かるだろう。
(例題2.5) 編集範囲を限定する(img2imgタブからの利用) 
例題2では線画を維持しつつ、金髪への塗り直しができた。でも背景および衣装の配色までも、元画像とは大きく異なる結果になってしまったよね。
そこで今回はtxt2imgタブではなく、img2imgタブからControlNetを利用してみよう。
InpaintやInpaint uploadを使うと、編集範囲の限定が可能になる。これにより、髪だけを金色に塗り直しつつ、それ以外の部分を保持することができる。
前回同様にControlNetのcannyを用いるから、髪の線画ももちろん維持できるぞ。
さて今回使うimg2imgタブだけれど、編集範囲の指定はInpaintとInpaint uploadのどちらでも可能。
前者は手動でブラシ塗りしてマスクを作成。後者は(あらかじめ画像編集ソフトなどで作成したグレースケールの)画像ファイルを読み込んでマスクとして利用する…という違いがある。
例えば瞳やリボンのような狭い範囲なら、手塗りのマスクでも十分だから、Inpaintの方が手っ取り早いんだけど…
今回は黒髪を金髪に塗り直したい。範囲が広い上にかなり複雑な形状なので、筆者が画像編集ソフトを使ってマスク画像を作成して用意した。これをInpaint uploadで読み込ませて利用しよう。
- img2img(Inpaint upload)の設定
ここで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_canny-fp16 線画用のモデル - Generate だ!
使い方 
パラメータ 
📝 | 既存の画像ではなく自分の手描きで始める場合に利用するボタン。手書き用のキャンバスの設定パネルを表示する |
New Canvas Width New Canvas Height | README.mdのTips![]() 手描き用のキャンバスを新規作成する際の幅と高さ。 画像ファイルを読み込ませて利用する場合には影響しない |
Create New Canvas | 空(白背景)のキャンバスを作成する |
📷 | Webカメラを有効にする |
⇄ | Webカメラの画像を左右反転させる |
⤴ | 画像を読み込ませた状態でこのボタンを押すと、画像の幅と高さが、txt2imgやimg2imgのwidthとheightにコピペされる |
Enable | ControlNet自体の有効/無効化 |
Low VRAM | グラボのVRAMが少ない、あるいは大きな画像を出したいのにVRAMが不足するという場合にONにする。 デメリットとして画像の生成速度が遅くなる。一度に口に入り切らないから少しずつ齧る…みたいなイメージ |
Pixel Perfect | ONにすると、Preprocessor Resolutionの値が自動的に調節されるようになる。なのでPreprocessor Resolutionの項目は非表示になる |
Allow Preview | ONにすると、Preporcessor Previewの表示枠と、💥ボタンが出現する |
💥 | Preporcessor Previewの表示を更新する |
Control Weight | README.md参照![]() |
Starting Control Step | |
Ending Control Step | |
Control Mode (Guess Mode) | |
・Balanced | バランス型 |
・My prompt is more important | プロンプト重視 |
・ControlNet is more important | 元画像重視(Guess Mode) |
Resize Mode | 拡大縮小の種類 |
・Just Resize | アスペクト比(縦横比)を維持せずに拡大・縮小する |
・Crop and Resize | |
・Resize and Fill | |
[Loopback] Automatically send generated images to this ControlNet unit |
他に、Preprocessorをnone以外に切り替えることで出現するパラメータもある。
それらを利用すると、元画像から中間画像を変換・抽出する前処理の解像度や加減を調節できる。
(例えばcannyで線画を抽出する強弱など)
プリプロセッサの種類と用途 
プリプロセッサ名 | 用途 |
none | 「前処理いらないよ」という指示。 手持ちの線画や棒人間画像から開始する時はこれ |
canny | 線画抽出。二次絵の書き換えに全力出せる |
depth | 深度情報付き。主に実写を使ってやるのに使う |
depth_leres | |
hed | 輪郭抽出。cannyより大雑把で今はまだ使い道が微妙 |
mlsd | 直線抽出。家具とか家とかのまっすぐなやつを拾う用 |
normal_map | 法線情報。3D人形とかをベースにするときにつよい |
openpose | 棒人形。みんな知ってるよね |
openpose_hand | 棒人形+手 |
clip_vison | |
color | |
pidinet | 輪郭抽出。hedと何が違うのかよく分からん |
scribble | ラフ絵をなんとかする。マウスで丸書いてちょんで顔になる |
fake_scribble | 入力絵をscribble化。使い道が分からん |
segmentation | 入力画像を領域分けする。モデルはcontrolnet_seg。実写映像で構図を決めて差し替えに使える。二次絵だとイマイチ読んでくれない。 |
binary | scribbleの閾値付きバージョン。グレースケール系の線画に着色させたい場合とかに使う。 閾値を0 or 255に設定すると、大津の手法使って自動でいい感じの閾値が設定される。 |
用途から考えるプリプロセッサ
・簡単にポーズさせたいならopenpose
・塗り絵や色変え表情変えならcanny
・3Dモデルを使ってポーズさせてるならnormal_map
・構図を維持したまま服装や背景を変えたい場合はsegmentation
・線画に色を付けたいならbinary(ModelはScribbleを指定)
- PreprocessorとModelは基本的にセット、ペアとして考えよう。
例えばPreprocessorをcannyにするなら、モデルにはcontrol_canny-fp16を選ぶ。 - 前処理(postprocess)をすっ飛ばしたい場合、つまり手元にある線画や棒人間の画像を読み込ませて実行する場合は、preprocessorをnoneにして、Modelだけを選択する。
メモや注意点 
- モデルとの相性が存在する。というかSD2.x系列のモデル…具体的にはSD2.1やWD1.5は、モデルの作りが大きく異なるため利用できない。
- 元画像の影響を強く受けすぎてしまう場合は、Weightの値を思い切って0.5や0.3などに下げてみる。
- 線画や棒人間の画像を保存する方法はいくつかある。
Multi-ControlNet 
- なにそれ?
- どうやって有効化するの?
https://github.com/Mikubill/sd-webui-controlnet#multi-controlnet--joint-conditioning-experimental
m2m 
movie2movie。動画ファイルを読み込ませて、それをベースにAI絵の動画ファイル(.gif形式)を作成する機能。
今のところフレーム間の連続性を補正する機能は無い。単純にバッチ処理で次々とControlNetに送って、最後にgifファイルにまとめている。
seedを任意の値で固定すると、seed=-1 よりはだいぶ良好な結果を得られる(チラつき低減)。
img2imgタブからも利用できるが、ベースとして指定できる画像は1枚だけ。将来的には1フレームずつ自動で送って元絵にできるかもしれない。
有効化する方法
- まずMikubill版ControlNet拡張機能を最新版にしておく
誘導→Extensions#拡張機能の更新方法 - Settings → ControlNet → Allow other script to control this extension
をONにして、ページ上部にある Apply setting を押す
注意
動画って基本的にすげー枚数を生成することになる
30fps 10秒の動画ですら300枚だぞ
だから最初は2~3秒くらいの動画にしとけ
あとtxt2imgのWidthとHeightも小さめのサイズにしとけ
16:9なら320x180とか640x360とかね
使用方法
- 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のスライダーの作用はよくわかってない…
- いつも通り Generate で生成開始
動画内の全フレームに対して1枚ずつ自動的にControlNet処理が施されていく
それが終わるととりあえず1111ちゃんから完了通知が出るけど
実際にはその後animation.gifの作成まで自動で行われる
この時に同名のファイル名が既に存在していると自動的に上書きされてしまうので注意してほしい
gifファイルはファイルサイズが大きい
息を吸って吐くようにスレへの添付ファイルサイズ上限(8MB)を越えてくる
なのでスレに貼るためには圧縮品質を調整しつつmp4かwebm辺りの動画形式に変換することになるだろう
よくある質問 
棒人間の対応部位がよくわからない 
こちらの記事内にある画像がわかりやすいのでオススメ
機械の目が見たセカイ -コンピュータビジョンがつくるミライ(47) 人物の姿勢推定(1) – OpenPose | TECH+(テックプラス)
(画像の転載はしません)
バッチ処理機能はありませんか? 
- CUIでならできるのかも? つまりコマンドプロンプトとか.batファイルを作成して~みたいな話。
- GUIとしては、現時点ではたぶんありません。とはいえ筆者が知らないだけで、それを可能にするスクリプトや拡張機能が既に存在している可能性はあります。
- とりあえずControlNet拡張機能側には、その準備が実装済み。
Settings → ControlNet → Allow other script to control this extension
のチェックボックスがそれ。これをONにすると、他のスクリプトや拡張機能からControlNet拡張機能を制御することが可能になる。- 例えばm2m機能は動画ファイルを複数枚の画像にバラした後、バッチ処理でControlNetに送って、ひたすら連続で処理を行わせているスクリプトだ。
誘導→m2m
- 例えばm2m機能は動画ファイルを複数枚の画像にバラした後、バッチ処理でControlNetに送って、ひたすら連続で処理を行わせているスクリプトだ。
俺のControlNetには○○の機能が見当たらないんだけど… 
- ControlNetの拡張機能を最新版に更新せい
- ControlNetの拡張機能を最新版に更新せい
更新方法 
2023/4/25現在、Mikubill氏が精力的にアプデを続けており、機能追加や不具合修正が行われている。
小まめに最新版に更新しよう。
使用前に最新版に更新しよう。質問前にも最新版に更新しよう。
更新の方法は一般的な拡張機能と同様なので、Extensions#拡張機能の更新方法のページを参照のこと。
便利な物 
(拡張機能) OpenPose Editor 
https://github.com/fkunn1326/openpose-editor.git
1111上で2Dの棒人間から画像を作成できる拡張機能。
人数の追加や、ControlNet拡張機能へ画像を送ることも可能。
https://twitter.com/fkunn1326/status/1627173198751211520
(拡張機能) 3D Openpose Editor 
https://github.com/nonnonstop/sd-webui-3d-open-pose-editor
1111上で3Dの棒人間から画像を作成できる拡張機能。
Openposeだけでなく手足のDepth/Normal/Cannyマップの出力にも対応。
(拡張機能) Posex 
https://github.com/hnmr293/posex
1111上で3Dの棒人間から画像を作成できる拡張機能。
Openpose/Depth/Canny/Landmark用Blenderモデル 
Blenderで3D人形を操作して画像を作成できる全部入りモデル。
ブラウザ上でデッサン人形を動かしてスクショ撮れるwebサイト 
176 無念 Name としあき 23/02/14(火)21:22:20 ID:73xlNJSY No.1066899251 del そうだねx2
https://webapp.magicposer.com/
このサイトでポーズ作ったらスクショしてwebuiにコピペして
さかなー
(としあき製) 棒人間ツール 
238 無念 Name としあき 23/02/23(木)00:43:57 ID:FacyQ2ik No.1069701497 del そうだねx7
>この棒人間さん作るのって何かのツールで出力するんです?
色々あるみたいだけど
この機会にちょっとだけアプデしたのを上げる
https://thup.work/miniup/?mode=dl&id=14203
- 棒人間のポーズをマウスで編集して画像保存できる簡易ツール
棒人間の数を追加することも可能 - exeファイルなのでDL時にブラウザに警告されたり、初回起動時Windowsに警告される場合がある
(おめー覚悟できてんのか? セキュリティリスクを承知の上でDL/実行しようとしてんのか? ってこと) - 使用前に同梱のreadmeをよく読んでね
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
9 無念 Name としあき 23/02/19(日)09:34:02 ID:3FNBM1TA No.1068371736 del そうだねx11
たておつ
昨晩上げたシンプル棒人間ツール
なんか殺風景だなと思ったら間違ってメニュー消してたので上げ直し
https://thup.work/miniup/?mode=dl&id=14158
324 無念 Name としあき 23/02/18(土)20:42:03 ID:Lc4yjcR. No.1068200555 del そうだねx8
以前上げたシンプルな棒人間ツールの関節の丸が大きいのが気になったのでアプデ
他地味に色々操作追加
改造再配布自由
(としあき製) セグメント画像作成ツール 
※あぷろだ寿命によるリンク切れ
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まで)
公開してくれた前二人のとしあきに感謝
276 無念 Name としあき 23/02/18(土)14:32:47 ID:rd4xlw9M No.1068074769 del そうだねx8
としがこないだseg用の画像を書くツールの改造
自由に改造していいとか言ってた気がするのでペンタブに対応させた
ペンタブ検出の関係で必要なライブラリ増えたけどれあどめつけたから導入は簡単なはず
説明に書き忘れたけどctrl+altキーを押しながら左右移動でペン先サイズ変更できる
もっと使いやすいUIにやろうと思えばできる気はするけど
GUI組むの本当に苦手なので誰か続きは任せた
7 無念 Name としあき 23/02/17(金)16:43:08 ID:VCEU5gRM No.1067769956 del そうだねx20
GPTちゃんにいろいろ聞いてセグメントの画像を描けるような簡易ペイント的なの作ったよ
一応ちゃんとセグメントの指定どおりに描いてくれたのは確認
改造配布などご自由に
(としあき製) MMD版ポーズ人形 
fu1959929.zip あぷろだ寿命によるリンク切れ
36無念Nameとしあき23/02/18(土)22:51:29 ID:QBc.o.MoNo.1068256309
MMDポーズ人形のスタンダードの方に材質モーフで輪郭線だけにするのと
セグメンテーションのpersonの色にする機能追加
MMMだと静止画出力時に背景透過できるんで合成とか便利かも
124 無念 Name としあき 23/02/18(土)12:48:54 ID:fLqgB9d6 No.1068044809 del そうだねx4
デプスマップのMME配布してくれてる方がいたのでポーズ人形更新
深度は手前の白から最奥の黒の範囲をスライダーで適切に設定しないと綺麗なグラデが出ないので注意
30 無念 Name としあき 23/02/18(土)12:05:18 ID:fLqgB9d6 No.1068032007 del そうだねx12
VRoidベースにしたMMDのポーズ人形作った
普通の奴と法線マップに対応してる物2つあって
法線は背景色を(255,128,128)にして出力すればプリプロセッサ通さずに法線マップとして使える