🖼️ ComfyUI — 本地运行ComfyUI

v1.0.1

通过 HTTP API 在本地运行 ComfyUI 工作流,支持按文件路径/名称执行或传入原始 JSON,并内置默认工作流。

0· 3.1k·0 当前·0 累计
by @kelvincai522·MIT-0
下载技能包
License
MIT-0
最后更新
2026/2/5
0
安全扫描
VirusTotal
可疑
查看报告
OpenClaw
安全
high confidence
该技能的文件、指令与所需二进制文件均与其声明用途(本地运行 ComfyUI 工作流)一致;未索取无关凭据,安装与风险范围有限且已说明。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.12026/2/5
可疑

安装命令

点击复制
官方npx clawhub@latest install comfyui
🇨🇳 镜像加速npx clawhub@latest install comfyui --registry https://cn.longxiaskill.com

技能文档

概述

使用 API 格式的 JSON 在本地服务器(默认 127.0.0.1:8188)上运行 ComfyUI 工作流,并返回输出图像。

运行前编辑工作流

运行脚本仅接受 --workflow 。在运行之前,你必须检查并编辑工作流 JSON,运用你对 ComfyUI API 格式的最佳了解。不要假设固定的节点 ID、class_type 名称或 _meta.title 值——用户可能已更新默认工作流或提供了自定义工作流。

对于每次运行(包括默认工作流):

  • 读取工作流 JSON(默认:skills/comfyui/assets/default-workflow.json,或用户提供的路径/文件)。
  • 识别与提示相关的节点:通过检查图形来查找包含主要文本提示的节点——例如 PrimitiveStringMultilineCLIPTextEncode(正向文本),或任何具有 _meta.titleclass_type 暗示 "Prompt" / "positive" / "text" 的节点。将相应的输入(例如 inputs.value,或编码器的文本输入)更新为你从用户那里得出的图像提示(主体、风格、光照、质量)。如果用户没有要求自定义图像,你可以保留现有提示或仅在需要时进行调整。
  • 可选识别风格/前缀节点——例如 StringConcatenate,或作为样式的第二个字符串输入。如果用户要求特定风格或清除默认前缀,则设置它们。
  • 可选设置新种子——找到采样器类节点(例如 KSamplerBasicGuider,或任何具有 seed 输入的节点)并将 seed 设置为新的随机整数,以便每次运行可以不同。
  • 将修改后的工作流写入临时文件(例如 skills/comfyui/assets/tmp-workflow.json)。对于任何内联 Python 使用 ~/ComfyUI/venv/bin/python;不要使用裸 python
  • 运行:comfyui_run.py --workflow 。如果工作流结构不清楚或找不到提示/采样器节点,按原样运行文件,只更改你能可靠识别的部分。对于任意用户提供的 JSON 采用相同方法:首先检查,然后在你最佳了解的范围内编辑,然后运行。

运行脚本(单一职责)

~/ComfyUI/venv/bin/python skills/comfyui/scripts/comfyui_run.py \
  --workflow 

该脚本仅将工作流加入队列并轮询直到完成。它打印包含 prompt_id 和输出 images 的 JSON。所有提示/风格/种子的更改都由你预先在 JSON 中完成。

如果服务器无法访问

如果运行脚本失败并出现连接错误(例如连接被拒绝或超时到 127.0.0.1:8188),ComfyUI 可能未安装或未运行。检查: ~/ComfyUI 是否存在并包含 main.py

  • 如果未安装: 安装 ComfyUI(例如克隆仓库、创建 venv、安装依赖项,然后启动服务器)。示例:
git clone https://github.com/comfyanonymous/ComfyUI.git ~/ComfyUI
cd ~/ComfyUI
python3 -m venv venv
~/ComfyUI/venv/bin/pip install -r requirements.txt

然后启动服务器(见下文)。告诉用户根据工作流可能需要将模型权重安装到 ~/ComfyUI/models/ 中。

  • 已安装但未运行: 启动 ComfyUI 服务器,使 API 在端口 8188 上可用。示例:
~/ComfyUI/venv/bin/python ~/ComfyUI/main.py --listen 127.0.0.1

在后台或单独的终端中运行,使其保持运行。然后重试工作流运行。使用 ~(或用户的主目录)以便在其机器上正常工作。

来自 URL 的模型权重

当用户粘贴或发送模型权重 URL 列表(每行一个,或逗号分隔)时,将这些文件下载到 ComfyUI 安装目录,以便工作流以后可以使用它们。

  • 规范化列表——每行一个 URL;剥离空行和注释(以 # 开头的行)。
  • 运行下载脚本,并指定 ComfyUI 基础路径(默认 ~/ComfyUI)。该脚本在可用时使用 pget 进行并行下载;如果 pget 不在 PATH 中,它会自动安装到 ~/.local/bin(无需 sudo)。如果无法安装 pget(例如不支持的 OS/架构),它会回退到内置下载。使用 ComfyUI venv Python 以便脚本正确运行:
~/ComfyUI/venv/bin/python skills/comfyui/scripts/download_weights.py --base ~/ComfyUI

将 URL 作为参数传递,或通过标准输入管道传输文件/列表:

echo "https://example.com/model.safetensors" | ~/ComfyUI/venv/bin/python skills/comfyui/scripts/download_weights.py --base ~/ComfyUI

或将用户的列表保存到临时文件并运行:

~/ComfyUI/venv/bin/python skills/comfyui/scripts/download_weights.py --base ~/ComfyUI < /tmp/weight_urls.txt

要强制使用内置下载(无 pget):添加 --no-pget

  • 子文件夹: 脚本从 URL/文件名推断 ComfyUI 模型子文件夹(例如 vaecliplorascheckpointstext_encoderscontrolnetupscale_models)。用户可以选择每行指定一个子文件夹,格式为 url subfolder(例如 https://.../model.safetensors vae)。你还可以使用 --subfolder loras 传递默认子文件夹,以便该运行中的所有 URL 都进入 models/loras/
  • 现有文件: 默认情况下,脚本会跳过已存在于磁盘上的 URL;使用 --overwrite 替换。
  • 路径: 文件写入 ~/ComfyUI/models// 下。告诉用户每个文件保存到的位置,以及如果需要他们可以在 ComfyUI 服务器(重新)启动后运行工作流。支持在 ComfyUI/models/ 下的子文件夹:checkpointsclipclip_visioncontrolnetdiffusion_modelsembeddingslorastext_encodersunetvaevae_approxupscale_models 等。当自动推断错误时使用 --subfolder

运行后

输出保存在 ComfyUI/output/ 下。使用脚本输出中的 images 列表来定位文件(文件名 + 子文件夹)。

⚠️ 始终将输出发送给用户

成功的 ComfyUI 运行后,你必须将生成的图像发送给用户。不要仅用文本回复文件名或使用 NO_REPLY。

  • 解析脚本输出 JSON 中的 images(每个都有 filenamesubfoldertype)。
  • 构建完整路径:ComfyUI/output/ + 子文件夹 + 文件名(例如 ComfyUI/output/z-image_00007_.png)。
  • 通过用户所在的渠道发送图像(例如使用消息/发送工具并提供图像 path,以便用户收到文件)。如果有帮助,可以包含简短的说明(例如 "给你。" 或 "东京街头场景。")。每次成功的运行都必须导致用户收到图像。永远不要只给他们一个文件名或不发送。
数据来源:ClawHub ↗ · 中文优化:龙虾技能库