私的AI研究会 > Diffusion > ComfyUI3
画像生成AI「ComfyUI」3(応用編) == 編集中 == †
「ComfyUI」を使ってローカル環境でのAI画像生成を検証する
▼ 目 次
▲ 目 次
※ 最終更新:2025/11/06
「ComfyUI」『ControlNet』†
「ComfyUI」で『ControlNet』を使用する
プロジェクトで作成するワークフロー†
カスタムノードのインストール†
『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つの顔、
『text-to-image』基本ワークフローを読み出す
①「test_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」を押して画像を生成する
※ ワークフロー:t2i_controlnet_openpose.json , test_text2img_controlnet.json
姿勢推定画像(棒人間の画像)を入力する場合
・「Load Image」のノードに棒人間の画像を入力している場合は「Openpose Pose」のノードは不要
・予め作られているポーズをダウンロードできるサイト → OpenPoses
・「Openpose Pose」 ノードを右クリックで bypass を選択する
①「Run」を押して画像を生成する
※ ワークフロー:t2i_controlnet_openpose_s.json
Canny 『text2img』+『ControlNet』†
『text-to-image』ControlNet 基本ワークフローを読み出す
①「test_text2img_controlnet.json」ワークフローをキャンバス上にドラッグ&ドロップする
②「Load Controlnet Model」ノードのモデルで canny を選択する
③ プリプロセッサとして「Canny Edge」 ノードに入れ替える
④ 基本ワークフローと同じように接続しなおす
『image-to-image』Canny ワークフローの完成
①「Run」を押して画像を生成する
※ ワークフロー:t2i_controlnet_canny.json
Depth 『text2img』+『ControlNet』†
『text-to-image』ControlNet 基本ワークフローを読み出す
①「test_text2img_controlnet.json」ワークフローをキャンバス上にドラッグ&ドロップする
②「Load Controlnet Model」ノードのモデルで depth を選択する
③ プリプロセッサとして「Depth Anything」 ノードに入れ替える
④ 基本ワークフローと同じように接続しなおす
『image-to-image』Depth ワークフローの完成
①「Run」を押して画像を生成する
※ ワークフロー:t2i_controlnet_depth.json
LineArt 『text2img』+『ControlNet』†
『text-to-image』ControlNet 基本ワークフローを読み出す
①「test_text2img_controlnet.json」ワークフローをキャンバス上にドラッグ&ドロップする
②「Load Controlnet Model」ノードのモデルで lineart を選択する
③ プリプロセッサとして「AnyLine Lineart」 ノードに入れ替える
④ 基本ワークフローと同じように接続しなおす
『image-to-image』LineArt ワークフローの完成
①「Run」を押して画像を生成する
※ ワークフロー:t2i_controlnet_lineart.json
Scribble 『text2img』+『ControlNet』†
『text-to-image』ControlNet 基本ワークフローを読み出す
①「test_text2img_controlnet.json」ワークフローをキャンバス上にドラッグ&ドロップする
②「Load Controlnet Model」ノードのモデルで scribble を選択する
③ プリプロセッサとして「Scribble Lines」 ノードに入れ替える
④ 基本ワークフローと同じように接続しなおす
『image-to-image』Scribble ワークフローの完成
①「Run」を押して画像を生成する
※ ワークフロー:t2i_controlnet_Scribble.json
Segmentation 『text2img』+『ControlNet』†
『text-to-image』ControlNet 基本ワークフローを読み出す
①「test_text2img_controlnet.json」ワークフローをキャンバス上にドラッグ&ドロップする
②「Load Controlnet Model」ノードのモデルで segmentation を選択する
③ プリプロセッサとして「SAM Segmentor」 ノードに入れ替える
④ 基本ワークフローと同じように接続しなおす
『image-to-image』Segmentation ワークフローの完成
①「Run」を押して画像を生成する
※ ワークフロー:t2i_controlnet_Segment.json
Shuffle 『text2img』+『ControlNet』†
『text-to-image』ControlNet 基本ワークフローを読み出す
①「test_text2img_controlnet.json」ワークフローをキャンバス上にドラッグ&ドロップする
②「Load Controlnet Model」ノードのモデルで shuffle を選択する
③ プリプロセッサとして「Content Shuttle」 ノードに入れ替える
④ 基本ワークフローと同じように接続しなおす
『image-to-image』Shuffle ワークフローの完成
①「Run」を押して画像を生成する
※ ワークフロー:t2i_controlnet_Shuffle.json
MLSD 『text2img』+『ControlNet』†
『text-to-image』ControlNet 基本ワークフローを読み出す
①「test_text2img_controlnet.json」ワークフローをキャンバス上にドラッグ&ドロップする
②「Load Controlnet Model」ノードのモデルで MLSD を選択する
③ プリプロセッサとして「M-LSD Lines」 ノードに入れ替える
④ 基本ワークフローと同じように接続しなおす
『image-to-image』MLSD ワークフローの完成
①「Run」を押して画像を生成する
※ ワークフロー:t2i_controlnet_MLSD.json
Normalmaps 『text2img』+『ControlNet』†
『text-to-image』ControlNet 基本ワークフローを読み出す
①「test_text2img_controlnet.json」ワークフローをキャンバス上にドラッグ&ドロップする
②「Load Controlnet Model」ノードのモデルで nornmalbase を選択する
③ プリプロセッサとして「MDaS Normal Map」 ノードに入れ替える
④ 基本ワークフローと同じように接続しなおす
『image-to-image』Normalmaps ワークフローの完成
①「Run」を押して画像を生成する
※ ワークフロー:t2i_controlnet_Normalmap.json
Soft Edge 『text2img』+『ControlNet』†
『text-to-image』ControlNet 基本ワークフローを読み出す
①「test_text2img_controlnet.json」ワークフローをキャンバス上にドラッグ&ドロップする
②「Load Controlnet Model」ノードのモデルで softedge を選択する
③ プリプロセッサとして「PiDiNet Soft-Edge LLines」 ノードに入れ替える
④ 基本ワークフローと同じように接続しなおす
『image-to-image』Soft Edge ワークフローの完成
①「Run」を押して画像を生成する
※ ワークフロー:t2i_controlnet_SoftEdge.json
Tile 『text2img』+『ControlNet』†
『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倍に拡大)
※ ワークフロー:t2i_controlnet_tile.json
「ControlNet」モデルに対応したプリプロセッサ ノード名称†
更新履歴†
2025/10/28 初版
2025/10/31 ページ構成変更
参考資料†