道草雑草子(ざすこ)さん(X@zasuko_michiksa) による「AIキャラスタートガイド」、前節までは、オリジナルキャラの基本プロンプトや Style 登録した要素を土台にして、表情・ポーズ・仕草・構図をテキストで調整するやり方を見てきました。
https://note.com/aicu/n/n6c068b7de62b
https://note.com/aicu/n/n1e70254d6d31
ここからは、その一歩先として参照画像の情報を使って「ポーズそのもの」や「輪郭の流れ」「奥行き感」をより強く固定できる ControlNet というツールを使っていきます。
ControlNet は一言で言うと「プロンプトだけでは伝えにくい形の情報を、参照画像から補正する機能」です。
たとえば、響姫メイにライブで歌うポーズを取らせたいときや、渋谷リズに身体や手や脚を少しひねった座らせ方をさせたいとき、プロンプトだけでは惜しい結果になりやすいことがあります。そんなときに、参照画像からポーズや輪郭を読み取って生成へ反映できるのが ControlNet の強みです。今回はこの便利で強力なツールについて解説していきます。
ControlNetは、画像生成AIに「形の指示」を与えるための仕組みです。
通常のプロンプトは「どんな絵を描くか」を言葉で伝えるのが得意ですが、「このポーズにしたい」「この構図に寄せたい」「この奥行きを保ちたい」といった形の細かい指定は苦手です。
そこでControlNetを使うと、参照画像から取り出した線や骨格、奥行きの情報をもとに、生成結果を狙った形へ寄せやすくなります。つまり、プロンプトが“内容”を決めるものなら、ControlNetは“形”を支えるものだと考えると分かりやすいです。
たとえば「右手を差し出している」「片足重心で立っている」「背景の遠近感を保ちたい」といった内容は、文章だけだとぶれやすくなります。ですがControlNetを使うと、参照画像の情報をもとに、その“形”を生成結果へ反映しやすくなります。言い換えると、プロンプトが“何を描くか”を伝えるものなら、ControlNetは“どういう形に寄せるか”を助けるものです。
たとえば、次のような使い方ができます。
簡単にたとえると、プロンプトが「口で説明する指示」だとしたら、ControlNet は「ラフ図や棒人間を一緒に見せる指示」です。
文節だけで「右手を少し上げて、体をひねって、片足に重心を乗せて」と伝えるより、棒人間の形を渡したほうが伝わりやすいのと同じです。
3-8で学んだ「基本プロンプト+表情やポーズの追加」という考え方は、ここでもそのまま活用できます。違うのは、ControlNet では「テキストだけで頑張る」のではなく、「形そのものを補助情報として与える」点です。
ControlNetの開発者
ControlNetは、Lvmin Zhang(GitHub: lllyasviel)、Anyi Rao、Maneesh Agrawala らによって提案された、画像生成モデルに追加の条件を与えて出力を制御する仕組みです。
なお、この技術をWebUI上で使う方法は環境によって異なり、Forge系のWebUI では ControlNet が標準搭載されている一方、AUTOMATIC1111 系では sd-webui-controlnet などの拡張実装として利用されています。
GitHubリンク: https://github.com/lllyasviel/controlnet
ControlNet を使用するには、まず Forge WebUI の各パラメーター設定の下にあるControlNet Integrated という項目をクリックして専用の設定メニューを開きます。
メニューを開くと 、画像をドロップする欄や、機能をON/OFFさせるチェックボックスや、Control Type、Preprocessor、Model などの項目が並んでいます。まずはここを最初に整理しておくと、ぐっと分かりやすくなります。
①Control Image
ここに参照させたいポーズなどを捉えた画像をドロップ、または保存場所からアップロードします。
②Control Type
何を手がかりに制御するか、という“制御の種類”です。
たとえば OpenPose なら骨格、Canny なら輪郭線、Depth なら奥行き情報を使います。
③Preprocessor
参照画像をAIが読みやすい形に変換する“下ごしらえ用の検出ツール”です。
たとえば人物写真をOpenPoseで処理すると、関節位置を線で結んだ骨格図のような形に変換されます。Cannyなら輪郭線、Depthなら白黒の奥行きマップが作られます。
④Model
Preprocessor で作った情報を、実際の生成に反映する学習済みモデルです。
たとえば OpenPose の情報を効かせるなら OpenPose 用モデル、Depth の情報を効かせるならDepth 用モデルを選びます。
つまり、Control Type は「何で制御するか」、Preprocessor は「参照画像をどう読み解くか」、Model は「その情報をどう絵に反映するか」です。
入門者が混乱しやすいのは、この3つが似た名前で並ぶからです。ここを先に分けて説明しておくと、後の操作説明がかなり読みやすくなります。
また、ControlNet拡張では Pixel Perfect をオンにすると、Preprocessor の解像度を自動で調整してくれます。これは「検出ツールの解像度合わせを自動でやってくれる補助機能」です。入門者はまずこれをオンにしておくと、細かな設定でつまずきにくくなります。
Forge Classic の画面には、この表にまとめてある様に様々な機能があります、かなり多く見えますが、これらは最初から全部覚える必要はありません。まずは「何を頼りに絵を整える機能なのか」で代表的なものからざっくり分類すると分かりやすいです。
たとえば Canny / Depth / OpenPose / Lineart / Scribble / Segment / Normal あたりは、ControlNetの代表的な制御として理解しやすいものです。
一方、IP-Adapter、Instant-ID、Reference、T2I-Adapter など、UI上ではまとめて見えますが、厳密には別系統の拡張的な使い方のものも含まれていますので、まずは代表的な基本の制御系から覚えていきましょう。
重要なのは、「どんな情報を使って絵を誘導するのか」で分けて考えることです。そのような考えで大きくきり分けると、ControlNetは次のように整理できます。
Canny
輪郭線を抽出して、元画像の大まかな構図やシルエットを保ちたいときに使います。背景の建物や人物の外形を寄せたいときに分かりやすい方式です。
Lineart
線画そのものを使って制御する方式です。線の流れを保ちながら絵柄を変えたいときに向いています。
SoftEdge
Cannyよりも少しやわらかい境界線を使って制御する方式です。輪郭を強く固定しすぎず、自然に寄せたいときに使いやすいです。
Scribble
落書きのようなラフ線をもとに構図を誘導する方式です。ざっくりしたラフから絵を起こしたいときに向いています。
Sketch
手描きスケッチのような簡易な線情報を使う方式です。ラフな下絵から雰囲気を保ったまま生成につなげたいときに使えます。
MLSD
直線を見つけることに強い方式です。建物、部屋、道路、室内背景など、パースが大事な場面で役立ちます。
Depth
画像の前後関係や奥行きを取り出して、空間感を保ちながら生成する方式です。人物と背景の距離感を崩したくないときに向いています。
NormalMap
面の向きや立体の向きを表す情報を使う方式です。少し上級者向けですが、立体感や面の向きを意識した制御に向いています。
Segmentation
人物、服、背景、地面などを「領域ごと」に分けて認識する方式です。大きな塊として画面構成を保ちたいときに有効です。
OpenPose
人体の骨格を使って、ポーズや立ち姿を合わせる方式です。人物イラストで最初に触る機能のひとつで、手の位置や身体の向きを寄せたいときに向いています。
Reference
参照画像の雰囲気や情報を使って、構図よりも全体の印象を寄せる方式です。色味や空気感を参考にしたいときに使います。
IP-Adapter
参照画像の特徴を使って、人物の雰囲気や構成を反映する仕組みです。ControlNetの代表機能とは少し系統が違いますが、画像参照を強めたいときに便利です。
Instant-ID
顔の同一性や人物らしさを保つことに向いた仕組みです。特定人物の顔立ちを残したいときに役立ちます。
Inpaint
画像の一部分だけを描き直したいときに使う方式です。顔だけ直したい、手だけ修正したい、といった場面で使います。
Tile
細部の再構成や高解像度化を助ける方式です。画像の細かい情報を補強したいときに役立ちます。
T2I-Adapter
ControlNetに近い考え方で条件を加える、比較的軽量な補助方式です。環境によっては軽めの制御手段として使われます。
Shuffle
元画像の色情報や配置の雰囲気をゆるく活かしながら変化を与える方式です。厳密に固定するより、雰囲気だけ残したいときに向いています。
Blur
ぼかし情報を使って、大づかみに誘導する方式です。細部に引っ張られすぎず、おおまかな形だけを使いたいときに向いています。
このように見ると、画面に並んでいる項目はすべて同じ種類の機能ではありません。中には純粋なControlNet系の制御もあれば、参照画像ベースの補助機能や、部分編集向けの仕組みも含まれています。
UI上では一列に並んで見えますが、読者には「まずは基本の制御系から覚えればよい」と説明しておくと親切です。
表:主なControl Typeの簡単な役割と活用例
最近のSDXL向けControlNetでは、1種類ごとに別モデルを入れるやり方だけでなく、複数の制御を1本にまとめた統合型モデルも使われるようになっています。本書で主軸にする xinsir/controlnet-union-sdxl-1.0 は、その代表例です。
このモデルは、OpenPose、Depth、Canny、Lineart、AnimeLineart、MLSD、Scribble、HED、Pidi(Softedge)、Teed、Segment、Normal など、12種類の制御を1つの系統で扱えるのが特徴です。読者向けには、「ControlNetを1本化して管理しやすくした便利モデル」と説明すると分かりやすいです。
さらにこのモデルは、複数の条件を同時に使う MultiControlNet 的な使い方にも向いています。たとえば、骨格はOpenPoseで取り、空間感はDepthで補う、といった組み合わせを考えやすいのが利点です。機能を大量に入れ替えなくてもよいので、SDXL環境での導入整理もしやすくなります。
ControlNetには多くの種類がありますが、本節ではまず Canny、Depth、OpenPose の3つを中心に解説します。理由は、この3つが「形を制御する基本」を学ぶのにいちばん向いているからです。
Canny は、輪郭で構図を押さえる基本
元画像のシルエットを保ちたいときや、背景の大まかな形を寄せたいときに、効果が分かりやすく出ます。
Depth は、奥行きで空間を支える基本
人物と背景の前後関係を崩したくない際や、空間の広がりを残したいときに向いています。
OpenPose は、人物ポーズを合わせる基本
立ち姿、手の位置、体の向きなど、人物の姿勢を寄せたいときに最初に触るべき機能です。
この3つを押さえると、輪郭・奥行き・骨格という、画像の形を決める大事な3要素をひと通り学べます。つまり、ControlNetの入口として非常にバランスがよいわけです。逆に最初から全部の機能に手を出すと、「何がどう効いたのか」が分かりにくくなります。
なので本節では、まず Canny・Depth・OpenPose を基本の三本柱として解説し、そのうえで必要に応じて他のControl Typeへ広げていく流れで解説します。
ただし、SDXL環境ではOpenPoseだけは少し事情が違うことがあり。統合型のモデル、 xinsir/controlnet-union-sdxl-1.0 は多機能で便利ですが、OpenPoseの効きは十分でない場面がありますので。そのため本節では、CannyとDepthは統合型モデルを基本にしつつ、OpenPoseだけは専用モデルも視野に入れるという構成で解説します。
Forge Classic の画面には多くの Control Type が並びますが、最初から全部を覚える必要はありませんので。本節ではまず、輪郭を扱う Canny、奥行きを扱う Depth、骨格を扱う OpenPose の3つを基本として、ControlNetの考え方と使い方を順に見ていきましょう。
最初にやることは、とても単純です。ローカル環境で Controlnet を使用する際は、手動で
以下のモデルをダウンロードして正しい場所に保存しましょう。
---
この記事の続きはこちら https://note.com/aicu/n/n45ed85909537
Originally published at note.com/aicu on Jul 14, 2026.