要約
この記事では、ComfyUIのワークフロー構築を初心者向けに解説します。
「ノードって何?」「どう繋げばいいの?」という疑問を解消し、基本的なワークフローを自分で組めるようになることを目指します。デフォルトワークフローの理解から、img2img・LoRA追加などの応用パターンまで丁寧に説明していきます。
本記事は ComfyUI v0.15.0 / ComfyUI Frontend v1.39.19 をもとに解説しています。
はじめに|ノードベースUIを理解しよう
ComfyUIを初めて触ったとき、こんな疑問を持ちませんでしたか?
- 「なんか線で繋がった四角がいっぱいある…」
- 「Stable Diffusion WebUIと全然違う…」
- 「どこをどう触ればいいの?」
ComfyUIはノードベースUIという仕組みを採用しています。
最初は戸惑うかもしれませんが、仕組みを理解すれば非常に柔軟で強力なツールになります。
ノードベースUIとは?|基本概念を理解する
ノードとは
ノード(Node)とは、特定の処理を行う「箱」のようなものです。
例えば:
- Load Checkpoint:モデルを読み込む箱
- CLIP Text Encode:プロンプトを処理する箱
- KSampler:画像を生成する箱
- Save Image:画像を保存する箱
これらの箱を線(ワイヤー)で繋ぐことで、データが流れていきます。
ワークフローとは
ノードを繋げて作った処理の流れ全体を「ワークフロー」と呼びます。
モデル読み込み → プロンプト処理 → 画像生成 → 保存
この一連の流れが、ComfyUIでのワークフローです。
ノードベースUIのメリット
| メリット | 説明 |
|---|---|
| 柔軟性 | 処理の順番や組み合わせを自由に変更できる |
| 可視性 | データの流れが視覚的に分かる |
| 再利用性 | 作ったワークフローを保存・共有できる |
| 拡張性 | カスタムノードで機能を追加できる |
キャンバスの基本操作
ノードを操作する前に、キャンバス自体の動かし方を覚えましょう。
画面の移動・ズーム
| 操作 | 動作 |
|---|---|
| マウスホイール | ズームイン / アウト |
| 中クリックドラッグ(または Space+ドラッグ) | 画面をパン(移動) |
| Ctrl+Shift+H または ダブルクリック(空白部分) | 全体をウィンドウに収める(Fit) |
ノードが増えて画面が散らかってきたら Ctrl+Shift+H で全体表示に戻すと全体像を把握しやすいです。
ノードの選択
| 操作 | 動作 |
|---|---|
| クリック | 単一選択 |
| Shift+クリック | 複数選択に追加 |
| ドラッグ(空白部分) | 範囲選択 |
| Ctrl+A | 全選択 |
ノードの基本操作|これだけ覚えればOK
ノードの追加方法
方法1:右クリックメニュー
- キャンバス上で右クリック
- 「Add Node」を選択
- カテゴリから目的のノードを選ぶ
方法2:ダブルクリック検索
- キャンバス上でダブルクリック
- 検索バーにノード名を入力
- 候補から選択

ノードの接続方法
- 出力ソケット(右側)をドラッグ
- 入力ソケット(左側)にドロップ
- 線(ワイヤー)で繋がる

ソケットの色に注目!
同じ色のソケット同士を繋ぎます。
- 紫:MODEL(モデルデータ)
- 黄緑:CLIP(テキストエンコーダー)
- オレンジ:CONDITIONING(条件付けデータ)
- ピンク:LATENT(潜在空間データ)
- 緑:IMAGE(画像データ)
- 青:VAE
接続の解除
- 線をクリックしてDeleteキー
- または線の端をドラッグして空中で離す
ノードのコピー・移動・削除
| 操作 | 方法 |
|---|---|
| コピー | 選択してCtrl+C → Ctrl+V(設定値ごとコピーされる) |
| 移動 | ノードをドラッグ |
| 複数まとめて移動 | 範囲選択してドラッグ |
| 削除 | 選択してDeleteキー、または右クリック → Remove |
ノードの整理:グループ機能
ノードが増えてきたらグループでまとめると管理しやすくなります。
- まとめたいノードを範囲選択(ドラッグ)
- Ctrl+G でグループ化
- グループにタイトルをつけて識別しやすくする

