文章目錄

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 字樣。

架構
Claude Code 不直接碰 ComfyUI,中間隔著 comfy-mcp 與 comfy-cli。瀏覽器和 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:

啟動 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 填進範本,實際填入的設定整理在下一節。它依序做了這幾件事:
- 呼叫
launch_comfyui在背景啟動 ComfyUI,約 39 秒後127.0.0.1:8188就能連線。關掉 Claude Code 後 server 仍會繼續執行,要停止時,在新的 session 請 Claude Code 呼叫stop_comfyui。 - 用
search_templates與fetch_template取得image_moss_image_t2i_bboxes範本(Layout-Guided Text to Image,以下稱 Layout 範本),這個範本可以用邊界框(Bounding Box)指定 logo 與文字的位置。 - 用
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 設定好的版本,可以直接調整與執行:

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

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

已經開著的畫布不會跟著檔案更新,在面板裡再點一次,看到的仍是舊版。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:

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

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