search
  1. ソフト・サービス
  2. ComfyUI
  3. ComfyUIの画像の制御
  4. ComfyUIのCanny・Lineart・Scribble|線で決める形

ComfyUI

ComfyUIのCanny・Lineart・Scribble|線で決める形

編集部 読了 約18分

この記事では、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ファイル学習に使った線渡す線の作り方
Cannycontrol_v11p_sd15_canny_fp16.safetensorsキャニーの線。閾値(線として拾う輪郭の強さの境目)を1つに決めず、いろいろな値で取った線で学習した組み込みの「キャニー」(写真から輪郭の線を取るノード)
Lineartcontrol_v11p_sd15_lineart_fp16.safetensors画像から作った線画comfyui_controlnet_aux の「Realistic Lineart」など。手描きの線画も受け付ける
Scribblecontrol_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.52022年に公開された、文章から画像を作るモデル Stable Diffusion の 1.5 版
dreamshaper_8SD1.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 は、写真から取った輪郭の線を手がかりにします。
線を元の画像から作るのは、組み込みの「キャニー」のノードです。

キャニーの線を作る

「画像を読み込む」を置く

キャンバスの空いている所をダブルクリックし、ノード検索に「画像を読み込む」と打ちます。
一覧で同じ名前の行を押すと、ノードがキャンバスに置かれます。

元の外観の画像をアップロードする

「画像を読み込む」の「アップロードするファイルを選択」を押し、形を残したい外観の画像を選びます。
ノードの下に、選んだ画像が出ます。

画像を読み込むのノード。「アップロードするファイルを選択」のボタンを赤い枠で囲んでいる
外観の画像を読み込んだところ。画像は PC の ComfyUI/input にコピーされるだけで、外には送られない

「キャニー」を置く

キャンバスの何も無い所をダブルクリックして、「Canny」と打ちます。
一覧で「キャニー」を押すと、キャンバスにノードが置かれます。

comfyui_controlnet_aux を入れていると、一覧に「Canny Edge」も並ぶでしょう。
ここで押すのは、右に Comfy と出る「キャニー」です。

元の画像を「キャニー」につなぐ

「画像を読み込む」の右にある「画像」の点を、「キャニー」の左の「イメージ」の点までドラッグします。
2つのノードが接続線でつながります。

キャニーの線で外観を作る

キャニーの線を「ControlNetを適用」につなぐ

「キャニー」の右の「画像」の点から、「ControlNetを適用」の左の「画像」の点までドラッグします。
キャニーの線が、ControlNet の手がかりになります。

Canny のモデルを選ぶ

「ControlNetモデルを読み込む」の「コントロールネット名」の欄(画面では「コント …」と縮めて出る)を押し、control_v11p_sd15_canny_fp16.safetensors を押します。
欄にモデルの名前が入ります。

Canny の ControlNet のワークフローの全体。左下のキャニーと、ControlNetモデルを読み込むを赤い枠で囲んでいる
キャニーの出力が「ControlNetを適用」の「画像」に入っている

作りたい外観をプロンプトに書く

1つめの「CLIPテキストエンコード(プロンプト)」の文の欄を押し、作りたい外観を英語で書きます。
書いた文が、欄に入ります。

「実行する」を押す

画面の右上の「実行する」を押します。
「画像を保存」に、元の外観と同じ形の画像が出ます。

キャニーの線と、その線で作った外観
プロンプトは「a modern house exterior, white walls, gray tiled roof, wooden door, garden, blue sky, daylight, architectural photo」。2階の張り出しと窓の位置が元の画像のとおりになった

閾値で線の量を変える