また、ノード左上の灰色の丸ボタンをクリックすると折りたたむことができ、画面をすっきりさせられます。
画像生成の基本フロー|デフォルトワークフローを理解する
ComfyUIを起動すると、デフォルトのワークフローが表示されます。
まずはこれを理解しましょう。
デフォルトワークフローの全体像

各ノードの役割
1. Load Checkpoint(モデル読み込み)
役割:Stable Diffusionのモデル(チェックポイント)を読み込む
出力:
- MODEL:画像生成に使うモデル本体
- CLIP:テキストを理解するエンコーダー
- VAE:画像の圧縮・展開を行うモジュール

2. CLIP Text Encode(プロンプト処理)
役割:テキストプロンプトをモデルが理解できる形式に変換
入力:
- CLIP:Load Checkpointから受け取る
- text:プロンプト(呪文)を入力
出力:
- CONDITIONING:条件付けデータ
ポジティブプロンプト用とネガティブプロンプト用、2つ必要です。

3. Empty Latent Image(空の潜在画像)
役割:生成する画像のサイズを決める「空のキャンバス」を作る
設定項目:
- width:画像の幅
- height:画像の高さ
- batch_size:一度に生成する枚数
SD1.5系モデルは512×512〜768×768、SDXLモデルは1024×1024が推奨解像度です。SDXLを使う場合はここを変更するだけでOKで、他のノード構成は同じです。

4. KSampler(サンプラー)
役割:実際に画像を生成する「心臓部」
入力:
- model:使用するモデル
- positive:ポジティブプロンプト
- negative:ネガティブプロンプト
- latent_image:生成のベースとなる潜在画像
主な設定項目:
| 項目 | 説明 | 推奨値 |
|---|---|---|
| seed | 乱数シード | -1で毎回ランダム |
| steps | 生成ステップ数 | 20〜30 |
| cfg | プロンプトへの忠実度 | 7〜8 |
| sampler_name | サンプリング方法 | euler_ancestral, dpmpp_2m等 |
| scheduler | スケジューラー | normal, karras等 |
| denoise | ノイズ除去強度 | 1.0(txt2imgの場合) |

5. VAE Decode(VAEデコード)
役割:潜在空間のデータを実際の画像に変換
入力:
- samples:KSamplerからの出力
- vae:Load CheckpointからのVAE
出力:
- IMAGE:実際の画像データ

6. Save Image / Preview Image(画像保存・プレビュー)
役割:生成した画像を保存またはプレビュー表示
- Save Image:outputフォルダに保存
- Preview Image:画面に表示するだけ(保存しない)

データの流れを理解する|色分けで覚えよう
ソケットの色と意味
ComfyUIでは、データの種類ごとにソケットの色が決まっています。
| 色 | データ型 | 説明 |
|---|---|---|
| 紫 | MODEL | AIモデル本体 |
| 黄緑 | CLIP | テキストエンコーダー |
| オレンジ | CONDITIONING | 条件付け(プロンプト処理後) |
| ピンク | LATENT | 潜在空間データ |
| 緑 | IMAGE | 画像データ |
| 青 | VAE | 画像の圧縮/展開モジュール |
| 水色 | MASK | マスクデータ |
| グレー | INT/FLOAT | 数値 |
| 白 | STRING | 文字列 |
データフローの図解
Load Checkpoint
│
├─ MODEL(紫)─────────────────────────┐
│ │
├─ CLIP(黄緑)─┬─ CLIP Text Encode ──── CONDITIONING(オレンジ)─┐
│ │ (Positive) │
│ │ ▼
│ └─ CLIP Text Encode ──── CONDITIONING(オレンジ)─▶ KSampler
│ (Negative) ▲
│ │
│ Empty Latent Image ── LATENT(ピンク)┘
│
└─ VAE(青)──────────────────────────────────────────┐
│
KSampler ── LATENT ── VAE Decode ── IMAGE(緑)── Save Image
困ったときは色を見る!
「繋がらない」と思ったら、ソケットの色を確認しましょう。
同じ色同士でないと接続できません。
実践:基本ワークフローを組んでみよう
実際に手を動かして、基本ワークフローを一から組んでみましょう。
右クリック → Add Node → loaders → Load Checkpointを選択。
追加されたノードの
ckpt_nameドロップダウンから、使用するモデルを選択します。

