ComfyUI技能使用说明
ComfyUI 运行器
概述
使用 API 格式的 JSON 在本地服务器(默认 127.0.0.1:8188)上运行 ComfyUI 工作流,并返回输出图像。
运行前编辑工作流
运行脚本仅接受--workflow <路径>参数。您必须在运行前检查并编辑工作流 JSON,运用您对 ComfyUI API 格式的最佳理解。不要假定固定的节点 ID、class_type名称或_meta.title值——用户可能已经更新了默认工作流或提供了自定义工作流。

对于每次运行(包括默认工作流):
- 读取工作流 JSON(默认路径:
skills/comfyui/assets/default-workflow.json,或用户提供的路径/文件)。 - 通过检查图来识别与提示相关的节点:寻找包含主要文本提示的节点——例如,
PrimitiveStringMultiline,CLIPTextEncode(正向文本),或任何带有_meta.title或class_type属性,且其值表明是“提示”/“正向”/“文本”的节点。将相应的输入(例如inputs.value,或编码器的文本输入)更新为你从用户处推导出的图像提示(主题、风格、光照、质量)。如果用户没有要求自定义图像,你可以保留现有提示,或者仅在需要时进行调整。 - 可选地识别风格/前缀节点——例如
StringConcatenate,或作为风格输入的第二个字符串。如果用户要求特定风格或需要清除默认前缀,则对它们进行设置。 - 可选地设置新种子——找到采样器类节点(例如
KSampler、BasicGuider,或任何带有种子输入)并设置种子为一个新的随机整数,以便每次运行可以不同。 - 将修改后的工作流写入临时文件(例如
skills/comfyui/assets/tmp-workflow.json)。使用~/ComfyUI/venv/bin/python执行任何内联Python代码;不要使用裸python。 - 运行:
comfyui_run.py --workflow <已编辑json文件的路径>。
如果工作流结构不清晰或您无法找到提示/采样器节点,请按原样运行文件,并仅更改您能可靠识别的部分。对于任意用户提供的JSON文件也采用相同方法:先检查,根据您的最佳知识进行编辑,然后运行。
运行脚本(单一职责)
~/ComfyUI/venv/bin/python skills/comfyui/scripts/comfyui_run.py \
--workflow <path-to-workflow.json>
该脚本仅负责将工作流加入队列并轮询直到完成。它打印包含prompt_id和输出images. 所有提示/风格/种子的更改均由您事先在JSON中完成。
如果服务器无法访问
如果运行脚本因连接错误(例如,连接到127.0.0.1:8188被拒绝或超时)而失败,则可能未安装ComfyUI或ComfyUI未运行。
检查:目录~/ComfyUI是否存在且包含main.py文件?
-
如果未安装:请安装ComfyUI(例如,克隆仓库、创建虚拟环境、安装依赖项,然后启动服务器)。示例:
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虚拟环境的Python以确保脚本正确运行:
将URL作为参数传递,或通过标准输入传输文件/列表:~/ComfyUI/venv/bin/python skills/comfyui/scripts/download_weights.py --base ~/ComfyUI
或者将用户的列表保存到临时文件中并运行:echo "https://example.com/model.safetensors" | ~/ComfyUI/venv/bin/python skills/comfyui/scripts/download_weights.py --base ~/ComfyUI
要强制使用内置下载(不使用pget):添加~/ComfyUI/venv/bin/python skills/comfyui/scripts/download_weights.py --base ~/ComfyUI < /tmp/weight_urls.txt--no-pget。 - 子文件夹:脚本会根据URL/文件名推断ComfyUI模型的子文件夹(例如
vae、clip、loras、checkpoints、text_encoders、controlnet、upscale_models)。用户可以按行可选地指定子文件夹,格式为url 子文件夹(例如:https://.../model.safetensors vae). 你也可以通过--subfolder loras来传递一个默认值,这样该次运行中的所有URL都会指向models/loras/目录。 - 现有文件:默认情况下,脚本会跳过磁盘上已存在的URL;使用
--overwrite参数来替换它们。 - 路径:文件会被写入到
~/ComfyUI/models/<子文件夹>/目录下。告诉用户每个文件保存的位置,并说明如果需要,可以在ComfyUI服务器(重新)启动后运行工作流。
支持的子文件夹(位于ComfyUI/models/目录下):checkpoints、clip、clip_vision、controlnet、扩散模型、嵌入、LoRAs、文本编码器、UNet、VAE、VAE近似模型、超分辨率模型及其他。当自动推断错误时,使用--subfolder <名称>。
运行后,
输出保存在ComfyUI/output/目录下。使用脚本输出中的图像列表来定位文件(文件名 + 子文件夹)。
⚠️ 请始终将输出发送给用户
在成功运行ComfyUI后,你必须将生成的图像交付给用户。不要仅以纯文本回复文件名或回复NO_REPLY。
- 解析脚本输出的JSON以获取
图像信息(每张图像包含文件名、子文件夹和类型)。 - 构建完整路径:
ComfyUI/output/+ 子文件夹 + 文件名(例如:ComfyUI/output/z-image_00007_.png)。 - 通过用户所在的渠道将图像发送给用户(例如,使用消息/发送工具并附带图像
路径,以便用户收到文件)。如果有助于理解,可以包含一个简短的说明(例如:“给你。”或“东京街景。”)。
每次成功运行都必须确保用户收到图像。绝不能只提供一个文件名或没有交付物。
资源
脚本/
comfyui_run.py:将一个工作流加入队列,轮询直至完成,打印prompt_id和images。无参数——运行前需编辑JSON。download_weights.py:将模型权重URL下载到~/ComfyUI/models/<子文件夹>/。优先使用pget(如果缺失则安装到~/.local/bin);回退使用内置下载功能。输入:通过参数提供URL,或通过标准输入每行一个。选项:--base、--subfolder、--overwrite,--no-pget. 当未提供子文件夹时,从URL/文件名推断子文件夹。
assets/
default-workflow.json: 默认工作流。复制并编辑(提示词、风格、种子),然后使用编辑后的路径运行;或者直接运行以进行通用执行。


微信扫一扫,打赏作者吧~