README
🚀 ComfyUI MCP服务器
ComfyUI MCP服务器是一个轻量级的基于Python的MCP(模型上下文协议)服务器,它与本地ComfyUI实例接口,可让AI代理通过请求来生成图像,为图像生成工作提供了便捷的途径。
🚀 快速开始
此项目能让AI代理借助MCP协议,通过WebSocket向ComfyUI发送图像生成请求。它具备灵活的工作流程选择,支持动态参数设置,还能返回由ComfyUI提供的图像URL。
✨ 主要特性
- 支持灵活的工作流程选择,例如可选用
basic_api_test.json工作流程。 - 能够设置动态参数,包括
prompt(提示词)、width(宽度)、height(高度)和model(模型)。 - 可返回ComfyUI提供的图像URL。
📦 安装指南
先决条件
- Python 3.10+
- ComfyUI:需安装并在本地运行(例如在
localhost:8188)。 - 依赖项:
requests、websockets、mcp(可通过pip安装)。
安装步骤
- 克隆仓库:
git clone <your-repo-url> cd comfyui-mcp-server - 安装依赖项:
pip install requests websockets mcp - 启动ComfyUI:
- 安装ComfyUI(参见ComfyUI文档)。
- 在端口8188上运行它:
cd <ComfyUI_dir> python main.py --port 8188
- 准备工作流程:
- 将API格式的工作流文件(例如
basic_api_test.json)放在workflows/目录中。 - 使用ComfyUI的UI导出工作流程,启用开发模式设置中的“保存(API格式)”。
- 将API格式的工作流文件(例如
💻 使用示例
基础用法
1. 运行MCP服务器
python server.py
服务器将监听在ws://localhost:9000。
2. 使用测试客户端
python client.py
客户端将发送一个示例请求:“a dog wearing sunglasses”、512x512尺寸和模型sd_xl_base_1.0.safetensors。输出示例如下:
服务器返回响应:
{
"image_url": "http://localhost:8188/view?filename=ComfyUI_00001_.png&subfolder=&type=output"
}
高级用法
自定义请求
可修改client.py中的payload以更改prompt、width、height、workflow_id或model。示例如下:
"params": json.dumps({
"prompt": "a cat in space",
"width": 768,
"height": 768,
"workflow_id": "basic_api_test",
"model": "v1-5-pruned-emaonly.ckpt"
})
📚 详细文档
项目结构
server.py:MCP服务器,带有WebSocket传输和生命周期支持。comfyui_client.py:与ComfyUI的API接口,处理工作流排队。client.py:用于发送MCP请求的测试客户端。workflows/:存储API格式的工作流JSON文件的目录。
注意事项
- 确保选择的模型(例如
v1-5-pruned-emaonly.ckpt)存在于<ComfyUI_dir>/models/checkpoints/中。 - MCP SDK没有原生的WebSocket传输;此实现使用自定义实现。
- 对于自定义工作流程,如果需要,可以调整
comfyui_client.py中的DEFAULT_MAPPING节点ID。
贡献
欢迎提交问题或PR以增强灵活性(例如动态节点映射、进度流式处理)。
📄 许可证
本项目采用Apache许可证。
Scan to contact