ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

WorkBuddy 连接本地 ComfyUI:从零到出图的保姆级教程(TaoToken 统一 Key 版)

WorkBuddy 连接本地 ComfyUI:从零到出图的保姆级教程(TaoToken 统一 Key 版) 1. 为什么要在本地跑 WorkBuddy ComfyUI 这条链路WorkBuddy 连接本地 ComfyUI 这件事本质上是把「自然语言描述」直接翻译成「一张真实存在的图片文件」。你对着 WorkBuddy 说一句“画一只戴宇航头盔的橘猫漂浮在太空里”它通过 MCP 协议把这句话拆成 ComfyUI 能读懂的工作流 JSON提交给本机 8188 端口的 ComfyUI 服务最后在 output 目录里落下一张 PNG。整个过程不需要你把图片上传到任何云端也不需要为每次生成单独付费。这套方案适合三类人一是本地已经有显卡、装好了 ComfyUI 但懒得每次手动搭节点的人二是希望把模型调用凭证统一管理、不想在多个工具里反复填 Key 的人三是想用自然语言驱动出图、把精力放在提示词而不是连线上的创作者。核心检索词就是 WorkBuddy、ComfyUI、MCP、本地部署这四个本文围绕它们把链路走通。我试过纯手动在 ComfyUI 界面里拖节点也试过让 AI 助手直接调 API最后发现 MCP 这条路的平衡点最好AI 负责理解意图和拼工作流ComfyUI 负责真正的推理两边通过一个独立的 Node.js 进程通信互不侵入。下面从环境准备讲到首次出图每一步都有可复制的命令和配置。2. TaoToken 统一 Key 与 API 通道的前置准备在讲 MCP 配置之前先把「凭证从哪来」这件事理清楚。WorkBuddy 这类 AI 助手在调用模型时需要一个 API 通道而 ComfyUI 本地推理本身不消耗外部额度。真正需要统一管理的是 WorkBuddy 侧调用大模型理解你意图时用的 Key。TaoToken 在这里扮演的角色是统一凭证入口你在一处生成 KeyWorkBuddy、Coding Plan、以及后续可能接入的其他工具都复用同一个通道不用每个工具单独申请。访问官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注册后进入控制台创建 API Key。控制台地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite Key 管理页在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。生成后你会拿到一串以特定前缀开头的密钥把它存到环境变量里不要硬编码进任何会提交到 Git 的文件。API 基础地址统一用 https://taotoken.net/api 注意这个地址不带任何查询参数是纯净的接口根路径。WorkBuddy 在配置模型通道时Base URL 填这个Key 填你刚生成的Model ID 按你实际要用的模型名填。这三件套Base URL Key Model ID是后面所有配置的基础缺一不可。如果你后续要用 Coding Plan 做长期编码或 Agent 任务入口在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。模型对话验证入口在 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentchatutm_campaignrewrite 接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。Claude Code 相关配置参考 https://taotoken.net/claude-code?utm_sourcetaotoken_aicg_blog_endutm_contentclaudecodeutm_campaignrewrite 。把 Key 写进系统环境变量的方式Windows 下用 setxmacOS/Linux 下写进 shell 配置文件# Windows CMD永久写入用户环境变量 setx TAOTOKEN_API_KEY 你的Key # macOS / Linux写入 ~/.zshrc 或 ~/.bashrc export TAOTOKEN_API_KEY你的Key验证环境变量是否生效# Windows echo %TAOTOKEN_API_KEY% # macOS / Linux echo $TAOTOKEN_API_KEY这一步做完WorkBuddy 侧调用模型时就能读到统一 Key后面 MCP 配置里只需要引用这个变量名不用把明文 Key 写进 mcp.json。这是凭证管理的第一层隔离。3. 可复制的 MCP 配置mcp.json 与 ComfyUI 启动参数这一节是整篇的核心所有片段都可以直接复制。先确认你的 ComfyUI 能正常启动。进入 ComfyUI 目录激活虚拟环境用你自己的启动参数跑起来cd H:\PythonProjects3\Win_ComfyUI .venv\Scripts\activate python main.py --enable-manager --enable-assets --enable-triton-backend --async-offload --use-flash-attention --enable-dynamic-vram看到To see the GUI go to: http://127.0.0.1:8188就说明 ComfyUI 就绪。这个终端窗口不要关关了 ComfyUI 就停了。MCP 服务不关心你传了什么启动参数它只通过 REST API 和 8188 端口通信只要 ComfyUI 跑起来就行。接着开第二个终端启动 MCP 服务器npx -y comfyui-mcp --http --port 9100首次运行 npx 会自动下载 comfyui-mcp 包大约 1 到 2 分钟。下载完成后看到这两行就成功了[comfyui-mcp] Found ComfyUI on port 8188 [INFO] ComfyUI MCP server running on http://127.0.0.1:9100/mcp如果你的 ComfyUI 不在默认端口用环境变量指定set COMFYUI_URLhttp://127.0.0.1:8188 npx -y comfyui-mcp --http --port 9100想加一层访问令牌防止局域网内其他设备调用set COMFYUI_MCP_HTTP_TOKENyour_secret_token npx -y comfyui-mcp --http --port 9100现在配置 WorkBuddy 的 mcp.json。文件位置在C:\Users\你的用户名\.workbuddy\mcp.json即~/.workbuddy/mcp.json。最简配置如下{ mcpServers: { comfyui-local: { url: http://127.0.0.1:9100/mcp, disabled: false } } }如果你同时保留了 Comfy Cloud MCP两个都写进去{ mcpServers: { comfy: { url: https://cloud.comfy.org/mcp, headers: { X-API-Key: comfyui-你的API密钥 }, disabled: false }, comfyui-local: { url: http://127.0.0.1:9100/mcp, disabled: false } } }如果你给 MCP 服务器设了访问令牌headers 里补上{ mcpServers: { comfyui-local: { url: http://127.0.0.1:9100/mcp, headers: { X-API-Key: your_secret_token }, disabled: false } } }字段说明url是 MCP 服务器的 HTTP 端点本地固定为http://127.0.0.1:9100/mcpdisabled为 false 表示启用true 表示禁用headers可选只有设了 Token 才需要。绑定 127.0.0.1 意味着只有本机能访问局域网内其他设备无法连接这是默认的安全状态。保存 mcp.json 后回到 WorkBuddy点击右上角的连接器图标进入管理页面找到comfyui-local状态应该是「未信任」或「待确认」。点击「信任」按钮WorkBuddy 会连接 MCP 服务器并加载所有工具。信任成功后你会看到类似comfyui-local: 113/113 个工具已可用的提示。工具数量超过 80 个时 WorkBuddy 会警告可能影响 AI 回复质量如果后续发现调用质量下降可以暂时禁用 comfyCloud 版只保留 comfyui-local。4. 验证请求与首次出图从 system_stats 到 PNG 落盘配置完成后先做最小验证。在 WorkBuddy 对话框里说帮我查看本地 ComfyUI 的系统状态WorkBuddy 应该会调用mcp__comfyui-local__get_system_stats工具返回 GPU 信息、显存状态等。如果工具索引还没刷新直接用 curl 验证# 检查 ComfyUI 是否在线 curl -sS http://127.0.0.1:8188/system_stats # 检查 MCP 服务器是否在线 curl -sS -o /dev/null -w HTTP %{http_code} http://127.0.0.1:9100/mcp # 列出可用的 checkpoint 模型 curl -sS http://127.0.0.1:8188/object_info/CheckpointLoaderSimple检查端口占用netstat -ano | findstr :9100看到LISTENING状态说明 MCP 服务器在正常运行。接下来是首次出图。我用的是一个 7 节点的 txt2img 工作流提交到http://127.0.0.1:8188/prompt。工作流 JSON 如下可以直接复用{ 3: { class_type: KSampler, inputs: { seed: 456, steps: 20, cfg: 7.5, sampler_name: dpmpp_2m, scheduler: karras, denoise: 1.0, model: [4, 0], positive: [6, 0], negative: [7, 0], latent_image: [5, 0] } }, 4: { class_type: CheckpointLoaderSimple, inputs: { ckpt_name: sd_xl_base_1.0.safetensors } }, 5: { class_type: EmptyLatentImage, inputs: { width: 1024, height: 1024, batch_size: 1 } }, 6: { class_type: CLIPTextEncode, inputs: { text: masterpiece, best quality, a red vintage sports car parked on a coastal highway at sunset, ocean waves in background, golden hour lighting, cinematic, highly detailed, 8k uhd, clip: [4, 1] } }, 7: { class_type: CLIPTextEncode, inputs: { text: low quality, blurry, deformed, ugly, watermark, text, bad anatomy, worst quality, jpeg artifacts, clip: [4, 1] } }, 8: { class_type: VAEDecode, inputs: { samples: [3, 0], vae: [4, 2] } }, 9: { class_type: SaveImage, inputs: { images: [8, 0], filename_prefix: workbuddy_mcp_test } } }用 Python 提交这个工作流import json, urllib.request workflow { ... } # 上面的 JSON data json.dumps({prompt: workflow}).encode(utf-8) req urllib.request.Request( http://127.0.0.1:8188/prompt, datadata, headers{Content-Type: application/json} ) resp json.loads(urllib.request.urlopen(req, timeout30).read()) prompt_id resp[prompt_id] print(fWorkflow submitted! prompt_id: {prompt_id})提交后 ComfyUI 日志会显示Prompt executed in ~25 seconds文件保存在output/workbuddy_mcp_test3_sdxl_base_00001_.png。我实测下来标准 SDXL Base 模型配 dpmpp_2m karras CFG 7.5 20 步25 秒左右出一张 1024x1024 的图基本贴合汽车和黄昏主题。这里有个关键对比值得说。我一开始用的是 SDXL Lightning 4-step 蒸馏模型参数是 dpmpp_2m_sde karras CFG 1.5 4 步结果出来是白图。改成 euler normal CFG 1.0 后不再白图但输出了维多利亚式房屋完全偏离「海边跑车」的提示词。换成标准 SDXL Base 才成功。蒸馏模型Lightning/Turbo/LCM对采样器和 CFG 极其敏感适合快速预览不适合精确跟随提示词。给 WorkBuddy 调用本地 ComfyUI 生成时优先选稳定非蒸馏模型。5. 本篇常见报错排查401、端口占用与工具索引这一节按真实报错来。第一个高频问题是EADDRINUSE: address already in use 127.0.0.1:9100原因是 9100 端口被占用通常是上一个 MCP 服务器实例还在跑。解决# 查看占用 9100 端口的进程 netstat -ano | findstr :9100 # 找到 LISTENING 行的 PID如 106208 # 杀掉该进程 taskkill /PID 106208 /F # 重新启动 npx -y comfyui-mcp --http --port 9100或者换端口npx -y comfyui-mcp --http --port 9101同时把 mcp.json 里的 URL 改成http://127.0.0.1:9101/mcp。第二个问题日志显示Found ComfyUI on port 8188但随后报错退出。原因是 ComfyUI 没有正常运行或者端口不是 8188。先确认curl -sS http://127.0.0.1:8188/system_stats如果 ComfyUI 用了别的端口set COMFYUI_URLhttp://127.0.0.1:8888 npx -y comfyui-mcp --http --port 9100第三个问题WorkBuddy 中 ToolSearch 找不到 comfyui-local 工具。原因是重启 MCP 服务器后WorkBuddy 的工具索引需要刷新。去连接器管理页面把 comfyui-local 开关关掉等几秒再打开。如果还不行重启 WorkBuddy。第四个问题出图是白图或噪声。原因是模型参数不匹配尤其是蒸馏模型。对照表如下模型类型正确参数SDXL Lightning 4-stepeuler normal CFG 1.0 4 步SDXL Lightning 8-stepeuler normal CFG 1.5 8 步SDXL Turboeuler_ancestral normal CFG 0.5 1-4 步SDXL Base标准dpmpp_2m karras CFG 7.5 20-30 步SD 1.5标准dpmpp_2m karras CFG 7.0 20-30 步第五个问题ComfyUI 日志显示Cannot connect to comfyregistry。这是 ComfyUI-Manager 启动时尝试连接官方注册表服务器网络不通导致的。不影响本地生成只是 Manager 的在线功能搜索/安装插件不可用忽略即可。第六个问题npx 首次运行很慢。首次需要从 npm 下载 comfyui-mcp 包耐心等 1 到 2 分钟。后续启动会用缓存几秒内完成。如果太慢可以设镜像npm config set registry https://registry.npmmirror.com npx -y comfyui-mcp --http --port 9100第七个问题WorkBuddy 提示工具太多影响回复质量。comfyui-local113 工具加 comfyCloud36 工具等于 149 个超过 80 个的建议上限。禁用其中一个{ mcpServers: { comfy: { url: https://cloud.comfy.org/mcp, disabled: true }, comfyui-local: { url: http://127.0.0.1:9100/mcp, disabled: false } } }第八个问题关闭终端窗口后 MCP 服务器就停了。MCP 服务器是前台进程终端关闭等于进程终止。解决办法是写一个一键启动脚本同时拉起 ComfyUI 和 MCP 两个进程echo off REM start_comfy_with_mcp.bat - 同时启动 ComfyUI 和 MCP 服务器 setlocal set COMFYUI_DIRH:\PythonProjects3\Win_ComfyUI set PYTHON%COMFYUI_DIR%\.venv\Scripts\python.exe echo [1/2] Starting ComfyUI... start ComfyUI cmd /k cd /d %COMFYUI_DIR% %PYTHON% main.py --enable-manager --enable-assets --enable-triton-backend --async-offload --use-flash-attention --enable-dynamic-vram echo [2/2] Starting MCP Server (waiting 10s for ComfyUI to boot)... timeout /t 10 /nobreak nul start ComfyUI-MCP cmd /k cd /d %COMFYUI_DIR% npx -y comfyui-mcp --http --port 9100 echo Both processes started in separate windows. echo - ComfyUI: http://127.0.0.1:8188 echo - MCP Server: http://127.0.0.1:9100/mcp pause endlocal双击这个 bat 文件会弹出两个终端窗口一个跑 ComfyUI一个跑 MCP 服务器关闭两个窗口即停止所有服务。关于安全边界MCP 工具按风险分级get_system_stats、get_queue、list_local_models、view_image是纯只读放心用download_model、add_extra_path、clear_vram、cancel_job可控但影响显存知情即可install_custom_node、stop_comfyui、restart_comfyui、download_civitai_model可能改变环境不要随意让 Agent 执行。不要给 CivitAI API Token不要对 Agent 说“帮我装插件”Agent 可能直接 git clone 加 pip install绕过你的手动安装准则。需要装插件时按自己的步骤手动操作MCP 工具只用于生成和管理。6. 把统一 Key 通道用起来模型对话验证与长期编码入口链路跑通之后回到凭证管理这条线。WorkBuddy 通过 MCP 驱动本地 ComfyUI 出图这条链路本身不消耗外部额度但 WorkBuddy 理解你意图、拆解工作流、决定调用哪个工具这些动作背后是模型调用走的是 TaoToken 的统一 Key 通道。你可以在模型对话入口 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentchatutm_campaignrewrite 先验证 Key 是否可用发一条简单消息看是否正常返回。如果你打算把这条链路长期用下去比如每天用自然语言批量出图、或者让 Agent 自动迭代提示词Coding Plan 入口在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 适合长期编码和 Agent 任务。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 里面有完整的 Base URL、Key、Model ID 三件套配置说明。API Key 管理页在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 需要轮换或新增 Key 时在这里操作。关键文件与路径速查文件/路径说明C:\Users\用户名\.workbuddy\mcp.jsonWorkBuddy MCP 配置文件H:\PythonProjects3\Win_ComfyUI\main.pyComfyUI 启动入口H:\PythonProjects3\Win_ComfyUI\.venv\Python 虚拟环境H:\PythonProjects3\Win_ComfyUI\output\生成图片输出目录http://127.0.0.1:8188ComfyUI Web 界面http://127.0.0.1:8188/promptComfyUI 工作流提交 APIhttp://127.0.0.1:9100/mcpMCP 服务器端点常用命令速查# 启动 ComfyUI cd H:\PythonProjects3\Win_ComfyUI .venv\Scripts\activate python main.py --enable-manager --enable-assets --enable-triton-backend --async-offload --use-flash-attention --enable-dynamic-vram # 启动 MCP 服务器 npx -y comfyui-mcp --http --port 9100 # 检查 ComfyUI 是否在线 curl -sS http://127.0.0.1:8188/system_stats # 检查端口占用 netstat -ano | findstr :9100 # 杀掉占用端口的进程 taskkill /PID PID号 /F # 列出可用 checkpoint 模型 curl -sS http://127.0.0.1:8188/object_info/CheckpointLoaderSimple # 列出可用采样器 curl -sS http://127.0.0.1:8188/object_info/KSampler最后说一个实际经验本地 ComfyUI 跑图时显存会吃满RTX 3090 24GB 跑 SDXL 没问题但同时开其他 GPU 任务会卡。深夜挂机批量跑是个好选择。output 目录会累积大量图片定期归档或删除。MCP 服务器是纯外部 API 消费者不修改 ComfyUI 任何文件两个终端窗口分别运行 ComfyUI 和 MCP 服务器互不侵入。蒸馏模型参数敏感建议用标准模型测试。不要让 Agent 通过 MCP 工具安装插件遵守手动安装准则。
返回列表