私的AI研究会 > ComfyUI4

画像生成AI「ComfyUI」4(応用編)

 「ComfyUI」を使ってローカル環境でのAI画像生成を検証する

▲ 目 次
※ 最終更新:2026/03/12 

「ComfyUI」カスタムノード

「ComfyUI」で用意されている様々な カスタムノードを使ってみる

概要

プロジェクトで作成するワークフロー

このプロジェクトで作成するワークフローと関連データは下記にアップロードしている(更新されている場合は再度ダウンロードのこと)

カスタムノードのインストール(共通手順)

カスタムノードは「ComfyUI Manager」を使って下記の手順でインストールできる
一部のインストールできないものについては別の手順( →「Git clone」による)によりインストール可能なものもある


1.「Manager」ボタンを押し「ComfyUI Manager」から「Custom Nodes Manager」を選択
2. カスタムノード を検索。インストールするノードの「Install」を押す
3. バージョン番号を選択(基本「latest」を選択)
4. インストールが完了すると、ComfyUI の再起動を求められるので、下部の「Restart」ボタンを押す
5.「Confirm」(確認)ボタンを押すとインストール開始する
6. インストール完了すると再度確認ウインドウが開く(別のウインドウがオープンするので閉じる)
7. 前のブラウザ画面で「Confirm」(確認)ボタンを押す
8.「ComfyUI Manager」でインストール完了となっていることを確認してブラウザと「Stability Matrix」を一旦終了する

← インストール完了の状態

参照画像で生成をコントロールする「IPAdapter」『ComfyUI_IPAdapter_plus』

