- ソフト・サービス
- ComfyUI
- ComfyUIの画像の制御
- ComfyUIのCanny・Lineart・Scribble|線で決める形
ComfyUI
ComfyUIのCanny・Lineart・Scribble|線で決める形
ComfyUIのCanny・Lineart・Scribble|線で決める形
この記事では、ControlNet の Canny・Lineart・Scribble の3つを使い、写真や手描きの線から、形を保ったまま住宅の外観を作ります。
3つに渡す線の作り方と、できる画像の違いも比べます。
画面:ComfyUI v0.37.0 ポータブル版(Windows・2026年9月)ComfyUIのCanny・Lineart・Scribbleとは|線で決める形
ControlNet は、形の手がかりになる画像を、画像を作るモデルに足して渡す仕組みです。
線で形を決める ControlNet には Canny・Lineart・Scribble の3つがあり、学習に使った線の種類が違います。
3つとも、SD1.5(文章から画像を作るモデル Stable Diffusion の 1.5 版)用の ControlNet 1.1 のモデルを使います。
渡す線は、それぞれが学習に使った線に合わせてください。
| ControlNet | ファイル | 学習に使った線 | 渡す線の作り方 |
|---|---|---|---|
| Canny | control_v11p_sd15_canny_fp16.safetensors | キャニーの線。閾値(線として拾う輪郭の強さの境目)を1つに決めず、いろいろな値で取った線で学習した | 組み込みの「キャニー」(写真から輪郭の線を取るノード) |
| Lineart | control_v11p_sd15_lineart_fp16.safetensors | 画像から作った線画 | comfyui_controlnet_aux の「Realistic Lineart」など。手描きの線画も受け付ける |
| Scribble | control_v11p_sd15_scribble_fp16.safetensors | 画像から作った手描き風の線 | 手描きの線、または comfyui_controlnet_aux の「Fake Scribble Lines」など |
建物の形と窓の割り付けを強く残すなら、Canny か Lineart が向いています。
おおまかな形だけを決めて、細部は自由に描かせるなら、Scribble を使いましょう。
線のControlNetを使う前に|ComfyUIの言葉と用意するもの
手順に出てくる ComfyUI の言葉を、表にまとめました。
| 言葉 | 意味 |
|---|---|
| ポータブル版 | Python ごと1つのフォルダに入った、Windows 向けの ComfyUI。NVIDIA の GPU の PC では、展開したフォルダの中の run_nvidia_gpu.bat をダブルクリックして起動する。入れ方はComfyUI ポータブル版|Windowsで解説している |
| ノード | 画像を読み込む・画像を作るなど、処理を1つずつ受け持つ四角い部品 |
| キャンバス | ノードを並べてつなぐ、画面の広い作業の場 |
| 接続線 | ノードの出力の点と、別のノードの入力の点を結ぶ線。ドラッグで引く |
| ノード検索 | キャンバスの何も無い所をダブルクリックすると開く、ノードを名前で探す画面 |
| ワークフロー | ノードを接続線でつないだ、画像を作るまでの処理の流れ |
| モデル | 学習した結果を収めたファイル。画像を作る本体のモデルのほかに、ControlNet などが使う補助のモデルもある |
| チェックポイント | 画像を作るモデル・CLIP(プロンプトを読むモデル)・VAE をまとめた1つのファイル。「チェックポイントを読み込む」のノードで読むと、「モデル」「CLIP」「VAE」の3つが出る |
| SD1.5 | 2022年に公開された、文章から画像を作るモデル Stable Diffusion の 1.5 版 |
| dreamshaper_8 | SD1.5 をもとに作られた、チェックポイントの1つ |
| プロンプト | 作りたい画像を英語などで書いた文。1つめのプロンプト(ポジティブ)に描きたい物を、2つめ(ネガティブ)に描かせたくない物を書く。1つめは、Kサンプラーの「ポジティブ」の点につながっている方 |
| CLIPテキストエンコード(プロンプト) | プロンプトを書き込み、条件付けに変えるノード |
| 条件付け | プロンプトの文を、モデルが読める形に変えたもの |
| 潜在 | 画像のもとになる、小さく縮めたデータ。「VAEデコード」のノードで画像に戻す |
| Kサンプラー | ノイズを少しずつ取り除く処理(ステップ)を繰り返して、画像のもとになる潜在を作るノード |
| シード | 作る画像の元になる番号。同じプロンプトでも、シードが変わると別の画像になる |
| ControlNet | 画像を作るモデルに、形の手がかりになる画像を足して渡す仕組み |
| ControlNetモデルを読み込む | ControlNet のモデルのファイルを読むノード |
| ControlNetを適用 | プロンプトの条件付けに、手がかりの画像を足すノード |
| 強度 | ControlNet が効く強さ。大きいほど手がかりの画像に近くなり、0 では効かない |
| 前処理 | 画像から線や深度など、形の情報だけを取り出して別の画像にする処理 |
| 組み込みのノード | ComfyUI に初めから入っているノード |
| カスタムノード | ComfyUI にあとから足すノード |
キャンバスをダブルクリックした所に、ノード検索で押したノードが置かれます。
ワークフローは画面の右上の「実行する」で動き、作った画像は「画像を保存」のノードと ComfyUI/output のフォルダに出ます。
この記事の手順の出発点は、ControlNet を足したワークフローが開いている状態です。
| 用意するもの | 中身 |
|---|---|
| ControlNet を足したワークフロー | 文章から画像を作るワークフローに、「ControlNetモデルを読み込む」と「ControlNetを適用」を足したもの |
| SD1.5 のチェックポイント | この記事では dreamshaper_8 |
| 3つの ControlNet のモデル | 最初の節の表の3つのファイルを ComfyUI/models/controlnet に置いておく。配布元は、下のリンクの記事 |
| Lineart と Fake Scribble の前処理のノード | comfyui_controlnet_aux(前処理のノードをまとめたカスタムノード)を入れておく |
ControlNet の2つのノードの足し方とモデルの置き方は、ComfyUIのControlNetの基本|Load ControlNet Model・Apply ControlNet・強さと効く範囲で解説しています。
comfyui_controlnet_aux の入れ方は、ComfyUIの前処理|プリプロセッサ・comfyui_controlnet_auxを見てください。
画面の名前は日本語の表示で書いています。
英語で出ているときは、左下の歯車で設定を開き、検索の欄に Language と打って日本語を選びましょう。
モデルの置き場所の ComfyUI/models/… は、ポータブル版では ComfyUI_windows_portable の中の ComfyUI のフォルダの下です。
作例の画像は、次の設定で作りました。
1つめのプロンプトの文は、「a modern house exterior, white walls, gray tiled roof, wooden door, garden, blue sky, daylight, architectural photo」です。
| ノード | 欄と値 |
|---|---|
| チェックポイントを読み込む | dreamshaper_8(Civitai〈画像のモデルを配るサイト〉の DreamShaper 8 のページの dreamshaper_8.safetensors を落とし、ComfyUI/models/checkpoints に置く) |
| 2つめの「CLIPテキストエンコード(プロンプト)」(ネガティブ) | text, watermark, blurry, lowres, deformed |
| 空の潜在画像 | 幅 768・高さ 512 |
| Kサンプラー | シード 42・生成後の制御 fixed・ステップ 25・cfg 7.0・サンプラー名 euler・スケジューラ normal・ノイズ除去 1.00 |
はじめて実行する前に、表の値を各ノードの欄へ入れておきましょう。
記事と同じ条件で作れます。
手元の写真やパースを元の画像にして、試してみましょう。
設定が同じでも、元の画像が違えば結果は変わります。
Cannyの使い方|キャニーの線と閾値
Canny は、写真から取った輪郭の線を手がかりにします。
線を元の画像から作るのは、組み込みの「キャニー」のノードです。
キャニーの線を作る
「画像を
キャンバスの空いている所をダブルクリックし、ノード検索に「画像を読み込む」と打ちます。
一覧で同じ名前の行を押すと、ノードがキャンバスに置かれます。
元の
「画像を読み込む」の「アップロードするファイルを選択」を押し、形を残したい外観の画像を選びます。
ノードの下に、選んだ画像が出ます。

