> For the complete documentation index, see [llms.txt](https://docs.seaart.ai/guide-1/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.seaart.ai/guide-1/ja/seaart-aino/controlnet.md).

# ControlNet

ControlNetを使って、AI画像生成を思いどおりに調整しましょう。プリプロセッサの種類や仕組み、魅力的なAIアートを作るための使い方を紹介します。

### ControlNetとは？

ControlNetは、参考画像の輪郭、人物のポーズ、空間構造などの視覚情報を使って、AI画像生成をコントロールする機能です。

たとえば、写真のポーズを活かして服装の異なるキャラクターを生成したり、建物の主な輪郭を保ちながら、さまざまな表現スタイルを試したりできます。ControlNetの種類によって参照する情報が異なるため、残したい要素に合わせて選びましょう。

### ControlNetの仕組み

一般的なControlNetのワークフローは、**プリプロセッサ**と**ControlNetモデル**の2つで構成されます。

* **プリプロセッサ：** 参考画像から特定の視覚情報を抽出し、輪郭マップ、ポーズマップ、深度マップなどの制御用マップやプレビュー画像に変換します。
* **ControlNetモデル：** 抽出された制御情報を画像生成モデルに反映し、参考画像の構造、ポーズ、輪郭、奥行きなどを保ちながら画像を生成できるようにします。

通常、プリプロセッサとControlNetモデルは、対応するものを組み合わせる必要があります。たとえば、ポーズ用のプリプロセッサにはポーズ用のControlNetモデルを、深度用のプリプロセッサには深度用のControlNetモデルを使います。

#### ControlNetの使い方

> **始める前に：** 現在、ControlNetに対応していないモデルもあります。利用できるControlNetの種類や設定は、選択したモデルによって異なります。モデルのページに表示される項目を確認してください。ここではSDXLモデルを例に、ControlNetの使い方と種類の選び方を説明します。

**1. ControlNetを有効にする**

SeaArtの**画像作成画面**を開き、プロンプト入力欄の左側にある画像アイコンをクリックします。

<figure><img src="https://2219884424-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FigAtVLBrlaI8jVruJfC8%2Fuploads%2FoxuwXMBlhTLEk0K2BIei%2Fcontrolnet1.webp?alt=media&#x26;token=ff15bb67-18f9-44cd-bdfb-a3e87dd4f14d" alt="SeaArtの画像作成画面にある画像メニューのControlNet項目"><figcaption></figcaption></figure>

表示されたメニューから**ControlNet**を探し、**Canny**など、使いたい種類を選択します。その後、案内に従って参考画像をアップロードします。

<figure><img src="https://2219884424-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FigAtVLBrlaI8jVruJfC8%2Fuploads%2FB9SCHB71zW504ERpiwJZ%2Fcontrolnet2.webp?alt=media&#x26;token=e4d5f554-84e2-47c8-a113-3cab2c793b3c" alt="プロンプト入力欄の上に表示された参考画像と、サムネイルの下にあるCannyの表示"><figcaption></figcaption></figure>

**2. 参考画像の設定を開く**

アップロードした画像は、プロンプト入力欄の上に表示されます。サムネイルの下には、現在適用されているControlNetの種類が表示されます。

<figure><img src="https://2219884424-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FigAtVLBrlaI8jVruJfC8%2Fuploads%2FOrJtgEyO79aqXiKL8hic%2Fcontrolnet3.webp?alt=media&#x26;token=32c1628f-e833-466c-a246-a9d702c7d2ea" alt="ControlNetの種類がCannyに設定された参考画像の設定パネル"><figcaption></figcaption></figure>

参考画像をクリックして、設定パネルを開きます。

**3. ControlNetの種類を切り替える**

設定パネルで、\*\*「ControlNetの種類（ControlNet Type）」\*\*をクリックします。現在の設定に応じて、**Canny**などの種類が表示されています。

<figure><img src="https://2219884424-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FigAtVLBrlaI8jVruJfC8%2Fuploads%2Fz0f2geEjmryyb1cqcKH4%2Fcontrolnet4.webp?alt=media&#x26;token=76bb5f0c-e913-46c9-987b-446960d394b3" alt="利用できる種類と確認ボタンが表示されたControlNetの選択パネル"><figcaption></figcaption></figure>

一覧から使いたい種類を選び、\*\*「確認（Confirm）」\*\*をクリックします。

ここからは、各ControlNetの特徴を紹介します。参考画像のどの情報を残したいかに合わせて選びましょう。

#### **Canny**

**基本情報**

Cannyは、入力画像の<mark style="background-color:yellow;">エッジ（輪郭）情報</mark>を検出し、アップロードした画像から精密な線画を抽出します。その情報とプロンプトをもとに、元の構図を保ちながら新しい画像を生成します。

<figure><img src="https://2219884424-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FigAtVLBrlaI8jVruJfC8%2Fuploads%2FWID88kYz6RagZgC0uovG%2F26df399a-12dd-4eeb-a352-ffdbcd5a3b84.png?alt=media&#x26;token=5fea1d87-b808-4b35-b62b-a7cb40b1ed9e" alt="3Dアニメ調の画像をCannyで前処理した比較" width="563"><figcaption><p>元画像 / 前処理後</p></figcaption></figure>

**プリプロセッサ**

* **canny：** くっきりとしたエッジを検出します。
* **invert：** 線画の色を反転し、白い背景に黒い線の画像にします。

<figure><img src="https://2219884424-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FigAtVLBrlaI8jVruJfC8%2Fuploads%2FohDKUdJBxtvylw8iRzJS%2F54f8a769-fde5-4b77-9400-9020d4163d0f.png?alt=media&#x26;token=470bd547-92ca-4657-8e81-f2ce55016cb9" alt="スケッチ画像にinvertを適用した比較" width="563"><figcaption><p>元画像 / invert</p></figcaption></figure>

invertはCanny専用ではなく、多くの線画系モデルと組み合わせて使えます。Line ArtやMLSDなどのControlNetを選んだ場合にも利用できます。

**インテリジェント分析**

画像からプロンプトやモデルを推定します。元の画像とは異なるスタイルにしたい場合は、インテリジェント分析をオフにすることをおすすめします。

**パラメータ設定**

<mark style="background-color:yellow;">前処理解像度</mark>

前処理解像度は、プレビュー画像の出力解像度に影響します。画像のアスペクト比は固定され、標準では元画像と同じ倍率で出力されるため、この設定は基本的にプレビュー画像の横幅を決めるものです。

たとえば、元画像と生成する画像のサイズがどちらも512×768の場合、前処理解像度を128、256、512、1024に設定すると、前処理後の画像サイズはそれぞれ次のようになります。

* 128：128×192（元画像の0.25倍）
* 256：256×384（元画像の0.5倍）
* 512：512×768（元画像と同じ）
* 1024：1024×1536（元画像の2倍）

<mark style="color:red;">一般に、解像度を高くするほど、生成画像の細部が豊かになります。</mark>

<mark style="color:red;">※</mark>前処理で作成した画像と、最終的に生成する画像の<mark style="background-color:yellow;">サイズが合っていない</mark>場合、描写が崩れたり、被写体の輪郭に目立つギザギザが生じたりすることがあります。

<figure><img src="https://2219884424-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FigAtVLBrlaI8jVruJfC8%2Fuploads%2FPFiQaO1cw3W3XwEsGSNs%2FRainbow%20%C3%97%20SeaArt%20AI%20(1).png?alt=media&#x26;token=ab94f4cd-5b96-45a7-a3a4-851f4b92069c" alt="Cannyの前処理解像度を変えた場合の比較"><figcaption></figcaption></figure>

<mark style="background-color:yellow;">制御の重み（Control Weight）</mark>

ControlNetの影響の強さを設定します。値を高くするほど制御が強まり、生成画像は元画像の特徴に近づきます。

<figure><img src="https://2219884424-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FigAtVLBrlaI8jVruJfC8%2Fuploads%2FMVmdtsa6TiDkeLQ9oO8D%2F%25E6%258E%25A7%25E5%2588%25B6%25E6%259D%2583%25E9%2587%258D.png?alt=media&#x26;token=722ec59b-6582-4558-909a-23f77d951ae0" alt="Cannyの制御の重みを変えて生成したスーパーマンの画像の比較" width="506"><figcaption></figcaption></figure>

<mark style="background-color:yellow;">制御モード（Control Mode）</mark>

ControlNetとプロンプトのどちらを優先するかを設定します。初期設定は「バランス」です。

* **プロンプトを優先：** 制御用マップの影響を弱めます。
* **前処理画像を優先：** 制御用マップの影響を強めます。

<mark style="background-color:yellow;">生成結果</mark>

以下の例では、基本的な構図は元画像と同じですが、細部は大きく変わっています。髪の色、顔の細部、服装などを変えたい場合は、プロンプトやパラメータを調整して、希望する仕上がりに近づけましょう。

<figure><img src="https://2219884424-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FigAtVLBrlaI8jVruJfC8%2Fuploads%2F1a0EtnSZvROp78CH67y7%2Fca%25E7%25BB%2593%25E6%259E%259C.png?alt=media&#x26;token=d5daf961-fbb1-4267-a615-9385e16297a2" alt="異なるモデルで生成したスーパーマンの画像4例"><figcaption></figcaption></figure>

#### **OpenPose Full**

**基本情報**

OpenPose Fullは、<mark style="background-color:yellow;">人物のポーズや表情の特徴</mark>を細かく指定するために使います。1人だけでなく、複数人のポーズにも対応しています。

頭、肩、肘、膝など、<mark style="background-color:yellow;">人体の骨格上の主要なポイントを検出</mark>します。服装、髪型、背景などの細部は参照せず、ポーズや表情の再現に必要な情報を抽出します。

**プリプロセッサ**

**人物のポーズ検出**

標準ではopenpose系のプリプロセッサを使います。<mark style="background-color:yellow;">openpose、face、faceonly、full、hand</mark>などがあり、顔、手足、手指など、検出する範囲が異なります。

**動物のポーズ検出**

animal\_openposeプリプロセッサの使用をおすすめします。control\_sd15\_animal\_openpose\_fp16など、動物のポーズ検出に対応した専用モデルと組み合わせて使えます。

<figure><img src="https://2219884424-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FigAtVLBrlaI8jVruJfC8%2Fuploads%2F0LNuqNhn93UWXeMwdBuz%2Ffba2887e-6a5a-46e4-a6cb-832db9277bde.png?alt=media&#x26;token=148a5ff9-9a71-4b20-8330-1370a216263a" alt="動物のポーズ検出" width="563"><figcaption></figcaption></figure>

通常は、標準のopenpose\_fullプリプロセッサで十分です。

#### **Line Art**

**基本情報**

Line Artも画像から輪郭線を抽出する機能ですが、実写向けとアニメ向けがあり、用途に合わせて使い分けられます。

**プリプロセッサ**

**Line Art**

実写画像に適しており、元画像の特徴をよく残した線画を抽出します。輪郭の細部を多く検出するため、細かな形状まで生成に反映しやすくなります。

**Line ArtとCannyの違い**

* **Canny：** くっきりとした、太さが比較的均一な線を抽出します。
* **Line Art：** 手描きの下描きに近い筆致があり、輪郭に応じた線の太さの変化が見られます。

Line Artは<mark style="background-color:yellow;">より多くの細部を残し</mark>、<mark style="background-color:yellow;">比較的柔らかな仕上がり</mark>になるため、線画への着色にも適しています。

Cannyは、画像の内容を<mark style="background-color:yellow;">より明確でシンプルな輪郭として捉えます。</mark>

<mark style="color:red;">※Line Artは、下描きの形をしっかり活かした着色にも使えます。</mark>

#### **Depth**

**基本情報**

Depthは、シーン内の物体の奥行きを表す情報です。距離画像とも呼ばれ、白黒の濃淡で表示されます。<mark style="background-color:yellow;">カメラに近いものほど明るく白く、遠いものほど暗く黒く表されます。</mark>

<figure><img src="https://2219884424-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FigAtVLBrlaI8jVruJfC8%2Fuploads%2FAy3APC4KTHkMlMQPHSsF%2F25cfc1a4-9c25-4290-8596-d11eb4657188.png?alt=media&#x26;token=8b06a194-46bf-4682-b54a-5a035b19cc75" alt="元画像とDepthで処理した画像の比較"><figcaption><p>元画像 / Depth</p></figcaption></figure>

画像から物体の<mark style="background-color:yellow;">前後関係</mark>を抽出して深度マップを作成し、画像生成に利用します。シーン内の<mark style="background-color:yellow;">物体の位置関係や奥行きを明確にしたい</mark>ときに役立ちます。

よりよい生成結果を得るには、<mark style="background-color:red;">depth\_midas</mark>プリプロセッサの使用をおすすめします。

<figure><img src="https://2219884424-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FigAtVLBrlaI8jVruJfC8%2Fuploads%2F0nxK0jkU9jIfQulyPiXS%2Fe673e27a-5c5a-4dbe-8bd3-12dc046d21bb.png?alt=media&#x26;token=4e06806a-eec3-41e1-818b-4a52ee009cb8" alt="元画像、深度マップ、生成結果の比較"><figcaption><p>元画像 / Depth / 生成結果</p></figcaption></figure>

#### **Normal Bae**

**基本情報**

Normal Baeは、シーンの光や陰影の情報をもとに、物体表面の向きを表す法線マップを生成します。これにより、<mark style="background-color:yellow;">物体表面の細かな凹凸や質感</mark>を表現し、シーン内の配置を再現しやすくなります。物体表面の<mark style="background-color:yellow;">よりリアルな光と陰影</mark>を表現したい場合に役立ちます。以下の例では、適用後に光や陰影の表現が大きく変化していることがわかります。

光や陰影の変化をよりはっきり反映させたい場合は、<mark style="background-color:red;">normal\_bae</mark>プリプロセッサを選ぶことをおすすめします。

<figure><img src="https://2219884424-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FigAtVLBrlaI8jVruJfC8%2Fuploads%2Fz79H8k0P1R4mlXaBSVwf%2F8d40f66d-90e1-4aee-9f10-d8802578e682.png?alt=media&#x26;token=e0cc57f9-b69e-4918-9351-9d0fa8be74d8" alt="元画像、Normal Baeの法線マップ、生成結果の比較"><figcaption><p>元画像 / Normal Bae / 生成結果</p></figcaption></figure>

#### **Segmentation**

**基本情報**

Segmentationは、画像内の輪郭を検出しながら、シーンを複数の領域に分割し、それぞれに「人物」「地面」などの意味を割り当てます。これにより、<mark style="background-color:yellow;">画像の内容や配置をより細かく制御できます。</mark>

以下の例では、領域分割後の画像が色分けされています。人物は赤、地面は茶色、看板はピンクなど、シーン内の要素ごとに異なる色が割り当てられています。生成時には、それぞれの色の領域内に対応するものを描くため、元画像の内容や配置を再現しやすくなります。

標準の<mark style="background-color:red;">seg\_ufade20k</mark>プリプロセッサの使用をおすすめします。また、前処理画像の色分けされた領域を塗り替えることで、生成する内容を変更することもできます。

<figure><img src="https://2219884424-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FigAtVLBrlaI8jVruJfC8%2Fuploads%2FNHFnAXdy7lUWwxSfPBkN%2F17ee3ab3-bd91-47f4-8818-5b10e3dd9bbf.png?alt=media&#x26;token=e0eed696-fa77-42d7-9850-dc93533bb6f6" alt="元画像、Segmentationの領域分割画像、生成結果の比較"><figcaption><p>元画像 / Segmentation / 生成結果</p></figcaption></figure>

#### **Tile Resample**

Tile Resampleは、画質の劣化を抑えながら、低解像度の画像を高解像度化するために使います。

プリプロセッサには、tile\_resample、tile\_colorfix、tile\_colorfixsharpの3種類があります。

<figure><img src="https://2219884424-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FigAtVLBrlaI8jVruJfC8%2Fuploads%2FWPbq0nEQduFJjQ9F5ePa%2F%25E8%25B6%2585%25E6%25B8%2585%25E9%2587%258D%25E7%25BB%2598.png?alt=media&#x26;token=35d1aa4e-5c84-4753-8284-fc1201b1568f" alt="異なるプリプロセッサで処理したアニメ調のオオカミ画像の比較"><figcaption></figcaption></figure>

<mark style="color:red;">※</mark>標準の<mark style="background-color:red;">resample</mark>は、ほかの方式と比べて描写の自由度が高く、元画像の内容から大きく変わらずに生成できます。

#### **MLSD**

**基本情報**

MLSDは、シーン内の<mark style="background-color:yellow;">直線的なエッジ</mark>を抽出します。物体の直線的・幾何学的な輪郭を捉えるのに適しており、主に<mark style="background-color:yellow;">建築やインテリアデザインなどの分野</mark>で役立ちます。

<figure><img src="https://2219884424-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FigAtVLBrlaI8jVruJfC8%2Fuploads%2FOLVtg04MMLzX6UfuXxkm%2F26c049a8-4c7f-4658-8444-4ba7f0d66c57.png?alt=media&#x26;token=1905f58c-959c-45d6-9eaa-cf05c1216a65" alt="元画像、MLSDの検出画像、生成結果の比較"><figcaption></figcaption></figure>

#### **Scribble HED**

**基本情報**

Scribble HEDは、クレヨンで描いたラフな線画のような情報を使い、比較的自由度の高い画像生成を行えます。

プリプロセッサには、HED、PiDiNet、XDoG、t2ia\_sketch\_pidiがあります。

これらを比較すると、前の2つは輪郭線が太く、手描きの落書きに近い表現になります。後ろの2つは線が細く、リアルな表現に向いています。

<mark style="color:red;">※下描きへの着色にも使えますが、仕上がりにはある程度のランダム性があります。</mark>

**HED**

**基本情報**

HEDは、Cannyに近い形で、<mark style="background-color:yellow;">物体の境界を明確に抽出</mark>します。表情、髪、指などの細かな特徴を残しながら、<mark style="background-color:yellow;">複雑な細部や輪郭を捉えられる</mark>のが特徴です。画像のスタイルや色を変える用途にも使えます。

Cannyと比べて、HEDは<mark style="background-color:yellow;">線が柔らかく、より多くの細部を残します。</mark>目的に合わせてプリプロセッサを選びましょう。

#### **color\_grid**

**基本情報**

プリプロセッサで画像を色のブロックに分け、その配色をもとに画像を描き直します。

#### **shuffle**

**基本情報**

参考画像の特徴をランダムに入れ替えて再構成します。生成画像の構造や内容は元画像と異なる場合がありますが、スタイルには元画像との共通点が残ります。

結果を安定して制御しにくいため、広く使われる方法ではありませんが、新しいアイデアを得たいときには試す価値があります。

<figure><img src="https://2219884424-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FigAtVLBrlaI8jVruJfC8%2Fuploads%2F4EKfSttSg1X6U4Odkw1R%2F1c1f5598-fb07-41ff-833b-b4c0cee7ea5e.png?alt=media&#x26;token=24917d02-60ae-4408-9a37-441cf22f8fee" alt="元画像、shuffleによる処理画像、生成結果の比較" width="563"><figcaption></figcaption></figure>

#### **参照生成（Reference Generation）**

**基本情報**

元画像を参考に、新しい画像を生成します。標準の<mark style="background-color:red;">「only」</mark>プリプロセッサの使用をおすすめします。

**制御の重み：** 値を高くするほど元画像の特徴が安定して反映され、元のスタイルがより強く残ります。

<figure><img src="https://2219884424-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FigAtVLBrlaI8jVruJfC8%2Fuploads%2FdZ8dsZj9eMX3nU94IoXF%2F%25E5%258F%2582%25E8%2580%2583%25E7%2594%259F%25E6%2588%2590.png?alt=media&#x26;token=e6c93c70-a374-4955-841a-d21fac4fcf0a" alt="アニメ調のキツネ画像を参考に生成したバリエーション"><figcaption></figcaption></figure>

#### **recolor**

画像に色を付ける機能で、古い白黒写真のカラー化などに適しています。ただし、狙った場所に正確に色が付くとは限らず、色がほかの領域ににじむ場合もあります。

**プリプロセッサ：**「intensity」と「luminance」があり、<mark style="background-color:red;">「luminance」</mark>の使用をおすすめします。

<figure><img src="https://2219884424-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FigAtVLBrlaI8jVruJfC8%2Fuploads%2FUlQKi0YmVJK8osCl7nsO%2Fd857536d-c629-4fc7-b1c8-b8158b54ac9d.png?alt=media&#x26;token=6a514cea-1527-4f8d-80b0-2c3f71edfade" alt="元画像、recolor_luminance、recolor_intensityの比較"><figcaption></figcaption></figure>

#### **ip\_adapter**

**基本情報**

アップロードした画像を、画像によるプロンプトとして使います。参考画像のスタイルや内容を読み取り、似た作品を生成できます。ほかのControlNetと組み合わせて使うこともできます。

<figure><img src="https://2219884424-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FigAtVLBrlaI8jVruJfC8%2Fuploads%2FzrySeb4o3yRECgplxNRs%2F3f9ee50e-8c2b-45ff-80cc-f64f96375759.png?alt=media&#x26;token=fbe2d1c8-6642-48b9-aea0-45e06352cb47" alt="ip_adapterで参考画像をもとに新しい画像を生成する"><figcaption></figcaption></figure>

<figure><img src="https://2219884424-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FigAtVLBrlaI8jVruJfC8%2Fuploads%2FzrySeb4o3yRECgplxNRs%2F3f9ee50e-8c2b-45ff-80cc-f64f96375759.png?alt=media&#x26;token=fbe2d1c8-6642-48b9-aea0-45e06352cb47" alt="ip_adapterで参考画像をもとに新しい画像を生成する"><figcaption></figcaption></figure>

<mark style="color:$danger;">**設定と使い方のコツ**</mark>

1. 生成のもとにする画像Aをアップロードし、Canny、OpenPose、DepthなどのControlNetを選択します。
2. ControlNetをもうひとつ追加してip\_adapterを選び、取り入れたいスタイルの画像Bをアップロードします。最後に「生成」をクリックします。

<mark style="background-color:red;">生成結果：画像Aの構造やポーズなどを活かしながら、画像Bのスタイルを取り入れた画像になります。</mark>
