ComfyUI ワークフローJSONを保存・共有する手順と注意点

※本記事にはプロモーション(広告・アフィリエイトリンク)を含みます。
ComfyUI で組んだワークフローは、JSON ファイルとして保存して他の環境やユーザーと共有できます。「保存のボタンがわからない」「共有したら相手のノードが赤くなる」「PNG から読み込めない」という問題でつまずく場合、この記事を順番に読めば解消できます。ワークフロー JSON の種類の違いから、PNG 埋め込みの仕組み、共有時の依存関係の整理まで順番に説明します。
ワークフロー JSON の正体と2つの形式
ComfyUI のワークフローは、キャンバス上のノードの種類・パラメータ値・接続・配置座標をすべて記述した JSON ファイルです。保存形式は用途によって2種類あります。
| 形式 | 主な用途 | 含まれる情報 |
|---|---|---|
| ワークフロー JSON(UI形式) | 保存・読み込み・共有 | ノード座標・接続・パラメータ |
| API JSON | プログラムから実行 | パラメータのみ(座標なし) |
「Save」ボタンで保存されるのはワークフロー JSON です。プログラムから queue_prompt を呼ぶ場合のみ API JSON が必要になります。共有・再利用が目的ならワークフロー JSON を使ってください。
ファイルの中身を見ると、各ノードに連番の ID が振られ、その ID をキーとして inputs(パラメータ値)・class_type(ノード種類)・_meta(表示名)が記録されています。ノード同士の接続はリンク先の ID で表現されています。
ワークフローを JSON で保存する手順
ステップ 1:Save ボタンで保存する
ComfyUI のキャンバス上部にある「Save」ボタンをクリックします。
- ショートカット:
Ctrl+S(Windows / Linux)/Cmd+S(Mac) - ファイル名を指定するダイアログが表示される
- ファイルはブラウザのダウンロードフォルダに書き出される
重要:ComfyUI はブラウザベースのアプリです。「Save」は ComfyUI サーバーのディスクではなく、操作しているブラウザのダウンロードフォルダに JSON を書き出します。サーバー側のディレクトリに保管したい場合は、手動でコピーするか共有ストレージを経由してください。
ワークフローを量産するようになると、ファイルが散らばりやすくなります。~/ComfyUI/workflows/ のように専用フォルダを作り、日付やモデル名を含めたファイル名(例:20260901_flux_portrait_v2.json)にすると後から探しやすくなります。
ステップ 2:保存した JSON を読み込む
- 「Load」ボタンをクリックし、JSON ファイルを選択する
- またはキャンバス上に JSON ファイルをドラッグ&ドロップする
どちらの方法でも現在のキャンバスが上書きされます。作業中のワークフローがある場合は先に保存してください。
PNG 画像にワークフローを埋め込む仕組み
ComfyUI が出力する PNG ファイルには、生成時のワークフロー情報がデフォルトで埋め込まれています。PNG 仕様の tEXt チャンクを利用しており、次のキーで書き込まれます。
| キー名 | 内容 |
|---|---|
workflow |
ワークフロー JSON(UI 形式) |
prompt |
API 形式 JSON |
この仕組みにより、生成画像そのものがワークフローの入れ物になります。PNG ファイルを共有するだけでワークフローも一緒に渡せるため、CivitAI や OpenArt でワークフロー入り画像として公開する文化もここから来ています。
PNG からワークフローを読み込む手順
- ComfyUI のキャンバスを開く
- ワークフロー入りの PNG をキャンバス上にドラッグ&ドロップする
- 「Do you want to load the workflow embedded in this image?」というダイアログが出る
- 「Load」を選ぶとワークフローが復元される
ドラッグ&ドロップが反応しない場合は、「Load」ボタンから PNG ファイルを直接選択してください。
注意:JPEG・WebP に変換すると PNG の tEXt チャンクが失われます。ワークフローを保持したいなら PNG のまま扱ってください。SNS にアップロードした画像はメタデータを削除するサービスが多いため、ワークフロー共有には直接ファイルを送る方法をとってください。
埋め込みを確認する
exiftool があれば次のコマンドで確認できます(環境によって導入が必要です)。
exiftool your_image.png | grep -E "^Workflow|^Prompt"
値が表示されれば埋め込みあり。何も出なければ、ComfyUI の Settings 内「Save image metadata」が無効になっている可能性があります。
共有時に詰まりやすい3つのポイント
1. カスタムノードの依存関係
受け取り側の環境に、ワークフローで使ったカスタムノードがなければ、該当ノードは赤色のエラー表示になります。ワークフローは読み込めても実行できない状態です。
対処手順:
- ワークフローを作った側が使用カスタムノードの名前(
custom_nodes/以下のディレクトリ名)をリスト化して共有する - 受け取り側が ComfyUI Manager でインストールする
- ComfyUI を再起動する
ComfyUI Manager の「Missing Nodes」機能を使うと、読み込んだワークフロー内の不足ノードを自動検出してインストールできます。
カスタムノードの更新後に ComfyUI が起動しなくなった場合は、ComfyUIカスタムノード更新後に起動しない原因と対処手順が参考になります。
2. モデルのファイル名
ワークフロー JSON にはモデルのファイル名が文字列で記録されています(例:v1-5-pruned-emaonly.safetensors)。受け取り側でファイル名が異なる場合、ノードのプルダウンから手動で選び直す必要があります。
ワークフローを共有するときは、使用モデルの名前・入手先・ライセンスを README などに明記するのが慣例です。モデルそのものの同梱は著作権・ライセンスの問題があるため、原則として行いません。
3. ComfyUI バージョンの差異
ComfyUI 本体のバージョンが大きく異なると、ノードのパラメータ名が変わっている場合があります。古いワークフロー JSON を新しい環境で開いたとき、一部パラメータが認識されないケースがあります。環境によって再現性が変わる場合があるため、読み込み後にノードを一通り確認することを推奨します。
API JSON と UI 用 JSON の使い分け
プログラムから ComfyUI を操作する場合は API 形式 JSON が必要です。取得するには Dev mode の有効化が先に必要です。
- Settings(歯車アイコン)を開く
- 「Enable Dev mode Options」を ON にする
- キャンバスに「Save (API Format)」ボタンが追加される
- クリックして保存する
保存したファイルを prompt キーに渡すと実行されます。Python からは次のように呼び出せます。
import json
import requests
with open("api_workflow.json") as f:
prompt = json.load(f)
response = requests.post(
"http://127.0.0.1:8188/prompt",
json={"prompt": prompt}
)
print(response.json())
注意:API 形式 JSON をキャンバスの「Load」で読み込むと、座標情報がないためノードが全て重なって表示されます。UI での作業には使わないでください。
まとめ
ComfyUI のワークフロー共有には「JSON ファイルを直接渡す」「PNG に埋め込んで渡す」の2通りがあります。PNG 埋め込みは画像とワークフローを一体で扱えて実用的です。どちらの方法でも、カスタムノードのリストとモデル名を添えることが受け取り側に再現してもらうための最低条件です。
まずは自分のワークフローで「Save」→ PNG を生成 → その PNG をキャンバスにドロップして復元できるかを確認してみてください。この一連の流れが通れば、共有の準備は整っています。
よくある質問
ComfyUIのワークフローJSONはどこに保存されますか?
「Save」ボタンを押すと、ComfyUIサーバーではなく操作しているブラウザのダウンロードフォルダに保存されます。サーバー側のディレクトリに置きたい場合は手動でコピーしてください。
共有したワークフローでノードが赤くなるのはなぜですか?
受け取り側の環境に必要なカスタムノードがインストールされていないためです。ComfyUI Managerの「Missing Nodes」機能を使うと不足ノードを自動検出してインストールできます。
PNG画像からワークフローを読み込めません。どうすればいいですか?
JPEGやWebPに変換した場合はメタデータが失われています。SNSにアップロードした画像もメタデータが削除されることが多いため、元のPNGファイルを直接受け渡してください。
API形式JSONとUI形式JSONの違いは何ですか?
UI形式はノードの座標情報を含むため保存・共有・再利用に適しています。API形式は座標情報を含まずqueue_prompt APIへの送信専用です。用途を確認してから使い分けてください。