ComfyUI/input にコピーされるだけで、外には送られない「キャニー」
キャンバスの何も無い所をダブルクリックして、「Canny」と打ちます。
一覧で「キャニー」を押すと、キャンバスにノードが置かれます。
comfyui_controlnet_aux を入れていると、一覧に「Canny Edge」も並ぶでしょう。
ここで押すのは、右に Comfy と出る「キャニー」です。
元の
「画像を読み込む」の右にある「画像」の点を、「キャニー」の左の「イメージ」の点までドラッグします。
2つのノードが接続線でつながります。
キャニーの線で外観を作る
キャニーの
「キャニー」の右の「画像」の点から、「ControlNetを適用」の左の「画像」の点までドラッグします。
キャニーの線が、ControlNet の手がかりになります。
Canny の
「ControlNetモデルを読み込む」の「コントロールネット名」の欄(画面では「コント …」と縮めて出る)を押し、control_v11p_sd15_canny_fp16.safetensors を押します。
欄にモデルの名前が入ります。

作りたい外観を
1つめの「CLIPテキストエンコード(プロンプト)」の文の欄を押し、作りたい外観を英語で書きます。
書いた文が、欄に入ります。
「実行する」
画面の右上の「実行する」を押します。
「画像を保存」に、元の外観と同じ形の画像が出ます。