キャニーの「低い閾値」と「高い閾値」(どちらも 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.10・0.30、0.40・0.80、0.70・0.99 にしたキャニーの線の並び
0.10・0.30 では植栽の葉や窓の中まで線になった。0.70・0.99 では外壁の輪郭も途切れた

線が多すぎると、植栽の葉のような細かい形まで残ります。
少なすぎると形が残らない所が出るので、初めの値の 0.40・0.80 から調整するとよいでしょう。

Lineartの使い方|Realistic Lineartの線画

Lineart は、きれいな線画を手がかりにします。
写真から線画を作るには、カスタムノード comfyui_controlnet_aux の「Realistic Lineart」を使います。

線画で外観を作る

「キャニー」を消す

Canny で組んだワークフローの「キャニー」のノードの上端の、名前が出ている帯を押して選び、Delete を押します。
キャンバスから「キャニー」が消え、つながっていた接続線もなくなります。

最後の節で3つを比べるときは、「キャニー」をもう一度置いてつなぎ直してください。

「Realistic Lineart」を置く

キャンバスの空いている所をダブルクリックし、「Lineart」と打ちます。
一覧の「Realistic Lineart」を押すと、キャンバスに、そのノードが出ます。

元の画像を「Realistic Lineart」につなぐ

「画像を読み込む」の右にある「画像」の点を、「Realistic Lineart」の左の「image」の点までドラッグします。
2つのノードの間に接続線が引かれます。

線画を「ControlNetを適用」につなぐ

「Realistic Lineart」の右の「画像」の点から、「ControlNetを適用」の左の「画像」の点までドラッグします。
線画が、ControlNet の手がかりになります。

Lineart のモデルを選ぶ

「ControlNetモデルを読み込む」の「コントロールネット名」の欄を押し、control_v11p_sd15_lineart_fp16.safetensors を押します。
欄が、選んだモデルの名前に変わります。

実行して確かめる

画面の右上の、青い「実行する」を押してください。
「画像を保存」に、線画に沿った外観が出ます。

Realistic Lineart の線画と、その線画で作った外観
線画は、キャニーより手すりや植栽の線が細かく、途切れが少ない

Realistic Lineart の「coarse」を enable にすると、太くおおまかな線画になります。
Lineart のモデルは、手で描いた線画も受け付けます。

Scribbleの使い方|手描きの線と写真の線

Scribble の手がかりは、手描きのおおまかな線です。
線の位置がずれていても、そこから形を読み取って描きます。

手描きの線で作る

線は、組み込みの Painter ノードで描けます。
Painter ノードは、ノードの中の黒い描く欄に、白い線で描けるノードです。

描けるのは Nodes 2.0(ノードの新しい表示)のときだけなので、先に表示を切り替えてください。

Nodes 2.0 に切り替える

画面の左上の ComfyUI のマークを押して、メニューを開きます。
「Nodes 2.0」の右のスイッチを押すと、ノードが新しい表示に変わります。

ComfyUI のマークを押して開くメニュー。Nodes 2.0 にベータ版の印とスイッチがある
もう一度スイッチを押すと、元の表示に戻る

「Painter」を置く

キャンバスの空いている所をダブルクリックし、「Painter」と打って、一覧の同じ名前の行を押します。
キャンバスに、黒い描く欄の付いたノードが置かれます。

黒い描く欄に線を描く

「Painter」のノードの黒い描く欄の上で、ドラッグして家の形を描きます。
ドラッグした所に、白い線が引かれます。

描いた線を「ControlNetを適用」につなぐ

「Painter」の右の「画像」の点から、「ControlNetを適用」の左の「画像」の点までドラッグします。
描いた線が、ControlNet の手がかりになります。

このとき、前の線から「ControlNetを適用」への接続線は外れて、新しい線に置き換わりました。

Scribble のモデルを選ぶ

「ControlNetモデルを読み込む」の「コントロールネット名」の欄を押し、control_v11p_sd15_scribble_fp16.safetensors を押します。
選んだファイルの名前が欄に出ます。

実行して画像を出す

右上の青い「実行する」を押しましょう。
「画像を保存」に、描いた線から作った外観が出ます。

Painter で描いた家の線と、その線で作った外観
四角と三角だけの線から、屋根・窓・扉のある外観になった

Painter ノードの使い方は、「ComfyUIのマスクエディタ|マスクの描き方と設定」(準備中)の記事で解説します。

写真から Scribble の線を作る

写真から手描き風の線を作るには、comfyui_controlnet_aux の「Fake Scribble Lines」を使います。

「Fake Scribble Lines」を置く

キャンバスの空いている所をダブルクリックし、「Fake Scribble」と打ちます。
一覧の「Fake Scribble Lines (aka scribble_hed)」を押すと、押したノードが、キャンバスに置かれます。

元の画像を「Fake Scribble Lines」につなぐ

「画像を読み込む」の右の「画像」の点から、「Fake Scribble Lines」の左の「image」の点までドラッグします。
写真が、手描き風の線に変えられるようになります。

線を「ControlNetを適用」につなぐ

「Fake Scribble Lines」の右の「画像」の点から、「ControlNetを適用」の左の「画像」の点までドラッグします。
「Painter」からの線は外れ、写真から作った線が手がかりになります。

「実行する」で作る

画面の右上にある「実行する」を押します。
「画像を保存」に、太い線から作った外観が出ます。

Fake Scribble Lines で作った太い線と、その線で作った外観
線は太くおおまかでも、2階建ての形とバルコニーの位置が残った

Canny・Lineart・Scribbleの違い|同じ外観で比べる

同じ外観の画像から、3つの ControlNet で作った画像を並べました。
3つとも、プロンプトと強度(1.00)を同じにし、シードも 42 に固定して作っています。

比べるときは、線を作るノード(キャニー・Realistic Lineart・Fake Scribble Lines)と「コントロールネット名」のモデルを、組ごとに入れ替えて1回ずつ実行します。

シードを固定する

Nodes 2.0 の表示では「生成後の制御」の欄が見えないので、先に元の表示に戻してください。

Kサンプラーの「シード」の欄を押して 42 と打ち、Enter で決めます。
Kサンプラーの「生成後の制御」の欄を押して、一覧から fixed を選びます。

実行しても「シード」の数が変わらないので、比べられるのは ControlNet の違いだけです。

Kサンプラーのノード。「シード」と「生成後の制御」の欄を赤い枠で囲んでいる
元の表示に戻すには、左上の ComfyUI のマークのメニューで「Nodes 2.0」のスイッチを切る
元の画像と、Canny・Lineart・Scribble で作った外観の並び
Canny と Lineart は窓の割り付けと手すりまで元の画像に近い。Scribble は形は同じで、窓と扉の細部が変わった
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 の公式ドキュメントのControlNetのページと内蔵ノードのCannyのページ、ControlNet 1.1の作者の説明です(2026年9月29日に確認)。

会員登録(無料)

記事やテーマのお気に入り・学習履歴・フォローが使えます。

この記事について

PERSC編集部が、建築の制作に関わる知識を実務目線で整理しています。内容は公開・更新日時点の情報にもとづきます。誤りや古い情報にお気づきの場合はお問い合わせよりご連絡ください。

あわせて読みたい