🖼️ 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 工作流)一致;未索取无关凭据,安装与风险范围有限且已说明。
评估建议
该技能在本地运行 ComfyUI 方面看似一致,但安装或运行前请审查以下要点: - 文件写入:下载器会将模型文件写入 ~/ComfyUI/models/<子目录>,并可能在 ~/.local/bin 创建 pget 可执行文件(从 GitHub releases 下载)。若执行下载,请仅提供可信模型 URL,并考虑交互式运行下载器以便预览将要获取的内容。 - 可执行文件安装:pget 将下载至主目录并被赋予可执行权限。如希望避免自动安装,可自行安装 pget 或使用 --no-pget 参数运行下载器。 - 本地服务器访问:运行脚本会与 127.0.0.1:8188 上的 ComfyUI 服务器通信,请确保该服务器为可信本地实例。技能除用户明确提供的文件下载外,不会访问外部 API。 - 工作流编辑:代理被指示在运行前修改工作流 JSON(提示词、种子等)。如对内容策略有顾虑,可检查技能资源中的任何临时工作流文件——例如,捆绑的 tmp-workflow 包含明确的性提示。 若您信任上述行为(仅从可信源下载模型权重并允许技能写入 ComfyUI 安装目录),则该技能与其声明用途相符...
详细分析 ▾
用途与能力
名称/描述、运行脚本、下载脚本与工作流资源均与“本地运行 ComfyUI 工作流”一致。所需二进制(python3)及对本地 ComfyUI 安装的引用均符合声明用途。
指令范围
SKILL.md 指示代理读取并编辑工作流 JSON(内置或用户提供),并运行捆绑的运行器与下载器。这需要读写技能资源下的文件并与用户 ~/ComfyUI 安装及其本地 API 交互——符合预期——但用户应注意代理会进行文件系统更改(写入临时工作流 JSON)并可能启动/期望 ComfyUI 服务器。
安装机制
技能仅为指令形式(无全局安装规范),但 download_weights 脚本可从 GitHub releases(https://github.com/replicate/pget/releases/latest/download)自动下载 pget 二进制至 ~/.local/bin,并按用户请求将模型文件写入 ~/ComfyUI/models/&lt;子目录&gt;。使用 GitHub releases 是合理来源,但会下载并写入可执行文件至用户主目录,用户可自行审查。
凭证需求
技能未声明任何环境变量或凭据。脚本仅使用本地路径(~/ComfyUI、~/.local/bin)并在用户明确请求下载模型权重或调用用户提供的远程 URL 时才访问网络。未索取无关机密。
持久化与权限
always:false 且未请求修改其他技能。唯一可能的持久化更改为创建 ~/.local/bin/pget(下载 pget 时)及在用户 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 ↗ · 中文优化:龙虾技能库