閾値で線の量を変える
キャニーの「低い閾値」と「高い閾値」(どちらも 0〜1 の数)で、拾う線の量が変わります。
線そのものを見るには、「キャニー」の右の「画像」の出力から接続線を引き出して「画像プレビュー」を置き、つないでおきます。
接続線は、1つの出力から何本でも引いてかまいません。
「低い閾値」
「キャニー」の「低い閾値」の欄で、左右の矢印のあいだの数を押します。
数を打つ欄に変わるので、0.1 と打って Enter を押すと、欄が 0.10 になります。
「高い閾値」
同じように「高い閾値」の欄を押し、0.3 と打って Enter を押します。
欄が 0.30 になります。
「実行する」
右上の「実行する」を押します。
「画像プレビュー」に線の量が変わったキャニーの線が、「画像を保存」にその線で作った外観が出ます。
同じ外観で、0.40・0.80(初めの値)と 0.70・0.99 も打って、3つの組み合わせを比べました。
比べ終えたら、2つの欄を 0.40・0.80 に戻してください。

線が多すぎると、植栽の葉のような細かい形まで残ります。
少なすぎると形が残らない所が出るので、初めの値の 0.40・0.80 から調整するとよいでしょう。
Lineartの使い方|Realistic Lineartの線画
Lineart は、きれいな線画を手がかりにします。
写真から線画を作るには、カスタムノード comfyui_controlnet_aux の「Realistic Lineart」を使います。
線画で外観を作る
「キャニー」
Canny で組んだワークフローの「キャニー」のノードの上端の、名前が出ている帯を押して選び、Delete を押します。
キャンバスから「キャニー」が消え、つながっていた接続線もなくなります。
最後の節で3つを比べるときは、「キャニー」をもう一度置いてつなぎ直してください。
「Realistic Lineart」
キャンバスの空いている所をダブルクリックし、「Lineart」と打ちます。
一覧の「Realistic Lineart」を押すと、キャンバスに、そのノードが出ます。
元の
「画像を読み込む」の右にある「画像」の点を、「Realistic Lineart」の左の「image」の点までドラッグします。
2つのノードの間に接続線が引かれます。
線画を
「Realistic Lineart」の右の「画像」の点から、「ControlNetを適用」の左の「画像」の点までドラッグします。
線画が、ControlNet の手がかりになります。
Lineart の
「ControlNetモデルを読み込む」の「コントロールネット名」の欄を押し、control_v11p_sd15_lineart_fp16.safetensors を押します。
欄が、選んだモデルの名前に変わります。
実行して確かめる
画面の右上の、青い「実行する」を押してください。
「画像を保存」に、線画に沿った外観が出ます。

Realistic Lineart の「coarse」を enable にすると、太くおおまかな線画になります。
Lineart のモデルは、手で描いた線画も受け付けます。
Scribbleの使い方|手描きの線と写真の線
Scribble の手がかりは、手描きのおおまかな線です。
線の位置がずれていても、そこから形を読み取って描きます。
手描きの線で作る
線は、組み込みの Painter ノードで描けます。
Painter ノードは、ノードの中の黒い描く欄に、白い線で描けるノードです。
描けるのは Nodes 2.0(ノードの新しい表示)のときだけなので、先に表示を切り替えてください。
Nodes 2.0 に
画面の左上の ComfyUI のマークを押して、メニューを開きます。
「Nodes 2.0」の右のスイッチを押すと、ノードが新しい表示に変わります。

「Painter」
キャンバスの空いている所をダブルクリックし、「Painter」と打って、一覧の同じ名前の行を押します。
キャンバスに、黒い描く欄の付いたノードが置かれます。
黒い描く欄に
「Painter」のノードの黒い描く欄の上で、ドラッグして家の形を描きます。
ドラッグした所に、白い線が引かれます。
描いた線を
「Painter」の右の「画像」の点から、「ControlNetを適用」の左の「画像」の点までドラッグします。
描いた線が、ControlNet の手がかりになります。
このとき、前の線から「ControlNetを適用」への接続線は外れて、新しい線に置き換わりました。
Scribble の
「ControlNetモデルを読み込む」の「コントロールネット名」の欄を押し、control_v11p_sd15_scribble_fp16.safetensors を押します。
選んだファイルの名前が欄に出ます。
実行して画像を
右上の青い「実行する」を押しましょう。
「画像を保存」に、描いた線から作った外観が出ます。

