ControlNet:自らの images
ControlNet は拡散モデルに視覚的な条件(輪郭、奥行き、ポーズ)を追加し、プロンプトがスタイルを制御する一方で、その条件が構図を固定します。この手法は ICCV 2023 で最優秀論文賞を受賞しました。ComfyUI、Forge、AUTOMATIC1111 で利用でき、SD 1.5、SDXL、SD 3.5 Large、Flux.1、Z-Image Turbo 向けのものがあります。注意:各制御モデルは、学習対象となったモデルファミリーでしか動作しません。
プロンプトは内容を説明しますが、位置を指定するものではありません。ControlNetは、参照となる構造、ポーズ、輪郭、深度マップを条件として画像を生成し、指定した構図に結果を従わせます。このガイドは2026年9月28日現在の情報に基づき、どの制御を選ぶか、強度と適用区間をどう設定するか、モデルファミリーごとのファイルサイズ、そしてSD 1.5以降に大きく変化した公式の提供状況について説明します。
#解決する問題
幾何学的な形や配置を表すのに、テキストは向いていません。プロンプトで被写体、スタイル、雰囲気は説明できますが、手の位置、建物の角度、商品の正確な輪郭を言葉だけで固定することはできません。別のシードで生成し直すと、構図がまったく変わってしまいます。ControlNetが変えるのは、プロンプトではなく入力です。意図した構造を表す画像を渡すと、ノイズ除去の各段階で、その画像がモデルの条件付けに使われます。それ以外はすべてプロンプトが制御します。
この手法は、Lvmin Zhang、Anyi Rao、Maneesh Agrawala による研究論文「Adding Conditional Control to Text-to-Image Diffusion Models」に由来します。本論文は ICCV 2023 の会議録に掲載され、同会議の最優秀論文賞である Marr 賞を受賞しました。その要旨は、ControlNet の原理を次のように説明しています。ControlNet は拡散モデルを固定し、事前学習済みエンコーダ層を基盤として再利用し、学習可能なコピーを「zero convolutions」によって接続します。zero convolutions とは、初期値がゼロに設定された畳み込み層であり、パラメータを段階的に増加させ、有害なノイズが学習を妨げることを防ぎます。著者らはまた、50,000 枚未満の小さなデータセットでも、100 万枚を超える大きなデータセットでも、学習が堅牢であることを示しています。
使う側にとっての利点は、既存のモデルを再学習させずに制御機能を追加でき、制御の種類ごとにファイルが分かれていることです。そのため、モデルの系統に合った適切なファイルを使う必要があります。
#制御タイプを選択
ローカルでの AI 画像・動画生成、制限なし:ComfyUI、Flux、Z-Image、Wan 2.2 を GPU や Mac で — ワークフローはそのまま読み込め、法的枠組みも解説。
- 永久に利用できるオンラインスペース
- PDF + ファイル
- 30日間返金対応
| 制御 | キャプチャする内容 | 用途 | SD 1.5用のControlNet 1.1モデル |
|---|---|---|---|
| 輪郭(Canny、softedge、lineart) | 線と輪郭 | 正確な形を保つ:製品、ロゴ、塗り絵 | control_v11p_sd15_canny, _softedge, _lineart, _lineart_anime |
| 深度 | カメラからの距離 | 素材や細部を変えながら、立体感と遠近感を保つ | control_v11f1p_sd15_depth |
| ポーズ | 関節を結んだ骨格 | キャラクター:姿勢は固定され、それ以外は自由です。 | control_v11p_sd15_openpose |
| セグメンテーション | カテゴリ別の画像領域 | シーンの配置:ここは空、そこは建物 | control_v11p_sd15_seg |
| スケッチ(scribble) | 粗いスケッチ | 手描きの絵をレンダリングされた画像に変換する | control_v11p_sd15_scribble |
| ノーマルマップ | 表面の向き | 凹凸と、照明の影響を受けやすい細部 | control_v11p_sd15_normalbae |
| タイル(tile) | 画像の領域内のコンテンツ | 拡大しながら細部を描き足す | control_v11f1e_sd15_tile |
ControlNet 1.1の公式リポジトリでは14個のモデルが公開されており、そのうち11個は本番運用に対応したモデル、3個は実験的なモデルです。すべて統一された命名規則に従っています。深度用には、対応するプリプロセッサとしてDepth_Midas、Depth_Leres、Depth_Zoeの3つが挙げられています。プリプロセッサとは、参照画像を制御マップに変換するツールです。例えば、写真を深度マップに変換します。
実践的な目安として、重視する要素を捉えられる範囲で、最も制約の緩い制御を選んでください。写真の輪郭を使った条件付けは、その写真を再現します。それが望む結果なら、生成する必要はなかったことになります。深度やポーズを使うと、一般に指示への忠実さと創造性のバランスがより良くなります。
#重要な設定
ツールによって名称は異なりますが、3つの設定はどこでも共通しています。以下の表は、それぞれのドキュメントに基づき、最も一般的な3つの環境における名称を示しています。
| 設定 | ComfyUI(Apply ControlNetノード) | diffusersライブラリ | AUTOMATIC1111の拡張機能 |
|---|---|---|---|
| 制御の強さ | strength:値が高いほど、制御が画像に与える影響が強くなります | controlnet_conditioning_scale:制御の重み | Control Weight:制御が及ぼす影響の重み。プロンプト内の単語をどの程度強調するかに相当 |
| 適用のタイミング | start_percentとend_percent:0.2はノイズ除去の進行が20%に達した時点で制御を開始することを、0.8は80%に達した時点で制御を終了することを意味します。 | control_guidance_startとcontrol_guidance_end。全ステップに対する割合(0〜1)で指定 | StartとEnd:生成過程のどの割合の時点で制御を開始・終了するかを指定 |
| マップの精度 | プリプロセッサの解像度は、プリプロセッサノードで設定します | コントロール画像のサイズ | Pixel-Perfectモードは、プリプロセッサに最適な解像度を自動で計算します |
強度は最も効果的な調整項目です。最大値に近づけると仕上がりが硬くなり、強度を下げることで、画像の硬さはたいてい改善できます。ノイズ除去が終わる前に制御を停止すると、構図を固定しつつ、質感や光の表現はモデルに自由に任せられます。AUTOMATIC1111の拡張機能には、プロンプトと制御のどちらを優先するか調整できるControl Modeが追加され、Balanced、My prompt is more important、ControlNet is more importantの三つから選べます。
#モデルの作者が公開した初期値
数値をでっち上げるのではなく、開発元が示している数値を出発点にしてください。数値はモデルのファミリーによって大きく異なります。これは、SD 1.5で有効な設定をそのまま他に適用することはできないということです。
| モデル | 推奨設定 | 出典 |
|---|---|---|
| Flux.1 dev、Union Pro 2.0(Shakker Labs)、cannyまたはsoft edge | 強度0.7、終了位置0.8 | モデルカード |
| Flux.1 dev, Union Pro 2.0, 深度 | 強度 0.8;終了値 0.8 | モデルカード |
| Flux.1 dev、Union Pro 2.0、ポーズ | 強度0.9、終了位置0.65 | モデルカード |
| Flux.1 dev、Union Pro 2.0、グレースケール | 強度0.9、終了0.8 | モデルカード |
| Z-Image Turbo、Fun ControlNet Union | control_context_scaleは0.65から0.80の間 | モデルカード |
| Flux.1 dev、ControlNet canny(InstantX) | 公式の例では強度0.5 | diffusersのドキュメント |
| SDXL、2 つの制御の組み合わせ(canny と深度) | 公式の例では、それぞれ0.5 | diffusersのドキュメント |
#どのControlNetがどのファミリーに適していますか?
SD 1.5以降、利用できるものは大きく変わり、多くのガイドは情報が古くなっています。この表では、モデルの開発元が公開しているものとコミュニティが公開しているものを区別しています。どちらが公開したものかによって、メンテナンスとライセンスが左右されるためです。
| ファミリー | モデルの提供元が公開している制御機能 | コミュニティやサードパーティ製の制御モデル |
|---|---|---|
| SD 1.5 | lllyasvielによるControlNet 1.1:14のモデル(canny、深度、ポーズ、セグメンテーション、スケッチ、タイルなど) | 多数の派生モデルが存在します |
| SDXL | Stability AIのControl-LoRA:canny、深度、recolor、sketch | diffusers チームによる ControlNet canny と depth; xinsir による ControlNet Union(1 つのファイルで複数のモードに対応) |
| SD 3.5 Large | Stability AIが2024年11月26日に公開した3つのControlNet:Blur、Canny、Depth | 比較できる参考情報が少ない |
| Flux.1 dev | FLUX.1 Canny および Depth(Black Forest Labs製)は、2024年11月に完全モデルおよびLoRAモデルとして公開されました | InstantXのControlNet Union(ベータ版)とShakker LabsのUnion Pro 2.0 |
| Z-Image Turbo | 確認時点では、開発元(Tongyi-MAI)のHugging Faceページに該当するモデルはありません | Alibaba PAIのFun ControlNet Union:canny、HED、深度、ポーズ、MLSD |
二つの点を明記しておく必要があります。まず、Black Forest Labsは、自社APIでFLUX.1 DepthとFLUX.1 Cannyを非推奨としました。LoRA版も対象です。公開された重みはHugging Faceで引き続き入手できますが、開発元はもうメンテナンスしていません。次に、「Union」モデルは複数のモードを一つのファイルにまとめるため、ディスク容量を節約できますが、成熟度にはばらつきがあります。InstantXのFlux向けControlNet Unionのモデルカードでは、まだ完全には学習されていない可能性のある初期ベータ版として紹介されています。
ベースモデルのライセンスがそのまま適用されるとは限りません。各コントロールファイルには独自のライセンスがあり、ファイルごとに異なります。
| 制御 | ライセンス | 要点 |
|---|---|---|
| SD 1.5 用 ControlNet 1.1 | OpenRAIL | RAIL型ライセンスで使用制限が設けられています |
| diffusersチームによるControlNet canny SDXL | OpenRAIL++ | SDXLと同様に、使用制限が付録に記載されています |
| xinsirのControlNet Union SDXL | Apache 2.0 | パーミッシブ |
| Stability AIのControl-LoRA | Stability AI Control-LoRA Community License | 月間アクティブユーザー数が100万人を超える場合、商用利用にはStability AIのライセンスが必要です。 |
| ControlNets SD 3.5 Large | Stability AI Community License | 年間売上高100万ドル未満の商用利用は無料 |
| FLUX.1 Canny および Depth [dev] | FluxDevライセンス(非商用) | モデルカードには、生成された画像をライセンスに従って個人的・科学的・商業的な目的で利用できると明記されています |
| InstantXのUnionとShakker LabsのUnion Pro 2.0(Flux向け) | FluxDevライセンス(非商用) | 商業利用前に必ずご確認ください |
| Z-Image Turbo用のFun ControlNet Union | Apache 2.0 | パーミッシブ |
#必要なファイル容量とメモリ量
ControlNetは、ベースモデルと並行して動作する追加のネットワークです。その分、VRAM使用量と画像1枚あたりの処理時間が増えます。Hugging Faceで公開されているファイルサイズが、おおよその規模を知る最初の目安になります。これらは、ベースモデルとそのテキストエンコーダーの重みのサイズに加わります。
| 制御 | ファイルサイズ |
|---|---|
| SD 1.5用ControlNet 1.1、オリジナルバージョン(.pth) | それぞれ1.45 GB |
| SDXL用、diffusersチームのControlNet canny | フル精度で5 GB、半精度で2.5 GB |
| SDXL、xinsirのControlNet Union | 2.51 GB |
| Stability AIのSDXL、Control-LoRA | 約738 MB(オリジナルのControlNetは4.7 GB) |
| SD 3.5 Large, ControlNet canny | 8.61 GB |
| Flux.1 dev、InstantXのControlNet Union | 6.6 GB |
| Flux.1 dev, Shakker Labs の Union Pro 2.0 | 4.28 GB |
| Flux.1 dev、LoRA形式のFLUX.1 Depth(Black Forest Labs) | 1.24 GB(Canny の完全版モデルは 23.8 GB) |
| Z-Image Turbo、Fun ControlNet Union | 3.1GB |
2つの教訓があります。第一に、完全なモデルに対するLoRA形式の制御はその一部のサイズで済みます。Stability AIはControl-LoRAを、より幅広い一般向けGPUで制御を利用できる方法として紹介しています。第二に、形式には注意が必要です。ControlNet 1.1の.pthファイルはPython pickleであり、Hugging Faceもpickleのインポート警告を示しています。コードを実行できない.safetensors版を優先してください。
追加でどのくらいのVRAMが必要ですか?提供元は一律の数値を公表しておらず、測定値はモデルと解像度によって異なります。メモリがいっぱいになった場合は、まず解像度を下げ、次に同時に使用するコントロールの数を減らし、それでも足りなければControl-LoRAや半精度版など、より軽量なコントロールに切り替えます。基本となるメモリ使用量については、VRAMのガイドをご覧ください。
#どこで使用するか
ControlNet は独立したアプリケーションではありません:画像生成インターフェース内で動作します。ComfyUI では、2つのノードがその役割を果たします:models/controlnet フォルダーのファイルを読み込む Load ControlNet、および制御画像と上記のテーブルの設定を受け取る Apply ControlNet。ComfyUI のドキュメントには、ソフトウェアのコアにはすべてのプリプロセッサーが含まれていないと明記されており、ComfyUI ControlNet aux のような拡張機能が必要なことがよくあります。拡張機能はあなたの権限で実行されるコードであることを忘れないでください:既知の拡張機能のみをインストールしてください。Z-Image Turbo の場合、制御ファイルは別のフォルダー、models/model_patches に配置されます。
従来のWebインターフェースでは、AUTOMATIC1111のsd-webui-controlnet拡張機能がプロンプトの下にパネルを追加します。最新のお知らせはバージョン1.1.454についてのもので、最後のコミットと同じく2024年7月の日付です。この拡張機能は今もSD 1.5とSDXLで動作しますが、新しいモデルへの対応は今後行われません。Forgeは、READMEによると、この拡張機能を使わずにControlNetを直接統合しています。
#複数のコントロールを同時に組み合わせる
2つの制御を重ねることもできます。たとえば、キャラクターの姿勢にはポーズ、背景には深度を使います。diffusersのドキュメントでは、良い結果を得るために、条件付けが重ならないようにマスクを適用し、異なる強度を試して各制御の重みを調整するよう説明されています。SDXLの例では、cannyと深度をそれぞれ0.5の強度で組み合わせています。ComfyUIでは、Apply ControlNetノードを順につなぎます。どちらにも同じ原則が当てはまります。画像の異なる側面を対象とする制御だけを重ね、効果が加算されるため、それぞれの強度を下げます。
#制御が無視された場合について
- ControlNetモデルが一覧に表示されない
- ファイルが間違ったフォルダにあるか、対応する設定ファイルの名前がそのファイルの名前と一致していません。ComfyUIでは、配置先のフォルダは models/controlnet です。
- 出力は参照を無視します
- ベースモデルと制御モデルの系統に互換性がない、プリプロセッサが空のマップを生成した、または制御の強度が低すぎることが原因です。ほかの原因を疑う前に、制御マップそのものを表示してください。
- 画像が硬直していて生気がない
- 制御の強度が高すぎるか、ノイズ除去の全工程にわたって制御が適用されています。強度を下げ、ノイズ除去が終わる前に制御を停止してください。
- Unionモデルで期待した結果が得られない
- InstantXのUnionの開発者は、十分に学習させたUnionモデルでも、ポーズ用モデルなどの特化モデルより性能が劣る場合があると記しています。専用のControlNetを試し、Shakker Labsのモデル紹介ページで推奨されているように、詳細なプロンプトを書いてください。
- メモリがいっぱいになる
- 解像度を下げるか、コントロールを1つ外すか、より軽量なバージョンのコントロールを使ってください。
- ComfyUI:グラフインターフェースのインストール
- AUTOMATIC1111:クラシックなウェブインターフェース
- ローカルでの画像生成の概要
- AI画像キット:GPUごとのControlNetワークフローと設定
- 出典:ControlNetの公式リポジトリ
- 出典:元の研究論文(ICCV 2023)
- 出典:Stability AIのControl-LoRA(SDXL用)
- 出典:FLUX.1 ToolsとDepth・Cannyの非推奨化
#FAQ
ControlNet は何に使うものですか?+
ControlNetには高性能なグラフィックスカードが必要ですか?+
なぜ出力がコントロール画像を無視しているのですか?+
キャラクターのポーズにはどの制御方法を使えばよいですか?+
ControlNetはSDXL、Flux、Z-Imageにも存在しますか?+
複数の ControlNet を同時に使用できますか?+
ご意見、誤りのご指摘、補足はありますか?ぜひお知らせください。皆さんにとってより良いガイドにするために役立ちます。