右クリック → Add Node → conditioning → CLIP Text Encodeを選択。
同じ操作をもう一度行い、合計2つ追加します。
1つはポジティブプロンプト用、もう1つはネガティブプロンプト用です。

右クリック → Add Node → latent → Empty Latent Imageを選択。
widthとheightで画像サイズを設定します(例:512×512、768×768など)。

右クリック → Add Node → sampling → KSamplerを選択。
このノードが画像生成の中心となります。

右クリック → Add Node → latent → VAE Decodeを選択。
潜在空間のデータを画像に変換するノードです。

右クリック → Add Node → image → Save Imageを選択。
生成した画像を保存するノードです。

以下の順番で接続していきます:
- Load Checkpoint → MODEL → KSampler(model)
- Load Checkpoint → CLIP → 両方のCLIP Text Encode(clip)
- CLIP Text Encode(ポジティブ) → KSampler(positive)
- CLIP Text Encode(ネガティブ) → KSampler(negative)
- Empty Latent Image → KSampler(latent_image)
- KSampler → VAE Decode(samples)
- Load Checkpoint → VAE → VAE Decode(vae)
- VAE Decode → Save Image(images)

- ポジティブ用のCLIP Text Encodeにプロンプトを入力
例:masterpiece, best quality, 1girl, silver hair, blue eyes, smile
- ネガティブ用のCLIP Text Encodeにネガティブプロンプトを入力
例:low quality, bad anatomy, blurry
- 画面右上の「Queue Prompt」ボタンをクリック
画像が生成され、Save Imageノードに表示されます!

よく使うワークフローパターン
パターン1:LoRAを追加する
基本ワークフローにLoRAを組み込むパターンです。Load CheckpointとKSamplerの間に Load LoRA ノードを挟みます。
Load Checkpoint
├─ MODEL → Load LoRA → MODEL → KSampler
└─ CLIP → Load LoRA → CLIP → CLIP Text Encode
LoRAを複数使いたい場合は、Load LoRAを直列に繋げることで積み重ねられます。
詳しくは ComfyUI LoRA活用ガイド を参照してください。
パターン2:画像からimg2img
既存の画像をベースに新しい画像を生成するパターンです。
Empty Latent Image の代わりに Load Image + VAE Encode を使います。
Load Image → VAE Encode → LATENT → KSampler
↑
VAE(Load Checkpointから)
手順:
- Load Image ノードを追加(右クリック → Add Node → image → Load Image)
- VAE Encode ノードを追加(右クリック → Add Node → latent → VAE Encode)
- Load Image の IMAGE → VAE Encode の pixels に接続
- Load Checkpoint の VAE → VAE Encode の vae に接続
- VAE Encode の LATENT → KSampler の latent_image に接続
- KSampler の denoise を 0.5〜0.85 に下げる(1.0のままだと元画像が完全に無視される)

