私的AI研究会 > ComfyUI3
画像生成AI「ComfyUI」3(応用編)†
「ComfyUI」を使ってローカル環境でのAI画像生成を検証する
▼ 目 次
▲ 目 次
※ 最終更新:2026/01/26
「ComfyUI」『ControlNet』†
「ComfyUI」で『ControlNet』を使用する
プロジェクトで作成するワークフロー†
ワークフローと動作環境による生成時間(分:秒)
ワークフロー 機 能 CPU CPU
RTX 4070 RTX 4060 RTX 4060L RTX 3050 GTX 1050 i7-1260P i7-1185G7
t2i_controlnet_openpose.json bs_text2img_controlnet.json Open Pose 画像からポーズ抽出 00:12.27 00:15.70 00:35.19 00:27.38 01:16.45 08:56.46 07:37.76
t2i_controlnet_openpose_s.json 00:02.68 00:04.79 00:05.72 00:10.35 00:58.57 08:28.84 07:00.77
t2i_controlnet_canny.json Canny 画像から輪郭抽出 00:04.74 00:07.29 00:05.96 00:15.18 01:00.93 08:33.17 07:04.70
t2i_controlnet_depth.json Depth 画像から震度抽出 00:07.53 00:11.41 00:07.85 00:21.14 01:20.50 08:39.65 08:19.09
t2i_controlnet_lineart.json LineArt 画像から輪郭抽出 00:06.88 00:09.43 00:13.49 00:16.48 01:04.09 08:41.58 07:07.72
t2i_controlnet_Scribble.json Scribble 画像から輪郭抽出 00:05.07 00:08.06 00:08.04 00:13.77 01:01.03 08:10.12 07:00.35
t2i_controlnet_Segment.json Segmentation セグメント分け 00:08.54 00:11.59 00:15.29 00:21.14 01:12.83 17:03.79 07:50.29
t2i_controlnet_Shuffle.json Shuffle シャッフル 00:04.90 00:07.07 00:07.62 00:14.63 01:00.89 08:06.06 07:04.18
t2i_controlnet_MLSD.json MLSD 画像から直線抽出 00:06.99 00:10.03 00:14.20 00:16.77 01:04.49 07:24.77 07:02.57
t2i_controlnet_Normalmap.json Normalmaps 法線マップ 00:07.11 00:09.91 00:12.33 00:18.34 01:10.01 19:34.86 07:41.75
t2i_controlnet_SoftEdge.json Soft Edge 画像から輪郭抽出 00:05.14 00:07.84 00:09.05 00:15.08 01:02.06 09:03.51 07:03.79
t2i_controlnet_tile.json Tile 画像4倍拡大 00:04.07 00:07.58 00:07.77 00:14.92 01:01.13 08:58.65 06:58.09
カスタムノードのインストール †
『ComfyUI's ControlNet Auxiliary Preprocessors』 のインストール
1.「Manager」ボタンを押し「ComfyUI Manager」から「Custom Nodes Manager」を選択
2. 希望するノードが表示されていない場合は「ControlNet」を検索。インストールするノードの「Install」を押す
Title:
comfyui_controlnet_aux
3. バージョン番号を選択(基本「latest」を選択)
4. インストールが完了すると、ComfyUI の再起動を求められるので、下部の「Restart」ボタンを押す
5.「Confirm」(確認)ボタンを押すとインストール開始する
6. インストール完了すると再度確認ウインドウが開く(別のウインドウがオープンするので閉じる)
7.「ComfyUI Manager」でインストール完了となっていることを確認してブラウザと「Stability Matrix」を終了する
← インストール完了語の状態
『ControlNet』で使用する基本ノード†
3つのノードを組み合わせて使う
①「Load Controlnet Model」ノード
・ControlNet のモデルを読み込む
② ①に対応した preprocessor ノード(ここでは「OpenPose Pose」)
・モデルごとの対応 → https://github.com/Fannovel16/comfyui_controlnet_aux
③「Apply ControlNet」ノード
・ControlNet を適用して positive,negative のプロンプトに注入して送り出すノード
④「Load Image」ノード
・ControlNet に入力する画像を指定するノード
⑤「Preview Image」ノード
・ControlNet の処理画像を表示する(なくてもよい)
⑦ 各ノードを左図のように接続する
Open Pose 『text2img』で『ControlNet』を使用する基本ワークフロー†
画像からポーズを抽出して生成できる「OpenPose」を例にする
text2img 生成画像 Checkpoint (Model) Seed Sampler Steps Clip skip
beautifulRealistic _brav5 584105828 DPM++ 2M Karras 20 1
Prompt
best quality,masterpiece,ultra high res,photorealistic,RAW photo,a beautiful japanese woman,20yo,portrait,standing,looking at viewer,smile,t-shirt,in garden
最高品質、傑作、超高解像度、フォトリアリスティック、RAW写真、美しい日本人女性、20歳、ポートレート、立っている、見る者を見て、笑顔、Tシャツ、庭で
Negative prompt
illustration, 3d, sepia, painting, cartoons, sketch, worst quality, backlight, bad anatomy, bad hands, double navel, collapsed eyeshadow, multiple eyebrows, freckles, signature, logo, 2faces,
イラスト、3D、セピア、絵画、漫画、スケッチ、最悪の品質、バックライト、悪い解剖学、悪い手、二重のおへそ、崩れたアイシャドウ、複数の眉毛、そばかす、署名、ロゴ、2つの顔、
「_base/」 bs_text2img.json 『text-to-image』基本ワークフローを読み出す
①「bs_text2img.json」ワークフローをキャンバス上にドラッグ&ドロップする
② 前項『ControlNet』で使用する基本ノード ① ~ ⑤ を配置する
・ ① ~ ⑤ ノードを接続する
③「Ksampler」の positive, negative の接続を外し「Apply ControlNet」に接続する
④「Apply ControlNet」の positive, negative 出力を「Ksampler」の入力に接続する
⑤「Load Checkpoint」の VAE を 「Apply ControlNet」vae 入力に繋ぐ
⑥「Load Image」ノードに入力画像をドラッグ&ドロップする
『text-to-image』+『ControlNet』OpenPose 基本ワークフローの完成
①「Run」を押して画像を生成する
※ ワークフロー:「_base_t2i/」 t2i_controlnet_openpose.json ,「_base/」 bs_text2img_controlnet.json
姿勢推定画像(棒人間の画像)を入力する場合
・「Load Image」のノードに棒人間の画像を入力している場合は「Openpose Pose」のノードは不要
・予め作られているポーズをダウンロードできるサイト → OpenPoses
・「Openpose Pose」 ノードを右クリックで bypass を選択する
①「Run」を押して画像を生成する
※ ワークフロー:「_base_t2i/」 t2i_controlnet_openpose_s.json
Canny 『text2img』+『ControlNet』†
「_base/」 bs_text2img_controlnet.json 『text-to-image』ControlNet 基本ワークフローを読み出す
①「bs_text2img_controlnet.json」ワークフローをキャンバス上にドラッグ&ドロップする
②「Load Controlnet Model」ノードのモデルで canny を選択する
③ プリプロセッサとして「Canny Edge」 ノードに入れ替える
④ 基本ワークフローと同じように接続しなおす
『image-to-image』Canny ワークフローの完成
①「Run」を押して画像を生成する
※ ワークフロー:「_base_t2i/」 t2i_controlnet_canny.json
Depth 『text2img』+『ControlNet』†
「_base/」 bs_text2img_controlnet.json 『text-to-image』ControlNet 基本ワークフローを読み出す
①「test_text2img_controlnet.json」ワークフローをキャンバス上にドラッグ&ドロップする
②「Load Controlnet Model」ノードのモデルで depth を選択する
③ プリプロセッサとして「Depth Anything」 ノードに入れ替える
④ 基本ワークフローと同じように接続しなおす
『image-to-image』Depth ワークフローの完成
①「Run」を押して画像を生成する
※ ワークフロー:「_base_t2i/」 t2i_controlnet_depth.json
LineArt 『text2img』+『ControlNet』†
「_base/」 bs_text2img_controlnet.json 『text-to-image』ControlNet 基本ワークフローを読み出す
①「test_text2img_controlnet.json」ワークフローをキャンバス上にドラッグ&ドロップする
②「Load Controlnet Model」ノードのモデルで lineart を選択する
③ プリプロセッサとして「AnyLine Lineart」 ノードに入れ替える
④ 基本ワークフローと同じように接続しなおす
『image-to-image』LineArt ワークフローの完成
①「Run」を押して画像を生成する
※ ワークフロー:「_base_t2i/」 t2i_controlnet_lineart.json
Scribble 『text2img』+『ControlNet』†
「_base」 bs_text2img_controlnet.json 『text-to-image』ControlNet 基本ワークフローを読み出す
①「test_text2img_controlnet.json」ワークフローをキャンバス上にドラッグ&ドロップする
②「Load Controlnet Model」ノードのモデルで scribble を選択する
③ プリプロセッサとして「Scribble Lines」 ノードに入れ替える
④ 基本ワークフローと同じように接続しなおす
『image-to-image』Scribble ワークフローの完成
①「Run」を押して画像を生成する
※ ワークフロー:「_base_t2i/」 t2i_controlnet_Scribble.json
Segmentation 『text2img』+『ControlNet』†
「_base/」 bs_text2img_controlnet.json 『text-to-image』ControlNet 基本ワークフローを読み出す
①「test_text2img_controlnet.json」ワークフローをキャンバス上にドラッグ&ドロップする
②「Load Controlnet Model」ノードのモデルで segmentation を選択する
③ プリプロセッサとして「SAM Segmentor」 ノードに入れ替える
④ 基本ワークフローと同じように接続しなおす
『image-to-image』Segmentation ワークフローの完成
①「Run」を押して画像を生成する
※ ワークフロー:「_base_t2i/」 t2i_controlnet_Segment.json
Shuffle 『text2img』+『ControlNet』†
「_base/」 bs_text2img_controlnet.json 『text-to-image』ControlNet 基本ワークフローを読み出す
①「test_text2img_controlnet.json」ワークフローをキャンバス上にドラッグ&ドロップする
②「Load Controlnet Model」ノードのモデルで shuffle を選択する
③ プリプロセッサとして「Content Shuttle」 ノードに入れ替える
④ 基本ワークフローと同じように接続しなおす
『image-to-image』Shuffle ワークフローの完成
①「Run」を押して画像を生成する
※ ワークフロー:「_base_t2i/」 t2i_controlnet_Shuffle.json
MLSD 『text2img』+『ControlNet』†
「_base/」 bs_text2img_controlnet.json 『text-to-image』ControlNet 基本ワークフローを読み出す
①「test_text2img_controlnet.json」ワークフローをキャンバス上にドラッグ&ドロップする
②「Load Controlnet Model」ノードのモデルで MLSD を選択する
③ プリプロセッサとして「M-LSD Lines」 ノードに入れ替える
④ 基本ワークフローと同じように接続しなおす
『image-to-image』MLSD ワークフローの完成
①「Run」を押して画像を生成する
※ ワークフロー:「_base_t2i/」 t2i_controlnet_MLSD.json
Normalmaps 『text2img』+『ControlNet』†
「_base/」 bs_text2img_controlnet.json 『text-to-image』ControlNet 基本ワークフローを読み出す
①「test_text2img_controlnet.json」ワークフローをキャンバス上にドラッグ&ドロップする
②「Load Controlnet Model」ノードのモデルで nornmalbase を選択する
③ プリプロセッサとして「MDaS Normal Map」 ノードに入れ替える
④ 基本ワークフローと同じように接続しなおす
『image-to-image』Normalmaps ワークフローの完成
①「Run」を押して画像を生成する
※ ワークフロー:「_base_t2i/」 t2i_controlnet_Normalmap.json
Soft Edge 『text2img』+『ControlNet』†
「_base/」 bs_text2img_controlnet.json 『text-to-image』ControlNet 基本ワークフローを読み出す
①「test_text2img_controlnet.json」ワークフローをキャンバス上にドラッグ&ドロップする
②「Load Controlnet Model」ノードのモデルで softedge を選択する
③ プリプロセッサとして「PiDiNet Soft-Edge LLines」 ノードに入れ替える
④ 基本ワークフローと同じように接続しなおす
『image-to-image』Soft Edge ワークフローの完成
①「Run」を押して画像を生成する
※ ワークフロー:「_base_t2i/」 t2i_controlnet_SoftEdge.json
Tile 『text2img』+『ControlNet』†
「_base/」 bs_text2img_controlnet.json 『text-to-image』ControlNet 基本ワークフローを読み出す
①「test_text2img_controlnet.json」ワークフローをキャンバス上にドラッグ&ドロップする
②「Load Controlnet Model」ノードのモデルで tile を選択する
③ プリプロセッサとして「Tile」 ノードに入れ替える
④「Upscale Image By」ノードを「Load Image」「Tile」の間に入れて scale_by を 4倍にする
⑤ 基本ワークフローと同じように接続しなおす
『image-to-image』Tile ワークフローの完成
①「Run」を押して画像を生成する(入力画像を4倍に拡大)
※ ワークフロー:「_base_t2i/」 t2i_controlnet_tile.json
「ControlNet」モデルに対応したプリプロセッサ ノード名称†
更新履歴†
2025/10/28 初版
2025/10/31 ページ構成変更
参考資料†