ComfyUI IPAdapter Plus は、画像をプロンプトとして使用し、参照画像のキャラクター、スタイル、構成を新しい画像へ高精度に転送する
一貫性のある動画・画像生成やキャラクターの一貫性維持、高度なマスク指定による部分的なスタイル適用が可能になる
・SD1.5、SDXL の両方のモデルに対応し、高速でメモリ効率の高い処理が可能
  1. カスタムノード『 ComfyUI_IPAdapter_plus 』をインストールする上記共通手順による
    GitHub: ComfyUI_IPAdapter_plus

  2. IPAdapter モデルをダウンロードして配置する →「StabilityMatrix/Data/Models/」
    モデル名ファイル名(.safetensors)配置先ダウンロード URL
    ClipVisionダウンロード後必ずファイル名を以下の名称に変更すること
    CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors
    /StabilityMatrix/Data/
    Models/
    ClipVision/https://huggingface.co/h94/IP-Adapter/resolve/main/models/image_encoder/model.safetensors
    ダウンロード後必ずファイル名を以下の名称に変更すること
    CLIP-ViT-bigG-14-laion2B-39B-b160k.safetensors
    https://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/image_encoder/model.safetensors
    ダウンロード後必ずファイル名を以下の名称に変更すること
    clip-vit-large-patch14-336.bin
    https://huggingface.co/Kwai-Kolors/Kolors-IP-Adapter-Plus/resolve/main/image_encoder/pytorch_model.bin
    IpAdapterip-adapter_sd15.safetensorsIpAdapter/https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15.safetensors
    ip-adapter_sd15_light_v11.binhttps://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15_light_v11.bin
    ip-adapter-plus_sd15.safetensorshttps://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-plus_sd15.safetensors
    ip-adapter-plus-face_sd15.safetensors[[https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-plus-face_sd15.safetensors
    ip-adapter-full-face_sd15.safetensors[[https://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter-full-face_sd15.safetensors
    ip-adapter_sd15_vit-G.safetensorshttps://huggingface.co/h94/IP-Adapter/resolve/main/models/ip-adapter_sd15_vit-G.safetensors
    ip-adapter_sdxl_vit-h.safetensorshttps://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter_sdxl_vit-h.safetensors
    ip-adapter-plus_sdxl_vit-h.safetensorshttps://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter-plus_sdxl_vit-h.safetensors
    ip-adapter-plus-face_sdxl_vit-h.safetensorshttps://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter-plus-face_sdxl_vit-h.safetensors
    sdxl_models/ip-adapter_sdxl.safetensorshttps://huggingface.co/h94/IP-Adapter/resolve/main/sdxl_models/ip-adapter_sdxl.safetensors
    Loraip-adapter-faceid_sd15.binLora/https://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sd15.bin
    ip-adapter-faceid-plusv2_sd15_lora.safetensorshttps://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sd15_lora.safetensors
    ip-adapter-faceid_sdxl_lora.safetensorshttps://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid_sdxl_lora.safetensors
    ip-adapter-faceid-plusv2_sdxl_lora.safetensorshttps://huggingface.co/h94/IP-Adapter-FaceID/resolve/main/ip-adapter-faceid-plusv2_sdxl_lora.safetensors
  3. ワークフローを作成する
    ① ノード添付の サンプル基本ワークフロー「custom_nodes/comfyui_ipadapter_plus/examples/ipadapter_simple.json」を読み出す
    ②「Load Checkpoint」ノードのモデルを指定する
    ③「IPAdapter Unified Loader」のノードで「PLUS(hight strength」を指定する
    ②「Load Image」ノードの参照画像を指定する(例:monalisa.png)
    ③ プロンプトを入力(例: a man with beard

    ①「Run」を押して画像を生成する
    Ccomfyui_228_m
     ※ ワークフロー:「test/」filetest_ipadapter_simple.json

  4. Face Modelを使用する
    ①「IPAdapter Unified Loader」のノードで「PLUS FACE(portraits」を指定する
    ②「Load Image」ノードの参照画像を指定する(この機能を使うときは顔のみの画像を使用する)
    ③ プロンプトを入力(例: a woman playing soccer, stadium, grass field, dribbling

    ①「Run」を押して画像を生成する
    Ccomfyui_230_m
     ※ ワークフロー:「test/」filetest_ipadapter_simple2.json

  5. 「Style & Composition」を使用する(SDXL モデル)
    ①「test_ipadapter_simple.json」ワークフローを別名「test_ipadapter_style.json」で保存して使用する
    ②「IPAdapter」を「IPAdapter Style & Composition SDXL」のノードに変更する
    ③「Load Checkpoint」ノードに SDXL モデルを指定する
    ④「Load Image」ノードを追加し画像を指定する
    ⑤「Empty Latent Image」でサイズを 10924x1024 に設定
    ⑥ プロンプトを入力(例: beautiful woman, high quality, detailed

    ①「Run」を押して画像を生成する
    Ccomfyui_236_m
     ※ ワークフロー:「test/」filetest_ipadapter_style.json

  6. 「ControlNet」を併用する

    ① サイト IPAdapter Plus (V2) | One-Image Style Transfer のワークフローを参考にする
    ②「test_ipadapter_style.json」をロードし変更を加える
    ・SD1.5 モデルを使用する
    ・① と同じように「ControlNet」関連ノードを配置する
    ・「Empty Latent Image」ノードを削除し代わりに入力イメージ →「VAE Encode」出力を繋ぐ
    ・生成画像サイズは入力イメージと同じになる

    ③ ワークフローの完成
    ④「Run」を押して画像を生成する
    Ccomfyui_239_m
    ⑤「ControlNet」は1段のみでもそれなりに動作する
     ※ ワークフロー:「test/」filetest_ipadapter_style2.json

  7. 「faceSAwap」をやってみる

    ① サイト ComfyUI.Tokyo: SD1.5 IPAdapter face swap のワークフローを参考にする
    ②「test_ipadapter_style.json」をロードし変更を加える
    ・SD1.5 モデルを使用する
    ・ClipVision のモデル「ip_adapter_sd_image_encoder.safetensors」は
     「CLIP-ViT-H-14-laion2B-s32B-b79K.safetensors」と同じもの
    ・TextEncoders モデル「clip_l.safetensors」がないときは下記からダウンロードして配置する
     → clip_l.safetensors
    ・生成画像サイズは入力イメージと同じになる

    ③ ワークフローの完成
    ④「Run」を押して画像を生成する
    Ccomfyui_241_m
     ※ ワークフロー:「test/」filetest_ipadapter_faceswap.json

  8. 入力画像とパラメータ設定により効果の度合いが変化する
    ① サイト [ComfyMaster29] 参照画像でAIをコントロール!IPAdapterの使い方 のワークフローを参考にする
     ※ ワークフロー:「test/」filetest_ipadapter_base.json

顔を修正する「Face Detailer」『Impact Pack』

Face Detailer(Impact Pack に含まれる)は、生成された画像内の「顔」を自動検出し、その部分だけを自動的に再描画(Inpaint)して高精細化する
引きの構図などで崩れやすい顔や目を自動的に修正し、キャラクターの顔の破綻を解消する
  1. カスタムノード2つ『ComfyUI-Impact-Pack』『ComfyUI-Impact-Subpack』をインストールする上記共通手順による Impact 」で検索)
    GitHub: ComfyUI-Impact-Pack
    GitHub: ComfyUI-Impact-Subpack
    (参考)comfyUI-extension-tutorials

  2. 『t2i_face_detailer』(text2ing)基本ワークフロー
    ①「Run」を押して画像を生成する
    ComfyUI9_2025-11-03_00015_m.jpg
     ※ ワークフロー:「_base_t2i/」filet2i_face_detailer.json

  3. 『i2i_face_detailer』(img2img)基本ワークフロー
    ①「Run」を押して画像を生成する
    ComfyUI9_2025-11-03_00016_m.jpg
     ※ ワークフロー:「_base_i2i/」filei2i_face_detailer.json

モノクロ画像をカラー画像にする「DDColor」『ComfyUI-DDColor』

  1. カスタムノード『 ComfyUI-DDColor 』をインストールする(上記共通手順による
    GitHub: ComfyUI-DDColor

  2. ワークフローを実行する
    ①「Run」を押して画像を生成する
    ComfyUI_temp_kqjrv_00003_m.jpg
     ※ ワークフロー:「test/」filetest_DDColor.json

  3. カスタムノード『WAS Node Suite (Revised)』をインストールする上記共通手順による WAS Node Suite 」で検索)
    WAS Node Suite (Revised)

  4. 濃淡の調整を追加したワークフローを実行する
    ①「Run」を押して画像を生成する
    ComfyUI_temp_kqjrv_00004_m.jpg
     ※ ワークフロー:「test/」filetest_DDColor+blend.json

画像の一部を別の画像に入れ替える「paint by example」『paint-by-example_comfyUI』

「Paint by Example」は、テキストプロンプトの代わりに「参考画像(Example画像)」を使って、画像の一部を自然に生成・編集(インペイント)する機能
プロンプト不要で、指定したオブジェクトやスタイルをマスク部分に合成できるため、精密な画像編集に有効
  1. カスタムノード『 paint-by-example_comfyUI 』をインストールする上記共通手順による
    GitHub: paint-by-example_comfyui
    ワークフロー phyblas/ironna_comfyui_workflow

  2. マスク画像を作成するワークフローを実行する
    ①「Run」を押して画像を生成する
    ComfyUI_2025-11-14_00007_m.jpg
     ※ ワークフロー:「_utility/」filepaint-by-example_maskedit.json

  3. マスク画像を個別入力するワークフローを実行する
    ①「Run」を押して画像を生成する
    ComfyUI_2025-11-14_00008_m.jpg
     ※ ワークフロー:「_utility/」filepaint-by-example_mask.json

  4. 実行結果の例

画像からプロンプトを得る「 Tagger 」『WD14 Tagger』

「WD 1.4 Tagger」は、入力された画像からその特徴を自動的に分析し、タグ(プロンプト)を生成する拡張ノード
i2i(画像から画像生成)やLoRA学習用のデータセット作成において、手動でプロンプトを入力する手間を大幅に削減し、高精度なタグ付けを可能にする
  1. カスタムノード『ComfyUI WD 1.4 Tagger』をインストールする上記共通手順による
    GitHub: ComfyUI WD 1.4 Tagger

  2. filebs_text2img.json『text-to-image』基本ワークフローを読み出す
    ①「test_text2img.json」ワークフローをキャンバス上にドラッグ&ドロップする
    ②「Load Image」ノードを追加する
    ③「WD14 Tagger」ノードを追加する
    ④「String Function」ノードを追加する
    ⑤「Show Text」ノードを追加する
    ⑥「Load Image」IMAGE を「WD14 Tagger」image に接続
    ⑦「WD14 Tagger」STRING を「String Function」の中央のテキストボックスに接続する※
    ⑧「String Function」の STRING と「CLIP Text Encode (Prompt)」のテキストボックスに接続※
    ⑨「String Function」の STRING と「Show Text」の text を繋ぐ
    ⑩「CLIP Text Encode (Prompt)」のテキストボックスをクリア
    ⑪「String Function」の 上の適するボックスにプロンプト(前半)を入力
    masterpiece,best quality,8k,raw photo,photo realistic,
    ⑫「CLIP Text Encode (Prompt)」の ネガティブ・プロンプトを入力
    worst quality,low quality,painting,sketch,flat color,monochrome,grayscale,ugly face,bad face,bad anatomy,deformed eyes,missing fingers,acnes,skin blemishes,nsfw,nude,nipples
    ※ 以前の「Convert Widget to Input」による設定の必要はなくなった

  3. 『t2i_tagger』(text2ing)基本ワークフロー
    ①「Run」を押して画像を生成する
    ComfyUI9_2025-11-04_00001_m.jpg
     ※ ワークフロー:「_base_t2i/」filet2i_tagger.json

    ・参考:「WD14 Tagger」の出力プロンプト
    1girl, solo, long_hair, looking_at_viewer, brown_hair, brown_eyes, jewelry, upper_body, earrings, outdoors, parted_lips, necklace, mole, blurry, lips, blurry_background, freckles, realistic, nose,

プロンプトを日本語入力する「AlekPet」『ComfyUI_Custom_Nodes_AlekPet』

ComfyUI_Custom_Nodes_AlekPet は、AlekPet氏によって開発・公開されている、画像生成AIツール「ComfyUI」向けのカスタムノードセット
このカスタムノードを導入することで ComfyUI でのプロンプト入力を日本語で行えるようになる
  1. カスタムノード『 ComfyUI_Custom_Nodes_AlekPet 』をインストールする上記共通手順による
    GitHub: ComfyUI_Custom_Nodes_AlekPet

  2. プロンプト/ネガティブ・プロンプトを日本語入力にする(使い方1)

    ①「Deep Transfer Text Node」の text を「CLIP Text Encode」ノードに注入する
    ②「Preview Textn Node」を翻訳後の確認のため接続しておく(任意)
     ※ ワークフロー:「_utility/」filetxt2img_ipn_input.json

  3. プロンプト/ネガティブ・プロンプトを日本語入力にする(使い方2)

    ①「Deep Transfer Text Node」を「CLIP Text Encode」ノードと入れ替える
    ②「Preview Textn Node」を翻訳後の確認のため接続しておく(任意)
     ※ ワークフロー:「_utility/」filetxt2img_ipn_input2.json

ComfyUIでLLMを使用する「Ollama」『ComfyUI Ollama』

ComfyUI Ollama は ComfyUI でローカルLLMを利用するための拡張ノード
プロンプトを自動で作成したり、画像を読み取って文字として記述させてプロンプトにする事ができる
  1. 以下のコマンドで画像を扱うことのできる「llava-phi3」LLM モデルをインストールする
    ollama run llava-phi3:latest
    ▼「llava-phi3」インストール・ログ

  2. カスタムノード『ComfyUI Ollama』をインストールする(「 ollama 」で検索)上記共通手順による
    GitHub: ComfyUI Ollama

  3. 『ComfyUI Ollama』の使い方

    ①「OllamaConnectivity」ノードを配置しモデルを設定する
    ②「OllamaGenerate」ノードでシステムプロンプトとテキスト入力
    ③「Load Image」ノードで画像入力(必要であれば)
    ④「Preview Text Node」ノードで生成テキストを確認
    ⑤「Deep Transrator Text Node」「Preview Text Node」ノードで日本語訳を見ることができる
     ※ ワークフロー:「_prompt/」fileollama.json

  4. 「txt2img」ワークフローに追加して生成してみる
    ①「Run」を押して画像を生成する
    ComfyUI_2025-11-18_00014_m.jpg
     ※ ワークフロー:「_prompt/」fileollama_test.json

各種パラメータによる生成画像を比較する『XY Plot』

ComfyUI の XY Plot は、CFG スケール、LoRA 強度、モデル、シード値などのパラメータをX軸・Y軸の2次元グリッドで一度に変化させ、生成結果を比較できる機能
「Efficiency Nodes」カスタムノードを使用して、手動で何度も生成し直す手間を省き、最適な画像パラメータを効率的に探すのに使われる
効率的な画像生成ワークフローを作成する上で、必須とも言える強力な比較分析ツール
  1. カスタムノード『Efficiency Nodes for ComfyUI』をインストールする((上記共通手順による)「 efficiency-nodes 」で検索)
    GitHub: Efficiency Nodes for ComfyUI Version 2.0+

  2. 実装確認のワークフローを作成する
    ① ノード添付の サンプル基本ワークフローを読み出す
     「custom_nodes/efficiency-nodes-comfyui/workflows/Eff_XYPlot - LoRA Model vs Clip Strengths01.png」をドラッグ&ドロップする
    ②「Efficient Loder」ノードの「ckpt_name」「vae_name」を指定する
    ③「XY Input: LoRA Plot」ノードの「Lola_name」「x_batch_count」「y_batch_count」を指定する

  3. ワークフローを生成してみる
    ①「Run」を押して画像を生成する
    xyplot_00_00001_m.jpg
     ※ ワークフロー:「test/」filetest_XYPlot -LoRA_Clip Str01.json

  4. 実行ログ
    ----------------------------------------
    XY Plot Results:
    (X) LoRA MStr
    (Y) LoRA CStr
    img_count: 4
    img_dims: 640 x 640
    plot_dim: 2 x 2
    ckpt: fudukiMix_v20.safetensors
    clip_skip: -2
    lora: ayame_LoRA_v20.safetensors
    lora_mstr: 0.0, 1.0
    lora_cstr: 0.0, 1.0
    vae:  sdxl_vae
    seed: 593927061734313
    steps: 20
    cfg: 7.0
    sampler: dpmpp_sde
    scheduler: karras
    denoise: 1.0
    ----------------------------------------
    XY Plot Models Cache:
    Ckpt:
      [1] fudukiMix_v20
    ----------------------------------------
    Prompt executed in 157.80 seconds

  5. 2025/12/11現在「Efficient Loder」ノードに不具合がある

    「lola_clip_strength」の値が変更できないので、変更が必要な場合は引き出して「Primitive」ノードを利用する

顔を変える「ReActor」『ComfyUI-ReActor』

ComfyUI ReActor は、画像や動画内の顔を高速・高精度に入れ替える(Face Swap)ための ComfyUI 拡張ノード
1枚の参照画像(顔写真)だけでディープフェイクのような顔交換が可能であり、既存の顔の表情や照明を維持しながら、自然な生成・復元機能(CodeFormerなど)を提供する
  1. カスタムノード『 ComfyUI-ReActor 』をインストールする上記共通手順による
    GitHub: ComfyUI-ReActor

    ※ このノードは「Custom Nodes Manager」でインストール後インストール済みにはならないが実際には完了している
    ※ Linux 上 StabilityMatrix 環境下ではインストール不可(原因不明)

  2. ワークフローを実行する
    ①「Run」を押して画像を生成する
    comfyui_098a_m.jpg
     ※ ワークフロー:「test/」filetest_faceswap_simple.json

  3. 入力ソースを入れ替えて実行する
    ①「Run」を押して画像を生成する
    comfyui_098_m.jpg

リソースモニター(負荷監視)と便利ツール

ComfyUI-Crystools は、ComfyUI の動作環境(GPU/RAM/VRAM 使用率)をリアルタイムで監視する高機能な管理・モニタリング用カスタムノードセット
生成負荷の確認や、メタデータの保存・管理、ノード整理を効率化し、快適な生成環境をサポートする
特に、重いモデルを扱う場合や、ローカル環境で負荷を抑えながら画像生成を行いたい場合に必須級の拡張機能
  1. カスタムノード『 comfyui-crystools 』をインストールする上記共通手順による
    GitHub: ComfyUI-Crystools

    ※ このノードは「Custom Nodes Manager」でインストール後インストール済みにはならないが実際には完了している

  2. 上部メニューにリソースモニターが表示される

  3. リソースモニターの ON/OFF は「Setting」→「Crystools」から行う

ノードをスイッチで切り替える「rgthree-comfy」

rgthree-comfy は、複数ノードを切り替えて動作させることができるようなワークフローの作成に利用される拡張ノードを含むツール
  1. カスタムノード『 comfyui-crystools 』をインストールする上記共通手順による
    GitHub: rgthree-comfy

  2. 各種機能設定は「Setting」→「rgthree-comfy」から行う

    :「Prompt Progres Bar」の項目をチェックすると画面上部にworkflow全体における進行度と、そのノード内での進行度の二つが表示される
     処理時間とは全く関係がないので、今回はチェックを外しておく
    ・「Enable Top Menu」はこの設定ダイアログを上部メニューに表示するためのチェック(外しておく)
    ・その他必要に応じて設定する

  3. スイッチによる切り替えでいずれかのノードのみ実行状態にする
    ・「Fast Muter」ノード、「any switch」ノードを配置する
    ・「any switch」ノードに切り替える出力をつないでいく
    ・「Fast Muter」ノードにも同様に接続する
    ・「Fast Muter」を右クリックし、プロパティの「toggleResttiction」を「always one(常に一つだけ選択)」に変更する

    詳しい手順 → 何れかのノードのみ実行状態にする(スイッチによる切り替え)(Fast Muter, any switch)
 

忘備録

『paint-by-example_comfyUI』ノードが CPU モードで実行できない

 

更新履歴

 

参考資料