denoiseの目安
- 0.3〜0.5:元画像に近い、構図をほぼ維持
- 0.5〜0.75:バランス型。スタイルを変えつつ構図を残す
- 0.75〜0.9:大きく変化。元画像はほぼ参考程度
パターン3:ControlNetを使う
ポーズや線画を制御しながら生成するパターンです。基本ワークフローに ControlNet Apply ノードを追加します。
詳しくは ComfyUI ControlNet活用ガイド を参照してください。
パターン4:アップスケール
生成した画像を高解像度化するパターンです。
シンプルな方法(補完のみ):
IMAGE → Upscale Image(by) → IMAGE → Save Image
高品質な方法(AIアップスケーラー使用):
IMAGE → ImageUpscaleWithModel → IMAGE → Save Image
パターン5:バッチ生成
複数の画像を一度に生成するパターンです。
- Empty Latent Imageの
batch_sizeを増やすだけ - 例:batch_size = 4 で4枚同時生成
- VRAMを多く消費するので、最初は2〜4枚程度から試しましょう
ワークフローの保存と読み込み
ワークフローの保存方法
方法1:JSON形式で保存
- メニュー → Save(またはCtrl+S)
- ファイル名を指定して保存
方法2:画像に埋め込み
- ComfyUIで生成した画像には、自動的にワークフローが埋め込まれます
- 生成画像をComfyUIにドラッグ&ドロップすると、ワークフローが復元されます
画像埋め込みが便利!
生成画像を共有するだけで、他の人も同じワークフローを使えます。
SNSで見かけた画像も、ComfyUIで開けば再現できることがあります。
ワークフローの読み込み方法
方法1:JSONファイルを読み込み
- メニュー → Load(またはCtrl+O)
- 保存したJSONファイルを選択
方法2:画像をドラッグ&ドロップ
- ComfyUI生成画像をキャンバスにドロップ
- 自動的にワークフローが展開される
方法3:デフォルトに戻す
- メニュー → Load Default
- デフォルトワークフローが読み込まれる
トラブルシューティング|よくある問題と解決策
ノードが赤くなる
原因:入力が足りない、または不正
対処:
- 必要な入力がすべて接続されているか確認
- ソケットの色が一致しているか確認
「Queue Prompt」しても何も起きない
原因:ワークフローに問題がある
対処:
- 赤いノードがないか確認
- すべてのノードが繋がっているか確認
- Save ImageまたはPreview Imageがあるか確認
接続できない
原因:データ型が異なる
対処:
- ソケットの色を確認
- 同じ色(同じデータ型)同士を接続
画像が真っ黒になる
原因:VAEの問題
対処:
- Load CheckpointからVAEをVAE Decodeに接続しているか確認
- 外部VAEを使う場合はLoad VAEノードを追加
SDXLで画質が悪い
原因:解像度や設定がSD1.5向けになっている
対処:
- Empty Latent Imageの解像度を1024×1024に変更
- CLIP Text Encode をSDXL版に差し替えることを検討
よくある質問
以下の方法で整理できます:
- ノードをグループ化(Ctrl+G)してタイトルをつける
- ノードを折りたたむ(ノード上部をダブルクリック)
- Ctrl+Shift+Hで全体をウィンドウに収める
ノードを選択してCtrl+C → Ctrl+Vでコピーできます。
設定値も含めてコピーされます。
直接互換性はありません。ただし、同じ設定値(モデル、サンプラー、ステップ数など)を手動で再現することで、似た結果を得られます。
以下の方法があります:
- JSONファイルをそのまま共有
- 生成画像を共有(ワークフローが埋め込まれている)
- OpenArtなどのワークフロー共有サイトに投稿
まとめ|ワークフローの基本をマスターしよう
この記事のポイント
- ノードとは:特定の処理を行う「箱」
- ワークフローとは:ノードを繋げた処理の流れ
- 色の意味:同じ色のソケット同士を接続
- SD1.5とSDXL:モデルによってノード構成と推奨解像度が異なる
- 応用パターン:LoRA追加・img2img・ControlNet・アップスケール
- 保存と共有:JSON保存または画像埋め込み
次のステップ
ワークフローの基本が理解できたら、次はカスタムノードで機能を拡張してみましょう。
関連記事
ComfyUIをもっと使いこなしたい方は、こちらの記事もどうぞ。







コメント