# ComfyUI_Skills_OpenClaw
**Repository Path**: xiaodingding/ComfyUI_Skills_OpenClaw
## Basic Information
- **Project Name**: ComfyUI_Skills_OpenClaw
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-03-13
- **Last Updated**: 2026-03-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ComfyUI Skills for OpenClaw

这是一个面向 OpenClaw 的 ComfyUI Skill 集成层:支持调用你在 ComfyUI 中自行编排并导出(API格式)的 Workflow,将其封装为可被 OpenClaw 通过自然语言触发的 Skills。
它会把自然语言请求转成结构化的 Skill 参数,映射到 ComfyUI 工作流输入后提交执行,等待任务完成并将生成图片下载到本地。
---
## 这个 Skill 能做什么
- 把你已经在 ComfyUI 里做好的工作流,整理成 OpenClaw 可以直接调用的技能
- 让 OpenClaw 去调用部署在不同 ComfyUI 服务器上的工作流,而不是只绑定在一台机器上
- 把工作流里需要填写的参数整理出来,方便 OpenClaw 更稳定地理解和复用
- 工作流上传一次后,就可以在 UI 里持续管理,而不是每次都重新手动整理
- 提交任务、等待完成、拉回生成结果,这条链路可以直接复用到日常使用里
---
## 安装
ComfyUI Skills for OpenClaw
手动安装:
```bash
cd ~/.openclaw/workspace/skills
git clone https://github.com/HuangYuChuh/ComfyUI_Skills_OpenClaw.git comfyui-skill-openclaw
cd comfyui-skill-openclaw
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r requirements.txt
cp config.example.json config.json
```
如果你在 macOS 上执行 `pip install` 或 `python3 -m pip install` 时遇到 `externally-managed-environment`,说明当前 Python 环境由 Homebrew 或系统管理,不能直接往全局环境安装依赖。此时请直接使用上面的虚拟环境安装方式。
让 OpenClaw 帮你安装:
把下面这段话发给 OpenClaw 即可:
```text
请帮我把这个 ComfyUI skill 安装到我的 OpenClaw workspace 里。
目标路径:
~/.openclaw/workspace/skills/comfyui-skill-openclaw/
要求:
1. 先执行 `cd ~/.openclaw/workspace/skills`。
2. 将这个仓库克隆为 `comfyui-skill-openclaw` 目录。
3. 保留根目录下的 SKILL.md。
4. 安装 requirements.txt 里的 Python 依赖。
5. 执行 `cp config.example.json config.json`。
6. 如果我没有额外指定,就默认把 ComfyUI 地址设置为 http://127.0.0.1:8188。
7. 安装完成后,确保 OpenClaw 可以发现并调用这个 skill。
```
## 如何配置 ComfyUI 工作流
开始配置前,请先确保 ComfyUI 服务已经运行,本地 ComfyUI 默认地址是 `http://127.0.0.1:8188`。
### I. 通过 UI 配置(推荐)
- macOS/Linux:`./ui/run_ui.sh`,或双击 `ui/run_ui.command`
- Windows:`ui\run_ui.bat`
- 访问:`http://localhost:18189`
- 上传从 ComfyUI 导出的工作流 JSON,格式必须是 **Save (API Format)**
- 在 UI 中添加第一个 ComfyUI 服务器
- 选择要暴露给 OpenClaw 的参数并保存映射
### II. 通过配置文件配置
#### 1)编辑 `config.json`
先配置服务器信息。最小示例如下:
```jsonc
{
"servers": [
{
"id": "local", // 服务器 ID,后面会作为目录名和工作流调用前缀
"name": "Local", // 服务器显示名称
"url": "http://127.0.0.1:8188", // ComfyUI 服务地址
"enabled": true, // 是否启用这个服务器
"output_dir": "./outputs" // 图片输出目录
}
],
"default_server": "local" // 默认服务器 ID
}
```
#### 2)放置工作流文件
每个工作流使用一个独立目录,例如:
```bash
data/local/Default/
workflow.json # 从 ComfyUI 导出的 API 格式工作流
schema.json # 对外暴露给 OpenClaw/Agent 的参数映射
```
#### 3)编写 `schema.json`
`schema.json` 至少需要包含:
- `description`
- `enabled`
- `parameters`
最小示例如下:
```jsonc
{
"description": "默认测试工作流", // 给 OpenClaw/Agent 看的工作流说明
"enabled": true, // 是否启用这个工作流
"parameters": {
"prompt": { // 暴露给 OpenClaw/Agent 的参数名
"node_id": 10, // workflow.json 里的节点 ID
"field": "prompt", // 该节点 inputs 里的字段名
"required": true, // 是否必填
"type": "string", // 参数类型
"description": "提示词" // 参数说明
},
"seed": {
"node_id": 10,
"field": "seed",
"required": false,
"type": "int",
"description": "随机种子"
}
}
}
```
说明:
- 工作流 ID 直接由目录名决定;例如目录是 `data/local/Default/`,工作流 ID 就是 `Default`
- `parameters` 里的每个字段,表示一个要暴露给 OpenClaw/Agent 的输入参数
- `node_id` 和 `field` 需要对应到 `workflow.json` 里实际的节点和输入字段
如果你想看完整示例,可以直接参考仓库里的现成文件:
- `data/local/Default/workflow.json`
- `data/local/Default/schema.json`
- 这两个文件是通用示例;运行前请先把 `workflow.json` 里节点 `4` 的 `ckpt_name` 改成你本地 ComfyUI 可用的 checkpoint 名称
#### 4)验证配置是否成功
查看工作流列表:
```bash
python scripts/registry.py list
```
执行一次测试生图:
```bash
python scripts/comfyui_client.py \
--workflow / \
--args '{"prompt":"test"}'
```
例如:
```bash
python scripts/comfyui_client.py \
--workflow local/Default \
--args '{"prompt":"一张高质感产品摄影图"}'
```
成功后会返回类似:
```json
{
"status": "success",
"prompt_id": "...",
"images": ["./outputs/_...png"]
}
```
### III. 通过 OpenClaw/Agent 帮你配置
- 让 OpenClaw 或其他 Agent 帮你编辑 `config.json`
- 让 Agent 将 workflow JSON 和 schema JSON 写入对应目录
- 写入完成后,再让 Agent 帮你执行一次验证
### 工作流要求(重要)
**API 格式工作流 + Save Image 输出节点** 是稳定可用的基础要求。为了稳定执行,请确保:
1. **工作流必须导出为 ComfyUI API 格式**
- 在 ComfyUI 中点击 **Save (API Format)**
- 将导出的 JSON 放到 `data///workflow.json`
2. **工作流末端必须包含 `Save Image` 节点**
- 当前客户端是从 ComfyUI 的输出图像中下载结果
- 如果没有 `Save Image`(或等价的图像输出),可能会“执行成功但拿不到图片”
---
## 多服务器管理
可以配置多个不同的 ComfyUI 服务器,方便 OpenClaw/Agent 将生图任务分发到不同算力节点(例如本机 GPU、远程实例等)。
### 核心概念
- **双层控制开关**:`服务器` 和 `独立工作流` 均有各自的开启/关闭状态。OpenClaw 只能发现**两者均开启**的工作流。
- **命名空间组合**:OpenClaw 识别工作流的唯一标识为 `/` 的复合格式(例如:`local/test` 与 `remote/test`)。
### 命令行工具配置
在无 GUI 的 Linux 机器部署时,可使用内置的 CLI 工具(`scripts/server_manager.py`)进行管理:
```bash
python scripts/server_manager.py list
python scripts/server_manager.py add --id remote --name "Remote Node" --url http://10.0.0.1:8188
python scripts/server_manager.py disable remote
```
*所有服务器配置依然可以通过前端 Web UI 界面来进行图形化无缝管理。*
### 配置迁移(导出 / 导入)
如果你更换了部署路径,或者想把当前 Skill 的工作流映射迁移到另一台机器,可以直接使用内置的 bundle 机制。
UI 方式:
- 在主界面点击 `导出配置`,浏览器会下载一个 `openclaw-skill-export.json`
- 导出前可以按服务器展开,并取消勾选不想导出的 workflow;默认全部选中,服务器默认折叠
- 在目标机器打开 UI,点击 `导入配置`
- 选择刚才导出的 JSON 文件
- 系统会先显示预检结果,再确认是否同时应用源机器的默认服务器、URL 和输出目录
CLI 方式:
```bash
python scripts/transfer_manager.py export --output ./openclaw-skill-export.json
python scripts/transfer_manager.py import --input ./openclaw-skill-export.json --dry-run
python scripts/transfer_manager.py import --input ./openclaw-skill-export.json
```
可选参数:
- `--apply-environment`:导入时同时应用 bundle 中的环境配置
- `--no-overwrite`:导入时如果工作流已存在,则跳过而不是覆盖
默认导入策略:
- 同名工作流默认覆盖
- 已存在服务器会做合并导入
- 默认保留目标机器当前的 `url`、`output_dir` 和 `default_server`
---
## 常见问题
- `/prompt` 返回 HTTP 400:通常是工作流 payload 或参数值不合法。
- `size` 值必须符合目标节点支持的枚举(例如 `3:4,1728x2304`)。
- `config.json` 里的 ComfyUI 地址错误会导致无法提交任务。
---
## Roadmap
- [ ] 支持工作流版本历史和回滚
- [x] 上传新版本前先预览参数变化
- [x] 工作流升级时支持参数迁移
- [ ] 增强提交前参数校验
- [ ] 更清晰展示 ComfyUI 返回的节点错误
- [ ] 支持批量多 seed 生成
---
## 项目结构
```text
ComfyUI_Skills_OpenClaw/
├── SKILL.md # Agent 指令规范(如何调用 registry/client)
├── README.md
├── README.zh.md
├── LICENSE
├── .gitignore
├── requirements.txt # Python 依赖(FastAPI、requests 等)
├── config.example.json # 配置示例
├── config.json # 本地实际配置(默认 gitignore)
├── asset/
│ └── banner-ui-20250309.jpg
├── data/
│ ├── /
│ │ └── /
│ │ ├── workflow.json # ComfyUI API 格式工作流
│ │ └── schema.json # 对外参数映射
├── scripts/
│ ├── server_manager.py # 管理多服务器配置的 CLI 工具
│ ├── registry.py # 列出可用工作流及参数
│ ├── comfyui_client.py # 注入参数、提交任务、轮询完成、下载图片
│ └── shared/ # 跨脚本共用的配置与 JSON 工具
│ ├── config.py
│ ├── json_utils.py
│ └── runtime_config.py
├── ui/
│ ├── app.py # FastAPI 路由层
│ ├── open_ui.py # 供 Agent 调用的 UI 启动入口
│ ├── services.py # 业务逻辑(工作流增删改查)
│ ├── models.py # Pydantic 请求/响应模型
│ ├── json_store.py # JSON 文件读写封装
│ ├── settings.py # 应用级配置
│ ├── run_ui.sh # 启动脚本(macOS/Linux)
│ ├── run_ui.command # macOS 双击启动
│ ├── run_ui.bat # Windows 启动
│ └── static/ # 模块化 ES6 前端(HTML/CSS/JS)
└── outputs/
└── .gitkeep
```
---
项目关键词与资料
## 项目关键词
本仓库围绕以下检索意图进行内容组织:
- OpenClaw
- ComfyUI
- ComfyUI Skills
- ComfyUI 工作流自动化
- OpenClaw + ComfyUI 集成
- AI 生图技能(Image Generation Skill)
- 小龙虾(项目昵称,Xiao Long Xia / small crawfish)
用于项目理解与检索的核心文件:
- `README.md`(英文说明)
- `README.zh.md`(中文说明)
- `SKILL.md`(Agent 调用规范)
- `docs/llms.txt` 与 `docs/llms-full.txt`(面向 LLM 的摘要文件)
---
## 项目资料
- 项目摘要:`docs/llms.txt`
- 项目扩展上下文:`docs/llms-full.txt`
- 项目传播清单:`docs/PROJECT_DISCOVERY_CHECKLIST.md`