ComfyUI 官方 MCP 安裝與使用:讓 Claude Code 執行 workflow 產圖

摘要

Claude Code 本身不會生圖,但接上 ComfyUI 官方的 comfy-mcp 後,可以照文字描述調整 ComfyUI workflow 裡的節點,用自己電腦上的模型產出想要的圖。改好的 workflow 能直接在 ComfyUI 打開,人再接著手動調整。

文章目錄

ComfyUI 產圖的流程是一份 workflow,載入模型、輸入 Prompt、取樣和存檔各是一個節點,每個節點上的參數都是可以改的值。Claude Code 本身不會生圖,但讀得懂也改得動 workflow,等於能用程式控制 ComfyUI 產圖。我接上 ComfyUI 官方的 comfy-mcp 後,只用文字描述想要的 logo,Claude Code 就從範本改出一份 workflow,連缺的模型也一起下載,再交給本機的 ComfyUI 跑出圖。圖不滿意可以再描述一次,也可以在 ComfyUI 打開同一份 workflow,自己調整節點。

本文的測試環境是 Windows 11 與 RTX 3070 8 GB 顯示卡,ComfyUI 從零開始安裝,模型用 MOSS-Image。生圖要求是只用文字 Prompt、不給參考圖,產出一張 1024 × 1024 的 logo:暗色底,中上方是貓咪形狀的 logo,下方是 VerveCode 字樣。

暗色底的中上方是黑色幾何貓頭 logo,紅色眼睛與紅色邊緣光,下方是米白色的 VerveCode 字樣

架構

Claude Code 不直接碰 ComfyUI,中間隔著 comfy-mcp 與 comfy-cli。瀏覽器和 Comfy Desktop 都只是連上同一個 server 的畫面,不開也能產圖。

Claude Code 經 MCP 呼叫 comfy-mcp,comfy-mcp 交給 comfy-cli,comfy-cli 透過 HTTP 操作 127.0.0.1:8188 的 ComfyUI server,瀏覽器與 Comfy Desktop 也連到同一個 server

圖中各元件負責的事如下:

元件 負責的事
comfy-cli 安裝 ComfyUI 工作區、在背景啟動與停止 server、下載模型
comfy-mcp 把 comfy-cli 的功能包成 Claude Code 能呼叫的工具
ComfyUI server 執行 workflow,同時提供完整的網頁介面
瀏覽器、Comfy Desktop 給人看 workflow 與手動調整

comfy-mcp 的 README 列出全部工具與參數,官方的 Local agent tools 說明安裝與工作區的設定方式。

開始前的準備

  • 已經裝好 Claude Code、Git 與 uv。
  • 使用 NVIDIA 顯示卡,驅動要支援 CUDA 13.0 版的 PyTorch。其他顯示卡要改 comfy install 的參數,不在本文範圍。
  • 磁碟要留空間給 ComfyUI 工作區與模型,本文用到的模型合計約 13 GB。

安裝 comfy-mcp 與 comfy-cli

用 uv 安裝 comfy-mcp,同時安裝 comfy-cli,並把它的指令也放到 PATH 上:

1uv tool install comfy-mcp --with-executables-from comfy-cli

裝好後 comfy 與 comfy-mcp 兩個指令都能直接用。終端機找不到指令時,執行 uv tool update-shell 再開新的 PowerShell 視窗。

用 comfy install 建立 ComfyUI

本文的專案資料夾是 E:\comfy-quick,Claude Code 之後在這裡開 session。ComfyUI 工作區放在它底下的 ComfyUI:

1comfy --workspace E:\comfy-quick\ComfyUI --skip-prompt install --nvidia --cuda-version 13.0 --version latest

--skip-prompt 會跳過安裝過程的互動問題並照預設回答,--nvidia 與 --cuda-version 13.0 指定顯示卡與 CUDA 版本,--version latest 安裝最新的 ComfyUI。

實測花了 6.9 分鐘,裝好的是 ComfyUI 0.43.2、Python 3.12.13 與 PyTorch 2.14.1。comfy-cli 會把這個工作區記成最近使用的工作區,之後不用再指定路徑,comfy-mcp 也找得到它。這一步只裝 ComfyUI,模型等一下交給 Claude Code 依範本下載。