Painter ノードの使い方は、「ComfyUIのマスクエディタ|マスクの描き方と設定」(準備中)の記事で解説します。
写真から Scribble の線を作る
写真から手描き風の線を作るには、comfyui_controlnet_aux の「Fake Scribble Lines」を使います。
「Fake Scribble Lines」
キャンバスの空いている所をダブルクリックし、「Fake Scribble」と打ちます。
一覧の「Fake Scribble Lines (aka scribble_hed)」を押すと、押したノードが、キャンバスに置かれます。
元の
「画像を読み込む」の右の「画像」の点から、「Fake Scribble Lines」の左の「image」の点までドラッグします。
写真が、手描き風の線に変えられるようになります。
線を
「Fake Scribble Lines」の右の「画像」の点から、「ControlNetを適用」の左の「画像」の点までドラッグします。
「Painter」からの線は外れ、写真から作った線が手がかりになります。
「実行する」
画面の右上にある「実行する」を押します。
「画像を保存」に、太い線から作った外観が出ます。

Canny・Lineart・Scribbleの違い|同じ外観で比べる
同じ外観の画像から、3つの ControlNet で作った画像を並べました。
3つとも、プロンプトと強度(1.00)を同じにし、シードも 42 に固定して作っています。
比べるときは、線を作るノード(キャニー・Realistic Lineart・Fake Scribble Lines)と「コントロールネット名」のモデルを、組ごとに入れ替えて1回ずつ実行します。
シードを
Nodes 2.0 の表示では「生成後の制御」の欄が見えないので、先に元の表示に戻してください。
Kサンプラーの「シード」の欄を押して 42 と打ち、Enter で決めます。
Kサンプラーの「生成後の制御」の欄を押して、一覧から fixed を選びます。
実行しても「シード」の数が変わらないので、比べられるのは ControlNet の違いだけです。


| ControlNet | 形の残り方 | 向いている使い方 |
|---|---|---|
| Canny | 輪郭をそのまま残す。閾値しだいで、植栽などの細かい線まで残る | 写真やパースの形を崩さずに、材料や光だけを変える |
| Lineart | 線画の線を残す。手描きの線画も使える | CAD や手描きの線画から画像を作る |
| Scribble | おおまかな形だけを残す | スケッチの段階の形から、案をいくつも作る |
表の3つは、どれも「強度」を下げたり、「終了パーセント」(ControlNet を、画像を作る処理の何割目まで効かせるかの値)を小さくしたりすると、形の縛りがゆるくなります。
線のControlNetのとおりにならないとき
| 起きること | 直し方 |
|---|---|
| 「Painter」の黒い描く欄をドラッグしても線が引けない | Nodes 2.0 になっていません。左上の ComfyUI のマークのメニューで、「Nodes 2.0」のスイッチを入れてください |
| 「Realistic Lineart」や「Fake Scribble Lines」がノード検索に出ない | comfyui_controlnet_aux が入っていません。入れ方は、前処理の記事を見てください |
| 植栽の葉や壁の模様まで形が残ってしまう | キャニーの2つの閾値を上げるか、Scribble に替えます |
| 窓や扉の位置が線とずれる | 「強度」が 1.00 より小さければ、1.00 に近づけます。Scribble なら、Canny か Lineart に替えるとよいでしょう |
| 「コントロールネット名」の一覧に、置いたモデルが出ない | ファイルが ComfyUI/models/controlnet に入っているかを確かめ、キャンバスで R を押して一覧を読み込み直します |
線のほかの手がかりで形を決める方法と、建築での使い方は、次の記事で解説しています。
- 前処理のノードの種類:ComfyUIの前処理|プリプロセッサ・comfyui_controlnet_aux
- 深度の画像で空間を決める:ComfyUIのDepth ControlNet|深度で決める奥行き
- 手描きのスケッチから建築のパースを作る:「ComfyUIのスケッチからのパース|線画のControlNet」(準備中)
参考にしたのは、ComfyUI の公式ドキュメントのControlNetのページと内蔵ノードのCannyのページ、ControlNet 1.1の作者の説明です(2026年9月29日に確認)。
会員登録(無料)
記事やテーマのお気に入り・学習履歴・フォローが使えます。
この記事について
PERSC編集部が、建築の制作に関わる知識を実務目線で整理しています。内容は公開・更新日時点の情報にもとづきます。誤りや古い情報にお気づきの場合はお問い合わせよりご連絡ください。

