ControlNetとは
快適に画像生成を始めたい方へ
ControlNetを含むStable Diffusionを快適に動かすには、
VRAM 12GB以上のGPU搭載PCが推奨です。
→ ドスパラのクリエイター向けPCを見る
ControlNetは、Stable Diffusionで生成する画像の構図やポーズを精密に制御できる拡張機能です。通常のプロンプト生成では「女性が立っている」といった曖昧な指示しかできませんが、ControlNetを使えば参照画像から正確なポーズや構図を抽出し、それに基づいた画像生成が可能になります。
ControlNetでできること
1. ポーズの指定(OpenPose)
人物の骨格情報を抽出し、同じポーズの別キャラクターを生成できます。参照画像の人物が手を上げていれば、生成画像でも同じポーズで手を上げている画像が生成されます。
2. 構図の維持(Canny, Depth)
写真の輪郭や奥行き情報を抽出し、構図を保ったまま別のスタイルで描画できます。例えば、実写写真からアニメ調イラストへの変換が正確にできます。
3. 線画からの着色(Lineart, Scribble)
手描きの線画やラフスケッチから、詳細な完成イラストを生成できます。デザイナーやイラストレーターの下書き工程を大幅に効率化できます。
4. セグメンテーション(Seg)
領域ごとに色分けしたマスク画像から、構図を正確に再現した画像を生成できます。建物、空、地面などを明確に配置したい場合に有効です。
従来のimg2imgとの違い
img2imgは参照画像全体の雰囲気を引き継ぎますが、細かい構図やポーズは保証されません。ControlNetは特定の要素(骨格、輪郭、深度など)を抽出し、それを厳密に守りながら生成するため、再現性が高くなります。
インストール方法
AUTOMATIC1111 WebUI への導入
1. Extensionsタブから拡張機能をインストール
WebUIの「Extensions」タブ > 「Available」タブを開き、検索欄にcontrolnetと入力します。
「sd-webui-controlnet」が見つかったら「Install」をクリック。
または、URLから直接インストール
「Install from URL」タブで以下のURLを入力してインストールします。
https://github.com/Mikubill/sd-webui-controlnet
2. WebUIを再起動
Installed タブで「Apply and restart UI」をクリックし、UIを再起動します。
3. ControlNetモデルのダウンロード
拡張機能だけではモデルがないため、別途ダウンロードが必要です。
Hugging Face – lllyasviel/ControlNet
ここから必要なモデル(例: control_v11p_sd15_canny.pth)をダウンロードし、以下のフォルダに配置します。
stable-diffusion-webui/extensions/sd-webui-controlnet/models/
SDXLを使っている場合
SDXL用ControlNetは別モデルです。
Hugging Face – diffusers/controlnet-canny-sdxl-1.0
4. 動作確認
txt2imgまたはimg2imgタブの下部に「ControlNet」セクションが表示されていれば成功です。
ComfyUIへの導入
ComfyUIでは標準でControlNetノードが利用可能です。
1. モデルのダウンロード
上記と同じモデルをComfyUI/models/controlnet/に配置します。
2. ワークフローに追加
– 「Load ControlNet Model」ノード
– 「Apply ControlNet」ノード
– プリプロセッサノード(Canny, OpenPoseなど)
をワークフローに組み込むことで使用できます。
主要なControlNetモデルと使い方
ControlNetには用途別に複数のモデルがあります。それぞれの特徴と使い方を解説します。
1. Canny(エッジ検出)
用途: 輪郭線の抽出と再現
Cannyエッジ検出アルゴリズムを使い、画像の輪郭線を抽出します。建物、物体の形状を維持したまま別スタイルに変換する際に最適です。
使い方
1. ControlNetセクションで「Enable」にチェック
2. Preprocessor: canny
3. Model: control_v11p_sd15_canny
4. 参照画像をアップロード
5. プロンプトで生成したいスタイルを指定
パラメータ調整
– Low Threshold: 50-100(低いと細かいエッジまで検出)
– High Threshold: 100-200(高いと主要なエッジのみ)
実践例
参照画像: 建物の写真
プロンプト: anime style, colorful fantasy castle, highly detailed
結果: 建物の形状を保ちながらアニメ調の城が生成される
2. Depth(深度マップ)
用途: 奥行き情報の抽出
画像の遠近感を維持したまま別の画像を生成します。手前と奥の関係性を保ちたい場合に有効です。
使い方
1. Preprocessor: depth_midas または depth_leres
2. Model: control_v11f1p_sd15_depth
MiDaSとLeReS++の違い
– MiDaS: 高速、汎用的
– LeReS++: より精密だが処理が重い
実践例
参照画像: 人物が手前、背景にビル群
プロンプト: cyberpunk city, neon lights, rain
結果: 人物と背景の距離感を保ったままサイバーパンク風に変換
3. OpenPose(骨格検出)
用途: 人物のポーズ抽出
人物の関節位置を検出し、骨格(スケルトン)として表現します。同じポーズで別キャラクターを生成する際に非常に有効です。
使い方
1. Preprocessor: openpose_full(全身+手+顔) または openpose(体のみ)
2. Model: control_v11p_sd15_openpose
バリエーション
– openpose: 体の骨格のみ
– openpose_hand: 手の指まで検出
– openpose_face: 顔の向きも検出
– openpose_faceonly: 顔のみ検出
– openpose_full: すべて含む
実践例
参照画像: ダンサーのポーズ写真
プロンプト: anime girl, magical girl outfit, dynamic pose
結果: 同じダンスポーズの魔法少女イラストが生成
4. Lineart(線画抽出)
用途: 線画への変換と着色
写真やイラストから線画を抽出し、それをベースに新しい絵を生成します。
使い方
1. Preprocessor: lineart_standard または lineart_anime
2. Model: control_v11p_sd15_lineart
lineartのバリエーション
– lineart_standard: 実写向け
– lineart_anime: アニメ調に最適化
– lineart_coarse: 粗い線画
実践例
参照画像: アニメキャラクターのスクリーンショット
Preprocessor: lineart_anime
プロンプト: different hairstyle, fantasy armor, detailed illustration
結果: 同じ構図で別衣装・髪型のキャラクターが生成
5. Scribble(ラフスケッチ)
用途: 手描きスケッチからの生成
ラフな手描き線画から詳細な画像を生成します。アイデアスケッチを具体的なイラストにする際に使います。
使い方
1. Preprocessor: scribble_xdog または scribble_hed
2. Model: control_v11p_sd15_scribble
活用シーン
デザイナーが紙やタブレットに描いたラフを元に、完成度の高いイラストを自動生成する。
6. Segmentation(セグメンテーション)
用途: 領域分割マップからの生成
色分けされた領域マップから、それぞれの領域に対応した画像を生成します。
使い方
1. Preprocessor: seg_ofade20k または seg_ofcoco
2. Model: control_v11p_sd15_seg
実践例
空=青、地面=緑、建物=グレーでマスク画像を作成
プロンプト: fantasy landscape, castle on hill, sunset
結果: 各領域に対応したファンタジー風景が生成
ControlNetを快適に動かすには
ControlNetは通常のStable Diffusionより処理が重いため、高性能GPUが推奨されます。
| 特徴 | 内容 |
|---|---|
| 推奨GPU | RTX 4070 Ti以上(VRAM 12GB以上) |
| 複数ControlNet | VRAM 16GB以上あれば複数同時利用可 |
| 生成速度 | 高性能GPUなら快適に動作 |
7. Normal Map(法線マップ)
用途: 表面の凹凸情報を使った生成
物体表面の向きを表すマップで、立体感を保ったまま別の質感に変換できます。
使い方
1. Preprocessor: normal_bae
2. Model: control_v11p_sd15_normalbae
8. Shuffle(色・構図のランダム化)
用途: 構図を保ちつつ内容を変える
画像の配置は維持しながら、内容だけをランダムに変更します。
使い方
1. Preprocessor: shuffle
2. Model: control_v11e_sd15_shuffle
実践的な活用テクニック
複数ControlNetの組み合わせ
AUTOMATIC1111では、複数のControlNetを同時に使用できます(デフォルトで最大3つまで)。
例: OpenPose + Canny の組み合わせ
– ControlNet Unit 0: OpenPoseでポーズ指定
– ControlNet Unit 1: Cannyで背景の構図指定
これにより、ポーズと構図の両方を正確に制御できます。
Weight調整
各ControlNetには「Control Weight」パラメータがあり、影響の強さを調整できます。
– 1.0: 最大限に影響
– 0.5: 半分の影響
– 0.3以下: ほんのり影響
実践例
– OpenPose Weight: 1.0(ポーズは厳密に)
– Depth Weight: 0.6(奥行きはやんわり)
Preprocessor解像度の調整
Preprocessor Resolutionは、前処理時の解像度です。高いほど精密になりますが、処理時間が長くなります。
- 512: 高速だが粗い
- 1024: バランス型(推奨)
- 2048: 高精度だが重い
Control Modeの選択
Balanced(バランス)
プロンプトとControlNetの影響をバランス良く反映します。通常はこれを使用します。
My prompt is more important(プロンプト優先)
ControlNetの影響を弱め、プロンプトの内容を優先します。構図は緩く、内容重視の場合に。
ControlNet is more important(ControlNet優先)
ControlNetの影響を強め、プロンプトは補助的に。構図やポーズを厳密に守りたい場合に。
Starting/Ending Control Stepの活用
生成プロセスのどの段階でControlNetを適用するかを制御できます。
- Starting Step: 0.0(最初から)
- Ending Step: 1.0(最後まで)
応用例
– Starting: 0.0, Ending: 0.5
→ 生成の前半だけControlNetを効かせ、後半は自由に
これにより、構図は保ちつつ細部の自由度を上げられます。
トラブルシューティング
ControlNetが効いていない
チェックポイント
1. 「Enable」にチェックが入っているか
2. 正しいモデルが選択されているか
3. Control Weightが0になっていないか
4. 参照画像が正しくアップロードされているか
プリプロセス画像が真っ黒/真っ白
原因
プリプロセッサの設定が不適切、または参照画像の解像度が極端。
対処法
– Preprocessor Resolutionを512-1024に調整
– Low/High Thresholdを調整(Cannyの場合)
生成が遅くなった
原因
ControlNetは追加の計算処理が必要なため、生成時間が増加します。
高速化のコツ
1. Preprocessor Resolutionを下げる
2. 複数ControlNetを使用している場合は必要最小限に
3. xFormersを有効化
ポーズが微妙にズレる
原因
OpenPoseの検出精度、またはControl Weightが低い。
対処法
1. Preprocessorで生成されたスケルトンを確認
2. 手動でスケルトンを編集(OpenPose Editorを使用)
3. Control Weightを0.8-1.2に調整
おすすめのワークフロー
イラスト制作(線画から着色)
- 紙やクリスタでラフ描画
- Scribble ControlNetで線画を抽出
- プロンプトで色・スタイルを指定
- 複数バリエーション生成
- 気に入ったものを手動で微調整
写真のスタイル変換
- 実写写真を用意
- Canny + Depthの2つを併用
- プロンプトで変換したいスタイルを指定
- img2imgのDenoising strengthを0.6-0.8に設定
- 構図を保ちつつ別スタイルに変換
キャラクターポーズ集作成
- 3Dモデルやポーズ集からポーズ画像を用意
- OpenPose ControlNetで骨格抽出
- キャラクター設定のプロンプトを用意
- バッチ処理で複数ポーズを一気に生成
よくある質問
Q. ControlNetとLoRAの違いは何ですか?
ControlNetは「構図・ポーズ・線画などの形状を制御」する拡張機能で、参照画像から抽出した情報(骨格、輪郭、深度など)に基づいて生成をガイドします。一方LoRAは「特定のスタイルやキャラクターを学習した追加モデル」で、画風や外見の特徴を再現します。両者は目的が異なり、併用することで「このポーズ(ControlNet)で、このキャラクター(LoRA)を描く」といった精密な制御が可能になります。
Q. ControlNetを使うとVRAMが足りなくなります
ControlNetは追加の計算処理が必要なため、VRAM消費が増加します。対処法として、Preprocessor Resolutionを512以下に下げる、複数ControlNetを使用している場合は必要最小限に減らす、xFormersを有効化する、–lowvramオプションで起動する、生成解像度を下げる(512×512など)といった方法があります。VRAM 8GB以下の環境では、ControlNetは1つまでにするのが無難です。
Q. プリプロセッサの選び方がわかりません
用途によって最適なプリプロセッサが異なります。人物のポーズを制御したい場合はOpenPose、建物や物体の形状を保ちたい場合はCanny、奥行き・距離感を維持したい場合はDepth、線画から着色したい場合はLineart、ラフスケッチから生成したい場合はScribbleを選びます。迷ったら、まずCannyから試すのがおすすめです。汎用性が高く、ほとんどの用途に対応できます。
Q. ControlNetの効果が弱い・効きすぎる場合はどうすれば?
Control Weightパラメータで調整します。効果が弱い場合は、Weightを1.0→1.2-1.5に上げる、Control ModeをControlNet優先に変更、Ending Stepを0.5→1.0に延長します。逆に効きすぎる場合は、Weightを0.5-0.7に下げる、Control Modeをバランスまたはプロンプト優先に変更、Ending Stepを0.5-0.7に短縮します。適切な強度は画像によって異なるため、複数パターンを試すことが重要です。
さらに深く学ぶには
【PR】
📚 書籍で体系的に学ぶ
「Stable Diffusion 実践ガイド」
– ControlNetの詳細解説と実践例
– 各種プリプロセッサの使い分け
– 複数ControlNet組み合わせテクニック
🎓 プロから直接学ぶ
独学に限界を感じたら、DMM WEBCAMP AIコース がおすすめです。
- 現役エンジニアのマンツーマン指導
- Stable Diffusion含む画像生成AIの実践的なカリキュラム
- ControlNet・LoRAなど高度な技術の習得
- 転職・副業サポート
給付金で最大80%オフ(実質18万円〜) → DMM WEBCAMP 無料カウンセリングに申し込む
まとめ
ControlNetは、Stable Diffusionの生成制御を飛躍的に向上させる強力な拡張機能です。
重要ポイント
– ポーズ、構図、線画など、用途別に複数のモデルがある
– Preprocessorで参照画像を前処理し、特徴を抽出
– 複数ControlNetを組み合わせて精密な制御が可能
– Weight、Starting/Ending Stepで影響の強さを調整
– プロンプトとControlNetのバランスが重要
プロンプトだけでは実現困難だった「この構図で」「このポーズで」という要求が、ControlNetによって実現可能になります。
最初は単一のControlNet(CannyやOpenPose)から始め、慣れてきたら複数の組み合わせや細かいパラメータ調整に挑戦すると良いでしょう。
おすすめ書籍
画像生成AIの基礎から応用まで体系的に学びたい方におすすめの一冊です。
『画像生成AI Stable Diffusion スタートガイド』 AICU media(2,640円)
Stable Diffusionの導入から実践的なテクニックまで、初心者でもわかりやすく解説されています。
関連記事
– 【2026年最新】画像生成AI徹底比較|Midjourney・GPT-4o・Stable Diffusion・にじジャーニー
– 【超初心者向け】Stable Diffusionのインストール方法|PC環境構築から使い方まで
– Stable Diffusion XL(SDXL)完全ガイド|導入から実践まで
– LoRA完全ガイド|Stable Diffusionで好みの絵柄を自在に生成
– ComfyUIの使い方完全ガイド|インストールから実践まで


コメント