已經有 ComfyUI 工作區的話不用重裝。官方文件的做法是用 comfy set-default <工作區路徑> 把它設成預設工作區,comfy-mcp 就會用那一份。

把 comfy-mcp 接上 Claude Code

在專案資料夾執行官方的註冊指令:

1cd E:\comfy-quick
2claude mcp add comfy-mcp -- comfy-mcp

這會把 comfy-mcp 註冊在 Claude Code 的 local scope,只有在 E:\comfy-quick 開的 session 才會載入,不用另外寫 .mcp.json。執行 claude mcp get comfy-mcp 看到 Status: √ Connected 就代表註冊成功。

註冊後要整個重開 Claude Code,再在 E:\comfy-quick 開 session,工具清單裡才會出現 comfy-mcp。

重開後請 Claude Code 跑一次 server_info。回傳的 workspace.path 是 E:\comfy-quick\ComfyUI、type 是 recent,就代表接好了。這時 server 還沒啟動,回傳裡的 server.running 會是 false:

Claude Code 裡 server_info 的回傳結果,workspace 的 path 是 E:\comfy-quick\ComfyUI,type 是 recent

啟動 ComfyUI 並下載模型

接下來的步驟都在 Claude Code 裡用對話完成。我交代的需求大致如下:

1用 comfy-mcp 啟動 ComfyUI,取得 image_moss_image_t2i_bboxes 範本,
2照範本下載缺少的模型,再把它改成 1024×1024 的 VerveCode 貓咪 logo:
3暗色底、上方中央是貓形主 logo、下方接 VerveCode 文字,配色用 #111111 與 #C8102E。

Claude Code 會把需求寫成英文 Prompt 填進範本,實際填入的設定整理在下一節。它依序做了這幾件事:

  1. 呼叫 launch_comfyui 在背景啟動 ComfyUI,約 39 秒後 127.0.0.1:8188 就能連線。關掉 Claude Code 後 server 仍會繼續執行,要停止時,在新的 session 請 Claude Code 呼叫 stop_comfyui。
  2. 用 search_templates 與 fetch_template 取得 image_moss_image_t2i_bboxes 範本(Layout-Guided Text to Image,以下稱 Layout 範本),這個範本可以用邊界框(Bounding Box)指定 logo 與文字的位置。
  3. 用 download_model 依範本列出的連結同時下載三個模型,約 6 分鐘。

三個模型存在工作區底下的資料夾與大小如下:

模型 資料夾 大小
moss_image_sft_int8_convrot.safetensors models\diffusion_models 5.41 GB
qwen3.5_9b_w4a8_gptq.safetensors models\text_encoders 7.34 GB
flux2-vae_small.safetensors models\vae 0.25 GB

模型還沒下載時,fetch_template 會回報範本無法執行,回應的第一句建議更新 ComfyUI,但實際缺的是模型,三個模型下載完就能執行。

修改節點參數並產圖

comfy-mcp 把 workflow 裡可以改的節點參數稱為 slot。Claude Code 先用 list_workflow_slots 列出範本的 slot,再用 set_workflow_slot 改了其中六個,邊界框占兩個,其他參數照範本預設(1024 × 1024、25 步、CFG 2.5):

項目 節點與參數 設定
版面 Prompt 節點 27 的 prompt 描述暗色底、黑色幾何貓頭配紅眼與深紅邊緣光,以及 VerveCode 字標的英文 Prompt
邊界框 節點 25 的 editor_state、last_incoming 貓頭框 x 304、y 128、416 × 416,文字框 x 176、y 608、672 × 160,每個框各有一段描述,貓頭框的色彩調色盤是 #111111 與 #C8102E
角色方框 節點 27 的 character_boxes 範本預設有一個人物框,這次沒有人物,改成空值
種子 節點 18 的 seed 571710880652220
檔名前綴 節點 9 的 filename_prefix vervecode_logo

範本的說明節點提到 Prompt upsampler 可能改寫 Prompt 並丟掉版面。這次沒有動它。從 ComfyUI 的執行紀錄看,送進模型的仍是原本的版面 Prompt,兩個框也照位置畫了出來。

