- 技術 💻
ComfyUIとは|インストール・使い方・Manager・APIを解説
結論
ComfyUIは、ノードをつないで画像や動画を生成する無料のアプリです。初めてならデスクトップ版から入れます。
この記事でわかること
- インストール4通りの選び方と手順
- 主要ノード16個の早見表とmodels/の26フォルダ
- /promptに送るJSONの実物とエラー13件
ComfyUI の画像生成は、「モデルを読む → 文章を条件に変える → ノイズを除く → 画像に戻す → 保存」をノードの線でつないだものです。
flowchart TD
A[Load Checkpoint<br>モデルを読む] -->|CLIP| B[CLIP Text Encode<br>文章を条件に変える]
B --> C[KSampler<br>ノイズを除く]
D[Empty Latent Image<br>白紙の潜在画像] --> C
C --> E[VAE Decode<br>画像に戻す]
E --> F[Save Image<br>PNGで保存]
Load Checkpoint の3つの出力のうち、CLIP は CLIP Text Encode へ、MODEL は KSampler へ、VAE は VAE Decode へつながります。
やりたいことごとの早見表です。詳しい手順は本文の各節にあります。
| やりたいこと | 方法 | 補足 |
|---|---|---|
| すぐ始めたい(Windows・Mac) | Comfy Desktop をインストール | 公式アプリ。Manager も入る |
| Windows+NVIDIA で使う | ポータブル版の7zを解凍 | run_nvidia_gpu.bat で起動 |
| Linux・細かく管理したい | git clone+venv+PyTorch | python main.py で起動 |
| カスタムノードを入れる | ComfyUI-Manager | --enable-manager で有効 |
| モデルを置く | models/checkpoints など |
種類ごとのフォルダに置く |
| プログラムから動かす | POST /prompt |
API 形式の JSON を送る |
| GPU が無い PC で試す | --cpu を付けて起動 |
動くが遅い |
| 画面を日本語にする | 設定 → 言語 → 日本語 | 標準の機能 |
確認環境:Ubuntu 24.04・Python 3.12.3。ComfyUI 本体は GitHub の Comfy-Org/ComfyUI を clone し(master、comfyui_version.py は 0.42.0。安定版の最新タグは v0.42.4)、フォルダ構成・default_workflow.json・extra_model_paths.yaml.example・requirements.txt と、ソースの server.py・execution.py・folder_paths.py・nodes.py・comfy/cli_args.py を読んで確かめました。comfy-cli 1.23.0 と comfyui_manager 4.2.2 は venv に入れて実行し、API への送信は、ComfyUI の /prompt と同じ形で応答する擬似サーバー(Python の標準ライブラリで作成)で、届いた URL・ヘッダー・JSON を記録しました。インストール手順・必要なスペック・画面の文言・Manager の使い方は docs.comfy.org(日本語版)と GitHub の README、Comfy Cloud の料金は comfy.org の料金ページで確かめています(確認日 2026年10月22日)。
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「ComfyUIとは|インストール・使い方・Manager・APIを解説」
ComfyUIとは(できること・仕組み)
この節では、ComfyUI が何をするソフトで、ほかの画像生成ツールと何が違うのかが分かります。
ComfyUI(コンフィーユーアイ)は、画像・動画・音声・3D などを生成する AI モデルを、ノード(箱)と線(つながり)の図で組み立てて動かすオープンソースのアプリです。 ブラウザで画面を開き、自分の PC の GPU で生成します。ライセンスは GPL-3.0 で、本体は無料です。開発は Comfy Org が行い、ソースは GitHub で公開されています。
「Stable Diffusion」は画像生成の AI モデルの名前で、ComfyUI はそのモデルを動かすためのソフトです。README には、Stable Diffusion 1.5・SDXL・SD3.5・Flux.1・Flux.2・Qwen Image などの画像生成、Wan 2.1/2.2・LTX-Video などの動画生成、ACE-Step などの音声生成、Hunyuan3D などの 3D 生成のモデルが、標準で対応するものとして挙げられています。生成した動画の形式を変えたり圧縮したりする作業は、関連記事「ffmpegの使い方|MOV→MP4変換・圧縮・切り出しを実測で解説」で扱っています。
1処理の流れが見える
モデルの読み込み・プロンプト・サンプラー・保存が1つずつノードになっていて、どこで何をしているかが図で分かる。
2ワークフローを保存・共有できる
つないだ図は JSON で保存できる。生成した PNG にもワークフローが埋め込まれ、画面にドラッグすると同じ図が開く。
3変えた部分だけ再実行する
同じ図をもう一度実行すると、変わったノードと、その先だけが動く。前の結果は使い回される。
4プログラムから呼べる
サーバーとして動いているので、API 形式の JSON を /prompt に送れば、画面を使わずに生成できる。
README の「Notes」には、実行のしくみとして次の2点が書かれています。
- 出力(Save Image など)につながり、入力がすべてそろっている部分だけが実行される。
- 前回と変わった部分だけが実行される。同じ図を2回送ると、実行されるのは1回目だけ。
ノード・ワークフロー・モデルの関係
| 用語 | 意味 | 例 |
|---|---|---|
| ノード | 1つの処理をする箱。入力と出力の口を持つ | KSampler、VAE Decode |
| リンク(線) | ノードの出力を、別のノードの入力につなぐもの | MODEL、CLIP、LATENT |
| ワークフロー | ノードとリンクの図全体。JSON で保存する | テキストから画像を作る図 |
| モデル | 学習済みの重みのファイル。ノードが読み込む | .safetensors のチェックポイント |
| カスタムノード | 有志が作った追加のノード。custom_nodes/ に入れる |
ControlNet の前処理ノードなど |
ComfyUIの必要スペック(GPU・VRAM・RAM・ストレージ)
この節では、自分の PC で ComfyUI が動くかを、公式の記載で判断できます。
| 項目 | 公式の記載(2026年10月22日時点) | 出典 |
|---|---|---|
| OS | Windows・Linux・macOS(Apple シリコン) | docs.comfy.org システム要件 |
| NVIDIA GPU | CUDA 13.0 向けの PyTorch。20シリーズ以降は cu130 以上が必須 | README |
| NVIDIA 10シリーズ以前 | 10シリーズ以前は CUDA 12.6・Python 3.12 のポータブル版 | README |
| AMD GPU | Linux は ROCm 7.2、Windows は ROCm 10.0(RDNA 2〜4) | README |
| Intel GPU | Arc シリーズ(PyTorch の XPU) | README |
| Mac | Apple シリコン(M1〜M4)。デスクトップ版は macOS 13 以降 | README・docs |
| GPU なし | --cpu で動くが遅い |
README・docs |
| VRAM・RAM | 4GB の VRAM と 8GB の RAM でも動かせると記載 | README |
| PyTorch | 2.7 以上。新しい版を強く推奨 | README |
| ブラウザ | Google Chrome 143 以降を推奨 | docs.comfy.org |
VRAM が足りるかどうかは、使うモデルで大きく変わります。 README の「4GB」は、非同期で重みを読み込む仕組みを使ったときの下限の目安です。モデルのファイルは1つで数 GB あることが多く、docs.comfy.org のモデルの説明でも、ディスクの空きと時間に余裕を持つよう書かれています。
ComfyUIのインストール方法の選び方
この節では、4通りのインストール方法から、自分に合うものを1つ選べます。
| 方法 | 向いている人 | 対応 OS | 起動のしかた |
|---|---|---|---|
| Comfy Desktop(公式アプリ) | 初めて使う人。README と docs が推奨 | Windows・macOS | スタートメニュー・アプリ |
| Windows ポータブル版 | 解凍してすぐ使いたい Windows の人 | Windows | run_nvidia_gpu.bat など |
| 手動インストール(git+venv) | Linux の人、版や依存を自分で管理したい人 | Windows・Linux・macOS | python main.py |
| comfy-cli | コマンドでインストールから起動・管理までしたい人 | Windows・Linux・macOS | comfy launch |
README は、新しく使う人にはデスクトップ版を最も簡単な方法として勧め、ポータブル版は「通常の利用者には勧めない」と書いています。Linux 向けのデスクトップ版は無いので、Linux は手動インストールか comfy-cli になります。 このほか、有料の Comfy Cloud(後の節で料金を記載)を使えば、自分の PC に入れずにブラウザだけで使えます。
Comfy Desktop(Windows・Mac)
| 項目 | Windows | macOS |
|---|---|---|
| 要件 | Windows 10 以降(x64 または ARM64) | macOS 13(Ventura)以降、Apple シリコン |
| GPU | NVIDIA・AMD の専用 GPU を推奨(必須ではない) | Apple シリコンの GPU(Metal) |
| 入れ方 | .exe のインストーラーを実行 |
.dmg を開き Applications へドラッグ |
| ComfyUI の置き場所 | %LOCALAPPDATA%\Comfy-Desktop\ComfyUI-Installs |
アプリが管理 |
| ログ | %APPDATA%\Comfy Desktop\logs の app.log |
アプリが管理 |
初回起動時に、Comfy Cloud を使うか、この PC にインストールするかを選びます。デスクトップ版は ComfyUI-Manager を入れて --enable-manager 付きで起動するので、Manager の準備は要りません。Mac で初回にセキュリティの警告が出たときは、docs では「システム設定 → プライバシーとセキュリティ」の「このまま開く」で開く手順が案内されています。
Windowsポータブル版のインストール
この節では、ポータブル版をダウンロードして最初の画面を開くまでの手順が分かります。
ポータブル版は、Python と PyTorch を同梱した 7z ファイルです。GPU の種類でファイルが違います。
| GPU | ファイル名 | 中身 |
|---|---|---|
| NVIDIA(20シリーズ以降) | ComfyUI_windows_portable_nvidia.7z |
Python 3.13・PyTorch CUDA 13.0 |
| NVIDIA(10シリーズ以前) | ComfyUI_windows_portable_nvidia_cu126.7z |
Python 3.12・PyTorch CUDA 12.6。新しい GPU には使わない |
| AMD | ComfyUI_windows_portable_amd.7z |
AMD GPU 用 |
| Intel | ComfyUI_windows_portable_intel.7z |
Intel GPU 用 |
GitHub のリリースから 7z をダウンロード
README の「Windows Portable」の節にある直接リンクから、GPU に合うファイルを選びます。
7-Zip かエクスプローラーで解凍
解凍できないときは、ファイルを右クリック →「プロパティ」→「ブロックの解除」をしてからやり直します。
モデルを置く
小さいモデルなら、チェックポイント(数 GB の .safetensors)を ComfyUI\models\checkpoints に置きます。大きいモデルはファイルが複数に分かれ、置くフォルダも決まっています。
run_nvidia_gpu.bat を実行
CPU だけで動かすときは run_cpu.bat。起動しないときは NVIDIA のドライバーを更新します。
ブラウザで開く
ログに To see the GUI go to: http://127.0.0.1:8188 と出たら、そのアドレスを開きます。
解凍後のフォルダは次の形です(docs と comfyui-wiki の説明をもとにした主な部分)。
ComfyUI_windows_portable/
├─ ComfyUI/ ← 本体(models・custom_nodes・input・output・user など)
├─ python_embeded/ ← 同梱の Python
├─ update/ ← 更新用の bat(後の「アップデート」の節)
├─ run_cpu.bat
└─ run_nvidia_gpu.bat
python_embeded は同梱の Python で、ポータブル版で pip を使うときは .\python_embeded\python.exe -m pip … の形で、この Python を指定します(ComfyUI-Manager の節で使います)。
手動インストール(Windows・Linux)とMac
この節では、git と Python の仮想環境で ComfyUI を入れる手順が、GPU の種類ごとに分かります。
手動インストールは次の4段です。仮想環境(venv)は、ほかの Python の環境と混ざらないように ComfyUI 専用に作ります。
# 1. 取得して仮想環境を作る(Linux・Mac の例)
git clone https://github.com/Comfy-Org/ComfyUI.git
cd ComfyUI
python3.13 -m venv venv
source venv/bin/activate # Windows は venv\Scripts\activate
# 2. GPU に合う PyTorch を入れる(下の表から1行選ぶ)
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu130
# 3. ComfyUI の依存を入れる
pip install -r requirements.txt
# 4. 起動する
python main.py
PyTorch は requirements.txt より先に、GPU に合うものを入れます。 先に requirements.txt を入れると、GPU に合わない PyTorch が入ることがあります。README に載っている PyTorch のコマンドは次のとおりです。
| GPU | PyTorch を入れるコマンド(README の記載) |
|---|---|
| NVIDIA | pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu130 |
| AMD(Linux) | pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm7.2 |
| AMD(Windows) | AMD の multi-architecture パッケージ(torch[device-all]==2.13.0+rocm10.0.0 など) |
| Intel Arc | pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/xpu |
| Apple シリコン | Apple の「Accelerated PyTorch training on Mac」の手順で PyTorch nightly |
clone した直後の ComfyUI フォルダの中身です(master、2026年10月22日に取得)。
$ ls
AGENTS.md blueprints extra_model_paths.yaml.example output
CODEOWNERS comfy folder_paths.py protocol.py
CONTRIBUTING.md comfy_api hook_breaker_ac10a0.py pyproject.toml
LICENSE comfy_api_nodes input pytest.ini
QUANTIZATION.md comfy_config latent_preview.py requirements.txt
README.md comfy_execution main.py script_examples
SECURITY.md comfy_extras manager_requirements.txt server.py
agent_requirements.txt comfyui_version.py middleware tests
alembic.ini cuda_malloc.py models tests-unit
alembic_db custom_nodes node_helpers.py utils
api_server default_workflow.json nodes.py
app execution.py openapi.yaml
よく触るのは、models(モデルを置く)・custom_nodes(カスタムノードを置く)・input(読み込む画像)・output(生成した画像)・main.py(起動)・extra_model_paths.yaml.example(モデルの場所の設定例)です。
requirements.txt の先頭には、画面(フロントエンド)・テンプレート・組み込みのノード説明が、別の pip パッケージとして版を固定して書かれています。
comfyui-frontend-package==1.57.1
comfyui-workflow-templates==0.11.94
comfyui-embedded-docs==0.5.14
torch
torchsde
torchvision
numpy>=1.25.0
...
画面を更新するときも pip install -r requirements.txt を流し直す必要があるのは、このためです。Python の仮想環境の作り方は、関連記事「Python venvの使い方|仮想環境の作成・有効化・削除をOS別にコピペ」で扱っています。
comfy-cliで入れる
comfy-cli は、ComfyUI のインストール・起動・カスタムノードやモデルの管理を1つのコマンドで行う公式の CLI です。pip で入れて、comfy install で ComfyUI と ComfyUI-Manager をまとめて入れます。
pip install comfy-cli
comfy install # GPU を聞かれる。--nvidia・--amd・--m-series・--cpu で指定もできる
comfy launch # 起動
実際に入れた comfy-cli 1.23.0 の comfy install --help の主なオプションです(出力から抜粋)。
$ comfy --version
{"schema": "envelope/1", "type": "envelope", "ok": true, "command": "version", "version": "1.23.0", "where": null, "data": {"version": "1.23.0"}, "error": null}
$ comfy install --help
Usage: comfy install [OPTIONS]
Download and install ComfyUI and ComfyUI-Manager
│ --version Specify version of ComfyUI to install. ... Other options include: latest, which
│ is the latest stable release. Or a specific version number, eg. 0.2.0
│ --skip-manager Skip installing the manager component
│ --nvidia Install for Nvidia gpu
│ --cuda-version <13.0|12.9|12.8|12.6|12.4|12.1|11.8>
│ --rocm-version <7.2|7.1|7.0|6.3|6.2|6.1> [default: 7.2]
│ --amd Install for AMD gpu
│ --m-series Install for Mac M-Series gpu
│ --cpu Install for CPU
│ --fast-deps Use uv instead of pip for dependency resolution
端末につながっていないところで comfy --version を実行すると、JSON で結果が返りました。 ヘルプには --json(JSON で出す)と --no-json(人が読む形で出す)の切り替えがあり、スクリプトから使う前提の作りになっています。
ComfyUIの起動と画面の見方(日本語化・ショートカット)
この節では、起動したあと画面のどこを触ればよいかと、日本語への切り替え方が分かります。
起動するとサーバーのログが流れ、最後に URL が出ます。ソースの server.py と comfy/model_management.py が出すログの主な行は次のとおりです。
| ログの行 | 意味 |
|---|---|
Total VRAM … MB, total RAM … MB |
見つけた GPU のメモリと PC のメモリ |
pytorch version: … |
使っている PyTorch の版 |
Device: … |
生成に使う装置(GPU の名前、CPU など) |
Import times for custom nodes: |
カスタムノードごとの読み込み時間。失敗は (IMPORT FAILED) |
Starting server |
サーバーの起動開始 |
To see the GUI go to: http://127.0.0.1:8188 |
ブラウザで開く URL |
got prompt |
実行の依頼を受け取った |
Prompt executed in … seconds |
1回の実行が終わった時間 |
ブラウザの画面は、中央のキャンバス(ノードを並べる場所)、上の Run(実行)ボタン、左のサイドバー(Node Library・Model Library・Workflows など)でできています。画面を日本語にするには、設定(歯車のアイコンか Ctrl + ,)→「言語設定」→「言語」で「日本語」を選びます。 以前は日本語化のカスタムノードを入れる方法がありましたが、現在は標準の設定で切り替えられます。既定はブラウザの言語の自動検出です。
よく使うショートカット
| キー | 動き |
|---|---|
Ctrl + Enter |
今の図を実行の列(キュー)に入れる |
Ctrl + Shift + Enter |
列の先頭に入れる |
Ctrl + Alt + Enter |
実行中の生成を取り消す |
| ダブルクリック | ノードを検索して追加する |
Ctrl + S / Ctrl + O |
ワークフローを保存する/開く |
Ctrl + Z / Ctrl + Y |
元に戻す/やり直す |
Ctrl + M |
選んだノードを無効にする(ミュート) |
Ctrl + B |
選んだノードを飛ばす(バイパス。線はつながったまま) |
Ctrl + G |
選んだノードをグループにする |
Ctrl + D |
既定のワークフローを読み込む |
. |
選んだノード(無ければ図全体)に表示を合わせる |
Space を押しながらドラッグ |
キャンバスを動かす |
Mac では Ctrl の代わりに Cmd を使います(README の Shortcuts の表より)。
最初の画像を生成する(基本のワークフロー)
この節では、テキストから画像を作る基本の図を、ノードごとの役割と合わせて組めます。
画面を開くと既定のワークフローが表示されます(表示されないときは Ctrl + D)。テンプレートから「テキストから画像」の図を開くこともできます。SD1.5 のような1ファイルのチェックポイントを使う基本の図は、次の7ノードです。
| 順番 | ノード | すること | 主に変える値 |
|---|---|---|---|
| 1 | Load Checkpoint | モデルを読み、MODEL・CLIP・VAE の3つを出す | ckpt_name(モデルのファイル名) |
| 2 | CLIP Text Encode(2つ) | プロンプトとネガティブプロンプトを条件に変える | text |
| 3 | Empty Latent Image | 白紙の潜在画像を作る | width・height・batch_size |
| 4 | KSampler | ノイズを少しずつ除いて絵を作る | seed・steps・cfg・sampler_name |
| 5 | VAE Decode | 潜在画像を普通の画像に戻す | なし |
| 6 | Save Image | output フォルダに PNG で保存する |
filename_prefix |
Load Checkpoint でモデルを選ぶ
models/checkpoints に置いたファイルが一覧に出ます。出ないときは ComfyUI を再起動します。
プロンプトを書く
上の CLIP Text Encode に描きたいもの、下の CLIP Text Encode に避けたいもの(ぼやけ・低画質など)を書きます。
画像の大きさを決める
Empty Latent Image の width・height を、モデルに合う大きさにします。SD1.5 は 512、SDXL は 1024 が基本です。
Run を押す
上の Run ボタンか Ctrl + Enter。実行中のノードが順に光り、Save Image に画像が出ます。
実行ボタンの名前
どちらも「今の図を実行の列に入れる」ボタン。ショートカットは同じ Ctrl + Enter
生成した PNG には、使ったワークフローと seed が埋め込まれます。PNG を画面にドラッグすると、その画像を作った図がそのまま開きます。 人から受け取った画像でも同じで、ワークフローの共有によく使われる方法です。
ComfyUIの主要ノードの早見表
この節では、よく使うノードの意味と、何をつなげばよいか(入力と出力の型)が分かります。
線の色と口の名前は「型」を表し、同じ型どうしだけがつながります。表の「出力」は nodes.py の定義(RETURN_TYPES)です。
| 画面の名前 | class_type | すること | 入力 → 出力 |
|---|---|---|---|
| Load Checkpoint | CheckpointLoaderSimple | 1ファイルのモデルを読む | ファイル名 → MODEL・CLIP・VAE |
| Load Diffusion Model | UNETLoader | 拡散モデルだけを読む(Flux 等) | ファイル名 → MODEL |
| Load CLIP | CLIPLoader | 文章用のモデル(テキストエンコーダー)を読む | ファイル名 → CLIP |
| Load VAE | VAELoader | VAE だけを読む | ファイル名 → VAE |
| Load LoRA (Model and CLIP) | LoraLoader | LoRA で絵柄などを足す | MODEL・CLIP → MODEL・CLIP |
| CLIP Text Encode (Prompt) | CLIPTextEncode | プロンプトを条件に変える | CLIP・文章 → CONDITIONING |
| Empty Latent Image | EmptyLatentImage | 白紙の潜在画像を作る | 幅・高さ → LATENT |
| KSampler | KSampler | ノイズを除いて絵を作る | MODEL・条件・LATENT → LATENT |
| KSampler (Advanced) | KSamplerAdvanced | 開始・終了の段を細かく決める | 同上 → LATENT |
| VAE Decode | VAEDecode | 潜在画像を画像に戻す | LATENT・VAE → IMAGE |
| VAE Encode | VAEEncode | 画像を潜在画像にする(img2img) | IMAGE・VAE → LATENT |
| Load Image | LoadImage | input の画像を読む |
ファイル名 → IMAGE・MASK |
| Save Image | SaveImage | output に保存する(出力ノード) |
IMAGE → 保存 |
| Preview Image | PreviewImage | 保存せずに表示だけする(出力ノード) | IMAGE → 表示 |
| Load ControlNet Model | ControlNetLoader | ControlNet のモデルを読む | ファイル名 → CONTROL_NET |
| Apply ControlNet | ControlNetApplyAdvanced | 線画・ポーズ等で構図を指定する | 条件・CONTROL_NET・IMAGE → 条件 |
画像から画像(img2img)は、Empty Latent Image の代わりに Load Image → VAE Encode をつなぎ、KSampler の denoise を 1.0 より小さくする形です。 denoise を下げるほど、元の画像の形が残ります。
KSamplerの設定値
| 項目 | 意味 | 既定値・範囲(docs) |
|---|---|---|
| seed | 乱数の種。同じ値なら同じ画像になる | 0(0〜18446744073709551615) |
| control_after_generate | 実行のたびに seed をどう変えるか | ランダム・増加・減少・固定 |
| steps | ノイズを除く回数。多いほど遅い | 20(1〜10000) |
| cfg | プロンプトにどれだけ従うか | 8.0(0.0〜100.0)。docs は 6〜8 を推奨 |
| sampler_name | ノイズの除き方の計算方法 | euler・dpmpp_2m など |
| scheduler | ノイズを減らしていく配分 | normal・karras など |
| denoise | どれだけノイズを除くか | 1.0(0.0〜1.0) |
sampler_name と scheduler の選択肢は、ソースの comfy/samplers.py に並んでいます。scheduler は simple・sgm_uniform・karras・exponential・ddim_uniform・beta・normal・linear_quadratic・kl_optimal の9種類、sampler は euler・euler_ancestral・heun・dpmpp_2m・dpmpp_2m_sde・dpmpp_3m_sde・lcm・res_multistep・ddim・uni_pc など40種類近くあります。モデルの配布ページに推奨の組み合わせが書かれていることが多いので、まずそれに合わせます。
プロンプトの書き方(強調・ワイルドカード・embedding)
README の Notes に書かれている、CLIP Text Encode の書き方です。
| 書き方 | 意味 |
|---|---|
(good code:1.2) |
その語を 1.2 倍に強める。(bad code:0.8) で弱める |
(word) |
1.1 倍に強める(既定の倍率) |
// コメント・/* コメント */ |
書いても生成には使われない |
embedding:ファイル名 |
models/embeddings の埋め込みを使う(拡張子は省略できる) |
\(・\{ |
( や { を文字としてそのまま使う |
{day|night} のように波かっこの中を縦線で区切ると、実行のたびに画面側がどれか1つをランダムに選んで置き換えます(ワイルドカード)。
ComfyUIのモデルの置き場所(models/以下の表)
この節では、ダウンロードしたモデルをどのフォルダに置けばノードの一覧に出るかが分かります。
clone した直後の models には、26個のフォルダがあります。
$ ls models
audio_encoders controlnet geometry_estimation optical_flow vae
background_removal detection gligen photomaker vae_approx
checkpoints diffusers hypernetworks style_models
clip diffusion_models latent_upscale_models text_encoders
clip_vision embeddings loras unet
configs frame_interpolation model_patches upscale_models
よく使うものと、読み込むノードの対応です。folder_paths.py で、どのフォルダをどの名前で探すかが決まっています。
| 置くもの | フォルダ | 読み込むノード |
|---|---|---|
| チェックポイント(1ファイルのモデル) | models/checkpoints |
Load Checkpoint |
| LoRA | models/loras |
Load LoRA |
| VAE | models/vae |
Load VAE |
| 拡散モデル(分割配布のもの) | models/diffusion_models(unet も可) |
Load Diffusion Model |
| テキストエンコーダー | models/text_encoders(clip も可) |
Load CLIP |
| ControlNet | models/controlnet(t2i_adapter も可) |
Load ControlNet Model |
| アップスケーラー | models/upscale_models |
Load Upscale Model |
| embedding(Textual Inversion) | models/embeddings |
プロンプトに embedding: で書く |
| CLIP Vision | models/clip_vision |
Load CLIP Vision |
| 高画質プレビュー用(TAESD) | models/vae_approx |
--preview-method taesd で使う |
読み込める拡張子は .safetensors・.ckpt・.pt・.pt2・.pth・.bin・.pkl・.sft です(folder_paths.py の supported_pt_extensions)。GGUF 形式は標準では読めず、docs ではカスタムノード(ComfyUI-GGUF など)が必要と説明されています。
分割配布のモデルを checkpoints に置いたとき
既定のワークフロー(Z-Image Turbo)も、3つのファイルをそれぞれのフォルダから読む形になっている
モデルの入手先
モデルは、作った組織や Comfy Org が公開している配布ページから入手します。clone したリポジトリの default_workflow.json には、必要なモデルのファイル名・入手先の URL・置くフォルダが、ノードごとに書かれていました。
"models": [
{
"name": "qwen_3_4b.safetensors",
"url": "https://huggingface.co/Comfy-Org/z_image_turbo/resolve/main/split_files/text_encoders/qwen_3_4b.safetensors",
"directory": "text_encoders"
}
]
テンプレートのワークフローを開くと、この情報をもとに足りないモデルが案内されます。モデルごとに利用条件(ライセンス)が違うので、商用で使うときは配布ページの条件を確かめます。 ComfyUI 本体のライセンス(GPL-3.0)と、生成に使うモデルのライセンスは別のものです。
別の場所のモデルを使う(extra_model_paths.yaml)
Stable Diffusion web UI(AUTOMATIC1111)など、ほかのツールのモデルフォルダをそのまま使うときは、extra_model_paths.yaml.example を extra_model_paths.yaml に名前を変えて、# を外します。リポジトリに入っている例のうち、AUTOMATIC1111 用の部分です。
a1111:
base_path: path/to/stable-diffusion-webui/
checkpoints: models/Stable-diffusion
configs: models/Stable-diffusion
vae: models/VAE
loras: |
models/Lora
models/LyCORIS
upscale_models: |
models/ESRGAN
models/RealESRGAN
models/SwinIR
embeddings: embeddings
hypernetworks: models/hypernetworks
controlnet: models/ControlNet
base_path を自分の web UI のフォルダに書き換え、ComfyUI を再起動すると読み込まれます。別の場所のファイルを指定するときは、起動オプション --extra-model-paths-config でも渡せます。
ComfyUI-Managerのインストールと使い方
この節では、カスタムノードを管理する ComfyUI-Manager の入れ方と、カスタムノードを入れる手順が分かります。
ComfyUI-Manager は、カスタムノードのインストール・更新・削除・無効化と、ワークフローに足りないノードの検出を行う拡張機能です。 現在は ComfyUI 本体とは別の pip パッケージ(comfyui_manager)になっていて、本体の manager_requirements.txt で版が固定されています。
$ cat manager_requirements.txt
comfyui_manager==4.2.2
インストール方法(版ごと)
| 使っている ComfyUI | 手順 |
|---|---|
| デスクトップ版 | 何もしない。最初から --enable-manager で起動している |
| ポータブル版 | .\python_embeded\python.exe -m pip install -r ComfyUI\manager_requirements.txt のあと、--enable-manager を付けて起動 |
| 手動インストール | venv を有効にして pip install -r manager_requirements.txt、python main.py --enable-manager |
| comfy-cli | comfy install で一緒に入る(--skip-manager で外せる) |
ポータブル版で毎回 Manager 付きで起動するには、docs の例のように bat の起動行を次の形にします。
.\python_embeded\python.exe -s ComfyUI\main.py --windows-standalone-build --enable-manager
pause
| 起動オプション | 意味 |
|---|---|
--enable-manager |
ComfyUI-Manager を有効にする |
--enable-manager-legacy-ui |
以前の Manager の画面を使う(--enable-manager も有効になる) |
--disable-manager-ui |
画面とエンドポイントを止め、裏の機能(安全チェックなど)だけ残す |
以前は custom_nodes に Manager のリポジトリを git clone する方法が主流でした。docs ではこれを「レガシーなインストール方法」として残し、置き場所は ComfyUI/custom_nodes/comfyui-manager にすること、ComfyUI-Manager-main のような名前や二重のフォルダにしないことを注意しています。
カスタムノードを入れる・足りないノードを入れる
新しい画面での操作は docs の「パック管理」の説明のとおりです。
Manager を開いて検索する
上の検索バーで、ノードパック(Node Pack)か個別のノード(Node)を検索します。
Install を押す
カードを選んで Install。版を選ぶときは Version から選びます。
ComfyUI を再起動する
カスタムノードは起動時に読み込まれます。ログの Import times for custom nodes: で読み込めたかを確かめます。
人からもらったワークフローを開いて、使われているノードが入っていないときは、知らせが出ます。Install All で足りないノードをまとめて入れるか、Open Manager で中身を確かめてから入れます。 削除はノードを選んで Uninstall です。
よく名前が挙がるカスタムノードの例です(各リポジトリの README の説明)。
| ノードパック | 何をするものか |
|---|---|
| ComfyUI-Impact-Pack | 検出(Detector)・部分の描き直し(Detailer)・拡大などで画像を整える |
| comfyui_controlnet_aux | ControlNet に渡す線画・深度・ポーズなどの画像を作る前処理 |
| ComfyUI-GGUF | GGUF 形式に量子化したモデルを読み込み、VRAM を節約する |
| rgthree-comfy | 図の整理や操作を楽にするノードと画面の改良 |
カスタムノードを入れる前のチェック
カスタムノードは、ComfyUI の中で動く Python のプログラムです。Manager は危険度で操作を分け、config.ini の security_level で許す範囲を決めています。
- 1配布元のリポジトリと、更新が続いているかを見るManager の詳細パネルで説明とノードの一覧を確かめられる
- 2入れる前の状態を残すManager のスナップショットや comfy node save-snapshot で戻せるようにする
- 3git の URL から入れるのは危険度「高」の操作security_level が normal 以上だと拒否される。pip install・ノードの修正も同じ扱い
- 4--listen で他の端末に公開するときは、強めの設定にするnormal- は、127. 以外で待ち受けるとき危険度「高」を拒否する
- 5おかしくなったら全部外して起動して切り分ける--disable-all-custom-nodes で、カスタムノードなしで起動できる
| security_level | 拒否するもの(docs の説明) |
|---|---|
strong |
危険度「高」と「中」 |
normal |
危険度「高」 |
normal- |
--listen で 127. 以外を待ち受けるとき、危険度「高」 |
weak |
何も拒否しない |
docs では、危険度「高」は git URL からのインストール・pip install・既定のチャンネル外のノードのインストール・ノードの修正、「中」はアンインストール・更新・既定のチャンネルのノードのインストール・スナップショットの復元と削除・再起動とされています。config.ini の場所は、ComfyUI v0.3.76 以降は <USER_DIRECTORY>/__manager/config.ini です。
ComfyUIのワークフローJSON(UI形式とAPI形式)
この節では、ワークフローを保存した JSON の2つの形の違いと、読み方が分かります。
UI 形式(保存形式)
File → Save(Ctrl + S)で保存する形
ノードの位置・大きさ・グループ・線の一覧まで入る。画面で開き直すための形
API 形式
File → Export Workflow (API) で出す形
ノード ID ごとに class_type と inputs だけ。/prompt に送るための形
UI形式の中身(default_workflow.json)
リポジトリに入っている既定のワークフロー(10,184 バイト)は、nodes と links の2つの配列が中心です。ノードには位置(pos)・大きさ(size)・ウィジェットの値(widgets_values)が入り、線は links に [線のID, 出元のノード, 出元の口, 行き先のノード, 行き先の口, 型] の6つ組で並びます。
"links": [
[72, 66, 0, 69, 0, "MODEL"],
[73, 70, 0, 65, 0, "LATENT"],
[74, 63, 0, 65, 1, "VAE"],
[75, 69, 0, 70, 0, "MODEL"],
[76, 67, 0, 70, 1, "CONDITIONING"],
[78, 68, 0, 70, 3, "LATENT"],
[79, 62, 0, 67, 0, "CLIP"],
[80, 65, 0, 9, 0, "IMAGE"],
[81, 62, 0, 71, 0, "CLIP"],
[82, 71, 0, 70, 2, "CONDITIONING"]
]
KSampler(ID 70)の widgets_values は [42, "fixed", 8, 1, "res_multistep", "simple", 1] で、seed・control_after_generate・steps・cfg・sampler_name・scheduler・denoise の順です。UI 形式は値が名前ではなく並び順で入るので、プログラムで書き換えるなら API 形式のほうが扱いやすい形です。
API形式の中身
基本の7ノードの図を API 形式で書いたものです(858 バイト)。この記事の後の節で、この JSON を /prompt に送ります。
{
"4": {"class_type": "CheckpointLoaderSimple", "inputs": {"ckpt_name": "v1-5-pruned-emaonly.safetensors"}},
"5": {"class_type": "EmptyLatentImage", "inputs": {"width": 512, "height": 512, "batch_size": 1}},
"6": {"class_type": "CLIPTextEncode", "inputs": {"text": "a cat sitting on a desk, watercolor", "clip": ["4", 1]}},
"7": {"class_type": "CLIPTextEncode", "inputs": {"text": "blurry, low quality", "clip": ["4", 1]}},
"3": {"class_type": "KSampler", "inputs": {"seed": 42, "steps": 20, "cfg": 7.0, "sampler_name": "euler", "scheduler": "normal", "denoise": 1.0,
"model": ["4", 0], "positive": ["6", 0], "negative": ["7", 0], "latent_image": ["5", 0]}},
"8": {"class_type": "VAEDecode", "inputs": {"samples": ["3", 0], "vae": ["4", 2]}},
"9": {"class_type": "SaveImage", "inputs": {"filename_prefix": "cat", "images": ["8", 0]}}
}
["4", 1] は「ノード 4 の、1番目の出力」という意味です。 Load Checkpoint(ノード 4)の出力は MODEL・CLIP・VAE の順なので、["4", 0] が MODEL、["4", 1] が CLIP、["4", 2] が VAE です。
ComfyUI は、出力ノード(Save Image)からつながりをさかのぼって、必要なノードを先に動かします。同じことをする小さなスクリプトで、この JSON の実行の順番を出しました。
"""API 形式のワークフローを読み、出力ノードからさかのぼって実行の順番を出す。"""
import json, sys
wf = json.load(open(sys.argv[1], encoding="utf-8"))
OUTPUT = {"SaveImage", "PreviewImage"}
order, seen = [], set()
def visit(nid):
if nid in seen:
return
seen.add(nid)
for v in wf[nid]["inputs"].values():
if isinstance(v, list) and len(v) == 2: # ["ノードID", 出力の番号] がつながり
visit(v[0])
order.append(nid)
for nid, n in wf.items():
if n["class_type"] in OUTPUT:
visit(nid)
print(f"ノード {len(wf)} 個 / つながり {sum(isinstance(v, list) for n in wf.values() for v in n['inputs'].values())} 本")
for i, nid in enumerate(order, 1):
n = wf[nid]
links = [f"{k}<-{v[0]}[{v[1]}]" for k, v in n["inputs"].items() if isinstance(v, list)]
print(f"{i}. #{nid} {n['class_type']:<22} {' '.join(links)}")
$ python3 order.py workflow_api.json
ノード 7 個 / つながり 9 本
1. #4 CheckpointLoaderSimple
2. #6 CLIPTextEncode clip<-4[1]
3. #7 CLIPTextEncode clip<-4[1]
4. #5 EmptyLatentImage
5. #3 KSampler model<-4[0] positive<-6[0] negative<-7[0] latent_image<-5[0]
6. #8 VAEDecode samples<-3[0] vae<-4[2]
7. #9 SaveImage images<-8[0]
JSON のキーの順(4・5・6・7・3・8・9)とは関係なく、つながりで順番が決まりました。Save Image につながっていないノードは、この順番に入らないので実行されません。JSON の読み書きは、関連記事「Python JSON 読み書き|コピペレシピと実行結果・3.14対応」で扱っています。
ComfyUIをAPIで実行する(/promptとWebSocket)
この節では、プログラムから ComfyUI に生成を依頼し、結果の画像を受け取るまでの流れと、実際に送られる中身が分かります。
ComfyUI を起動すると、画面と同じサーバーが HTTP の API も受け付けます。ポート 8188 のサーバーに、画面を開かずに JSON を送るだけで生成を依頼できます。
flowchart LR
A[自分の<br>プログラム] -->|POST /prompt| B[ComfyUI<br>サーバー]
B -->|/ws で進み具合| A
A -->|GET /history<br>GET /view| B
JSON を送ると prompt_id が返り、WebSocket(/ws)で進み具合を受け取り、終わったら /history で出力のファイル名を調べて /view で画像を取ります。
| エンドポイント | メソッド | すること |
|---|---|---|
/prompt |
POST | ワークフローを実行の列に入れる |
/ws?clientId=… |
WebSocket | 実行の進み具合(status・executing・progress・executed など)を受け取る |
/history/{prompt_id} |
GET | 終わった実行の結果(出力の画像のファイル名など)を返す |
/view?filename=…&subfolder=…&type=output |
GET | 画像そのものを返す |
/queue |
GET・POST | 列の状態を返す/列を空にする |
/interrupt |
POST | 実行中の生成を止める |
/object_info |
GET | 全ノードの入力・出力の定義を返す |
/system_stats |
GET | Python の版・装置・VRAM などを返す |
/upload/image |
POST | img2img などに使う画像を input に上げる |
/free |
POST | モデルをメモリから外す |
Pythonから/promptに送る
標準ライブラリだけで、前の節の JSON のプロンプトと seed を差し替えて送るスクリプトです。リポジトリの script_examples/basic_api_example.py と同じ形に、client_id と prompt_id を足しています。
"""API 形式のワークフローを ComfyUI の /prompt に送る(標準ライブラリだけ)。"""
import json, sys, uuid, urllib.request
SERVER = sys.argv[2] if len(sys.argv) > 2 else "127.0.0.1:8188"
wf = json.load(open(sys.argv[1], encoding="utf-8"))
wf["6"]["inputs"]["text"] = "a dog running on the beach, watercolor" # プロンプトを差し替える
wf["3"]["inputs"]["seed"] = 12345 # seed を差し替える
body = {"prompt": wf, "client_id": str(uuid.uuid4()), "prompt_id": str(uuid.uuid4())}
req = urllib.request.Request(f"http://{SERVER}/prompt", data=json.dumps(body).encode(),
headers={"Content-Type": "application/json"})
with urllib.request.urlopen(req) as r:
print(r.status, r.read().decode())
/prompt と同じ形で応答する擬似サーバー(ポート 28900)に向けて実行し、届いたリクエストを記録しました。
$ python3 queue.py workflow_api.json 127.0.0.1:28900
200 {"prompt_id": "398f3e52-e58c-4315-bada-dc6d2d89c5a8", "number": 0, "node_errors": {}}
POST /prompt
Content-Type: application/json
Content-Length: 957
User-Agent: Python-urllib/3.11
{"prompt": {"4": {"class_type": "CheckpointLoaderSimple", ...},
"6": {"class_type": "CLIPTextEncode", "inputs": {"text": "a dog running on the beach, watercolor", "clip": ["4", 1]}},
"3": {"class_type": "KSampler", "inputs": {"seed": 12345, ...}}, ...},
"client_id": "0adf3918-d2c3-474a-8158-d1d182d333d3",
"prompt_id": "398f3e52-e58c-4315-bada-dc6d2d89c5a8"}
(本文は長いので一部を「...」で省いています。)
送る本文の決まりは、ソースの server.py の post_prompt に書かれています。
| キー | 意味 |
|---|---|
prompt |
API 形式のワークフロー(必須。無いと 400 の no_prompt) |
client_id |
WebSocket の clientId と同じ値にすると、その接続に進み具合が届く |
prompt_id |
自分で決める ID。省くとサーバーが UUID を作る。UUID でないと 400 の invalid_prompt_id |
front |
true で列の先頭に入れる |
extra_data |
追加の情報。有料の API ノードを使うときの API キー(api_key_comfy_org)もここに入れる |
検証に通ると {"prompt_id": …, "number": …, "node_errors": {}} が返り、通らないと HTTP 400 で {"error": …, "node_errors": …} が返ります。200 が返った時点では「列に入った」だけで、画像はまだできていません。 終わったかどうかは、WebSocket で executing の node が null になる知らせを待つか、/history/{prompt_id} を見て確かめます(script_examples/websockets_api_example.py がこの形です)。
comfy-cliのcomfy runで送る
comfy-cli の comfy run でも、同じ JSON を送れます。同じ擬似サーバーに向けた結果です(ホームのパスは ~ に置き換えています)。
$ comfy --no-json run --workflow workflow_api.json --host 127.0.0.1 --port 28900
⏳ queued f33dbb13-7cb8-42b8-b215-c3605220b02d
workflow ~/comfy-api/workflow_api.json
watch comfy jobs watch f33dbb13-7cb8-42b8-b215-c3605220b02d
state ~/.config/comfy-cli/jobs/f33dbb13-7cb8-42b8-b215-c3605220b02d.json
⏳ queued · still in flight — track: comfy jobs ls --watch
擬似サーバーに届いた順番は、GET /history(起動しているかの確認)→ GET /object_info(ノード定義の取得)→ POST /prompt でした。/prompt には Comfy-Usage-Source: comfy-cli のヘッダーと、"extra_data": {"comfy_usage_source": "comfy-cli/agent"} が付いていました。
| 試したこと | 結果 |
|---|---|
サーバーが無いポートに comfy run |
ComfyUI not running on specified address (127.0.0.1:28901) と → run: comfy launch |
UI 形式の JSON を --workflow に渡す |
Detected UI-format workflow, converting to API format... と出て、変換のために /object_info を取りに行った |
/object_info が 404 のサーバーに UI 形式を渡す |
Failed to fetch /object_info (HTTP 404) で止まった |
UI 形式から API 形式への変換には、各ノードの入力の名前(ノード定義)が要ります。そのため comfy-cli は、動いている ComfyUI から定義を取ってから変換していました。
ComfyUIの起動オプション早見表
この節では、python main.py に付けるオプションのうち、よく使うものの意味が分かります。全部の一覧は python main.py --help で出ます。表はソースの comfy/cli_args.py の定義から選んだものです。
| オプション | 意味 | 既定 |
|---|---|---|
--listen [IP] |
待ち受ける IP。値を省くと 0.0.0.0,::(全部) |
127.0.0.1 |
--port |
待ち受けるポート | 8188 |
--cpu |
すべて CPU で動かす(遅い) | 無効 |
--lowvram・--novram |
VRAM が少ないときの動かし方 | 無効 |
--highvram・--gpu-only |
モデルを GPU のメモリに置いたままにする | 無効 |
--reserve-vram |
OS やほかのアプリのために残す VRAM(GB) | 自動 |
--preview-method |
生成中のプレビューの方法(auto・taesd など) |
プレビューなし |
--output-directory・--input-directory |
画像の保存先・読み込み元を変える | ComfyUI の中 |
--extra-model-paths-config |
追加のモデルの場所を書いた yaml を読む | なし |
--enable-manager |
ComfyUI-Manager を有効にする | 無効 |
--disable-all-custom-nodes |
カスタムノードを読み込まない | 無効 |
--offline |
画面がインターネットにつながらないようにし、有料の API ノードを止める | 無効 |
--auto-launch |
起動時にブラウザを開く | 無効 |
--tls-keyfile・--tls-certfile |
HTTPS で待ち受ける | なし |
--multi-user |
ユーザーごとに保存場所を分ける | 無効 |
--lowvram のヘルプには「dynamic vram が有効なときは何もしない」と書かれています。docs のトラブルシューティングでは、メモリ不足のときに解像度やバッチ数を下げたうえで --lowvram・--reserve-vram を試し、--cpu は最後の手段としています。
ComfyUIのアップデート方法
この節では、入れ方ごとの更新のしかたが分かります。
| 入れ方 | 更新のしかた |
|---|---|
| デスクトップ版 | アプリは自動で更新。ComfyUI 本体は管理パネルの「アップデート」タブ(既定は安定版) |
| ポータブル版 | update フォルダの update_comfyui_stable.bat(最新の安定版)か update_comfyui.bat(最新の開発版) |
| 手動インストール | venv を有効にして git pull → pip install -r requirements.txt → 再起動 |
| comfy-cli | comfy update comfy(カスタムノードは comfy node update) |
| ComfyUI-Manager | 本体を更新しても自動では上がらない。pip install -r manager_requirements.txt を流し直す |
ポータブル版の update_comfyui_and_python_dependencies.bat は依存も入れ直すもので、docs は競合を起こすことがあるので必要なときだけ使うよう書いています。README によると、安定版はおよそ2週間ごとに出て、タグの付いていない開発中のコミットはカスタムノードが動かなくなることがあります。仕事で使う環境は安定版のタグに合わせ、更新の前に Manager のスナップショットを取っておくと戻せます。
手動インストールで安定版に合わせるときの例です(docs の手順)。
git fetch --tags
git checkout v0.42.4 # 2026年10月22日時点の最新の安定版タグ
pip install -r requirements.txt
ComfyUIのよくあるエラーと直し方
この節では、起動・実行・Manager でよく出るメッセージの意味と直し方が分かります。メッセージは ComfyUI のソース(execution.py・server.py・nodes.py)と docs、comfy-cli の実行結果から集めたものです。
| メッセージ(原文) | 原因 | 直し方 |
|---|---|---|
Torch not compiled with CUDA enabled |
GPU 向けでない PyTorch が入っている | pip uninstall torch のあと、cu130 の PyTorch を入れ直す。Intel GPU は XPU 版を入れる |
Prompt execution failed(メモリ不足) |
VRAM か RAM が足りない | 解像度とバッチ数を下げる、--lowvram・--reserve-vram、ほかのアプリを閉じる |
Value not in list: ckpt_name: '…' not in [...] |
指定したモデルのファイルが、そのフォルダに無い | ファイル名とフォルダを確かめ、置いたら再起動する |
Node '…' not found. The custom node may not be installed. |
ワークフローが使うカスタムノードが入っていない | Manager の Install All(足りないノードを入れる) |
Prompt has no outputs |
Save Image などの出力ノードが無い | 出力ノードを足してつなぐ |
Required input is missing |
つなぐべき入力が空いている | 赤く表示された入力に線をつなぐ |
Return type mismatch between linked nodes |
型の違う口どうしがつながっている(API 形式の手書きで起きやすい) | ["ノードID", 出力の番号] の番号を直す |
Prompt outputs failed validation |
上の検証エラーがあって、実行できる出力が無い | 続けて出るノードごとの理由を直す |
prompt_id must be a valid UUID |
API で送った prompt_id が UUID の形でない |
UUID を渡すか、prompt_id を省く |
(IMPORT FAILED)(起動ログ) |
カスタムノードの依存が足りない・本体の版と合わない | 依存を入れ直す。--disable-all-custom-nodes で切り分ける |
Failed to connect to server |
ファイアウォール・VPN・プロキシで接続が止められている | 設定を確かめ、ポート 8188〜8190 を試す |
This action is not allowed with this security level configuration |
Manager の security_level が操作を許していない | 操作の危険度を確かめ、必要なら config.ini の security_level を変える |
ComfyUI not running on specified address (…) |
comfy-cli が、指定の場所で ComfyUI を見つけられない | comfy launch で起動するか、--host・--port を直す |
画面が真っ白になる、既定のワークフローが出ないときは、Ctrl + D(既定のワークフローを読み込む)を試し、ブラウザを新しい Chrome にします。docs は Chrome 142 以前に表示の不具合があると書いています。
PyTorch を入れる順番
「Torch not compiled with CUDA enabled」の多くは、この順番の違いで起きる
pip で PyTorch の版が見つからないときのエラーは、関連記事「pip No matching distribution foundの直し方」で扱っています。
Stable Diffusion web UIとの違いと料金(Comfy Cloud)
この節では、よく比べられる Stable Diffusion web UI(AUTOMATIC1111)との違いと、ComfyUI の料金の考え方が分かります。
| 観点 | ComfyUI | web UI(AUTOMATIC1111) |
|---|---|---|
| 画面の形 | ノードを線でつなぐ図 | タブと入力欄(txt2img・img2img など) |
| 作り | 独自のサーバー+フロントエンド | Gradio で作られた Web 画面 |
| 設定の保存 | ワークフローを JSON で保存。PNG にも埋め込む | 生成の設定を PNG(JPEG は EXIF)に埋め込む |
| 拡張 | カスタムノード(ComfyUI-Manager で管理) | 拡張機能(Extensions) |
| 対応するモデル | 画像・動画・音声・3D の新しいモデルを標準で多数 | Stable Diffusion 系の画像生成が中心 |
| 最新の版(タグ) | v0.42.4 | v1.10.1 |
どちらも無料のオープンソースで、自分の PC で動かします。web UI のモデルは、前の節の extra_model_paths.yaml で ComfyUI からも読めるので、両方を入れてモデルを共有する使い方もできます。Gradio の仕組みは、関連記事「Gradioとは|使い方・API呼び出し・Spaces公開をPythonで実演」で扱っています。
ComfyUIの料金
ComfyUI 本体・デスクトップ版・ポータブル版は無料です。お金がかかるのは、GPU を借りる公式のクラウド「Comfy Cloud」と、画面から呼べる他社の有料モデル(Partner Nodes、以前の名前は API ノード)を使うときです。
| プラン(Comfy Cloud) | 月額(月払い) | 1回の実行の上限 |
|---|---|---|
| Free | 無料(実 GPU での実行5回など) | — |
| Standard | $20 | 30分 |
| Creator | $35 | 30分 |
| Pro | $100 | 1時間 |
料金は comfy.org の料金ページの表示で、2026年10月22日時点のものです。年払いにすると月あたりの額が下がり、課金されるのはワークフローを実行している GPU の時間と Partner Nodes の分だけと書かれています。チーム向けのプランもあります。Partner Nodes を使わないなら、起動オプション --disable-partner-nodes で読み込まないようにできます。
よくある質問
Q. ComfyUIとは何ですか? A. 画像・動画・音声などを生成する AI モデルを、ノードをつないだ図で動かすオープンソースのアプリです。ブラウザで画面を開き、自分の PC の GPU で生成します。「ComfyUIとは(できること・仕組み)」で詳しく説明しています。
Q. ComfyUIは無料ですか?商用利用できますか? A. 本体は GPL-3.0 のオープンソースで無料です。生成した画像を商用で使えるかは、使ったモデルのライセンスで決まるので、モデルの配布ページの条件を確かめます。有料なのは Comfy Cloud と Partner Nodes です。
Q. GPUなし(CPUだけ)でも動きますか?
A. --cpu を付けると CPU だけで動きますが、遅くなります。ポータブル版なら run_cpu.bat で起動します。
Q. 必要なVRAMはどれくらいですか? A. README には、4GB の VRAM と 8GB の RAM でも大きなモデルを動かせると書かれています。ただし速さや扱える解像度はモデルで大きく変わるので、モデルの配布ページの目安も確かめます。
Q. MacでComfyUIは使えますか? A. Apple シリコン(M1 以降)の Mac で使えます。デスクトップ版は macOS 13 以降が対象です。手動インストールでは、Apple の手順で PyTorch nightly を入れてから ComfyUI を入れます。
Q. ComfyUIを日本語化するには?
A. 設定(Ctrl + ,)→「言語設定」→「言語」で「日本語」を選びます。標準の機能なので、カスタムノードは要りません。
Q. ComfyUI-Managerのボタンが表示されません。
A. 現在の ComfyUI では、Manager は --enable-manager を付けて起動したときだけ有効になります。ポータブル版・手動インストールでは、先に manager_requirements.txt を pip で入れてから、このオプションを付けて起動します。
Q. ComfyUIのモデルはどこに置きますか?どこから入手しますか?
A. 1ファイルのモデルは models/checkpoints、LoRA は models/loras、VAE は models/vae です。分割配布のモデルは diffusion_models・text_encoders・vae に分けます。入手は、モデルを作った組織や Comfy Org の公式の配布ページからです。テンプレートを開くと必要なモデルが案内されます。
Q. Stable Diffusion web UIとComfyUIはどちらを使えばよいですか?
A. 入力欄に値を入れて生成する形が合うなら web UI、処理の流れを自分で組み替えたい・動画や新しいモデルを使いたい・API から呼びたいなら ComfyUI が向いています。モデルは extra_model_paths.yaml で共有できます。
Q. ComfyUIをアップデートするには?
A. ポータブル版は update フォルダの update_comfyui_stable.bat、手動インストールは git pull と pip install -r requirements.txt、デスクトップ版は管理パネルの「アップデート」タブです。Manager は別に更新します。
Q. ComfyUIをAPIで動かせますか?
A. 動かせます。API 形式で書き出したワークフローの JSON を POST /prompt に送り、WebSocket か /history で完了を確かめて、/view で画像を受け取ります。「ComfyUIをAPIで実行する」で実物の中身を載せています。
Q. ワークフローを人と共有するには? A. File → Save で保存した JSON を渡すか、生成した PNG をそのまま渡します。PNG を画面にドラッグすると、図と seed がそのまま開きます。足りないカスタムノードは Manager の Install All で入れられます。
まとめ
- ComfyUI は、ノードをつないだ図で画像・動画などを生成する無料のアプリ。基本の図は Load Checkpoint → CLIP Text Encode → KSampler → VAE Decode → Save Image。
- 初めてならデスクトップ版(Windows・Mac)。Windows で解凍して使うならポータブル版、Linux は手動インストールか comfy-cli。手動では GPU に合う PyTorch を先に入れる。
- モデルは
models/の26フォルダのうち、種類に合うフォルダに置く。分割配布のモデルは checkpoints ではなく diffusion_models・text_encoders・vae に分ける。 - ComfyUI-Manager は別の pip パッケージになり、
manager_requirements.txtを入れて--enable-managerで起動する。カスタムノードは Python のプログラムなので、security_level とスナップショットで守る。 - API は API 形式の JSON を
POST /promptに送る。["4", 1]は「ノード 4 の1番目の出力」。200 は列に入っただけで、完了は WebSocket か/historyで確かめる。
参考・出典
確認日はいずれも 2026年10月22日です。
- ComfyUI(GitHub・README):https://github.com/Comfy-Org/ComfyUI
- ComfyUI 公式ドキュメント:システム要件:https://docs.comfy.org/ja/installation/system_requirements
- ComfyUI 公式ドキュメント:手動インストール:https://docs.comfy.org/ja/installation/manual_install
- ComfyUI 公式ドキュメント:Windows デスクトップ版:https://docs.comfy.org/ja/installation/desktop/windows
- ComfyUI 公式ドキュメント:macOS デスクトップ版:https://docs.comfy.org/ja/installation/desktop/macos
- ComfyUI 公式ドキュメント:ComfyUI の更新:https://docs.comfy.org/ja/installation/update_comfyui
- ComfyUI 公式ドキュメント:ComfyUI-Manager のインストール:https://docs.comfy.org/ja/manager/install
- ComfyUI 公式ドキュメント:パック管理:https://docs.comfy.org/ja/manager/pack-management
- ComfyUI 公式ドキュメント:Manager のトラブルシューティング:https://docs.comfy.org/ja/manager/troubleshooting
- ComfyUI 公式ドキュメント:モデル:https://docs.comfy.org/ja/development/core-concepts/models
- ComfyUI 公式ドキュメント:KSampler:https://docs.comfy.org/ja/built-in-nodes/KSampler
- ComfyUI 公式ドキュメント:サーバーのルート:https://docs.comfy.org/ja/development/comfyui-server/comms_routes
- ComfyUI 公式ドキュメント:ワークフローの API 形式:https://docs.comfy.org/ja/development/api-development/workflow-api-format
- ComfyUI 公式ドキュメント:インターフェース:https://docs.comfy.org/ja/interface/overview
- ComfyUI 公式ドキュメント:設定:https://docs.comfy.org/ja/interface/settings/comfy
- ComfyUI 公式ドキュメント:トラブルシューティング:https://docs.comfy.org/ja/troubleshooting/overview
- comfy-cli(PyPI):https://pypi.org/project/comfy-cli/
- Comfy Cloud 料金:https://www.comfy.org/cloud/pricing
- Stable Diffusion web UI(GitHub・README):https://github.com/AUTOMATIC1111/stable-diffusion-webui
- ComfyUI-Impact-Pack:https://github.com/ltdrdata/ComfyUI-Impact-Pack
- comfyui_controlnet_aux:https://github.com/Fannovel16/comfyui_controlnet_aux
- ComfyUI-GGUF:https://github.com/city96/ComfyUI-GGUF
- rgthree-comfy:https://github.com/rgthree/rgthree-comfy
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「ComfyUIとは|インストール・使い方・Manager・APIを解説」
株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。
WE ARE HIRING
RJCで一緒に開発しながら、
成長を楽しみませんか?
RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!
- 127日年間休日
- 12時間平均残業時間
- 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!
ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。