改完後,Claude Code 用 validate_workflow 檢查、run_workflow 執行、job 等待完成,最後用 fetch_outputs 取回圖片,就是本文開頭那張。ComfyUI 也會把圖存在工作區的 output 資料夾,檔名以 vervecode_logo 開頭。同一組設定重跑一次,兩張輸出完全相同。在 RTX 3070 8 GB 上,模型第一次載入時 ComfyUI 記錄的執行時間是 55.53 秒。

用瀏覽器打開 workflow

comfy-mcp 改的是 workflow 檔案,執行時直接送進 ComfyUI 的佇列,不會出現在任何畫面上。想看 Claude Code 做了什麼,請它把這次的 workflow 複製到 ComfyUI\user\default\workflows,例如存成 vervecode-logo.json。接著用瀏覽器打開 http://127.0.0.1:8188,左側「工作流程」面板就會列出它,點開就是 Claude Code 設定好的版本,可以直接調整與執行:

ComfyUI 網頁介面左側的工作流程面板列出 vervecode-logo,右側畫布縮小顯示整份 Layout 範本

Layout 範本的「建立邊界框」節點要在 Nodes 2.0 介面才看得到框的編輯器。新工作區預設沒有開,舊介面只顯示「Bounding Boxes: 僅限 Node 2.0」,要在「設定」的「Comfy」分頁打開「現代節點設計 (Nodes 2.0)」:

ComfyUI 設定的 Comfy 分頁,搜尋 Nodes 2.0 後只剩「現代節點設計 (Nodes 2.0)」的開關,目前是開啟

打開後,編輯器會畫出 Claude Code 設定的兩個框,每個框有自己的描述與色彩調色盤,可以直接拖動與縮放:

建立邊界框節點的編輯器裡有 01 貓頭框與 02 文字框,下方是貓頭框的描述與黑、紅兩色的色彩調色盤

已經開著的畫布不會跟著檔案更新,在面板裡再點一次,看到的仍是舊版。Claude Code 每改一次 workflow,要先關掉畫面上方那個 workflow 的分頁,再從面板打開,或直接重新整理頁面,才看得到新版本。

用 Comfy Desktop 連同一個 server

Comfy Desktop 用「Public Builds」建立的 Instance 會另外安裝一份 ComfyUI,和 Claude Code 連的 comfy-cli 那份不共用 workflow 與輸出。要在 Desktop 看到 Claude Code 改的 workflow,改用「Remote Connection」連上 comfy-cli 啟動的 server,不用再裝一份 ComfyUI,也不用重新下載模型。

在 Desktop 按「New Instance」並切到「Remote Connection」,名稱隨意填,ComfyUI URL 保留預設的 http://localhost:8188,按 Continue:

Comfy Desktop 的 Create a New Instance 畫面,選了 Remote Connection,名稱是 comfy-quick,ComfyUI URL 是 http://localhost:8188

啟動這個 Instance 後,Desktop 開的就是 comfy-cli 啟動的那個 server。左側「工作流程」面板一樣列得出 vervecode-logo,在 Desktop 按執行,工作也會送進同一個 server 的佇列,關掉 Desktop 後 server 照常執行。Claude Code 改過 workflow 後,同樣要關掉分頁再打開,才看得到新版本:

Comfy Desktop 標題列顯示 comfy-quick,工作流程面板列出 vervecode-logo,畫布是同一份 Layout 範本

總結

在 RTX 3070 8 GB 上從零開始,安裝 ComfyUI 約 7 分鐘,Claude Code 下載模型約 6 分鐘,改好 workflow 後第一次產圖 55.53 秒。這次 Claude Code 只從官方範本修改節點參數,沒有從零接出新的 workflow。Prompt 與節點參數都記在 workflow 檔裡,同一組設定重跑會得到相同的圖,之後可以從這份 workflow 繼續改。

接著可以做什麼

下一篇TouchDesigner 雙投影機拼接夾角面:projectorBlend 切畫面,Stoner 與 kantanMapper 校正TouchDesigner
Ted Liou

Ted Liou

Unity 現役工程師,Unity、AI 技術開發經驗分享與諮詢。