ComfyUI

ComfyUI

🚀 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)。
  • 依赖项requestswebsocketsmcp(可通过pip安装)。

安装步骤

  1. 克隆仓库
    git clone 
    cd comfyui-mcp-server
    
  2. 安装依赖项
    pip install requests websockets mcp
    
  3. 启动ComfyUI
    • 安装ComfyUI(参见ComfyUI文档)。
    • 在端口8188上运行它:
      cd 
      python main.py --port 8188
      
  4. 准备工作流程
    • 将API格式的工作流文件(例如basic_api_test.json)放在workflows/目录中。
    • 使用ComfyUI的UI导出工作流程,启用开发模式设置中的“保存(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以更改promptwidthheightworkflow_idmodel。示例如下:

"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)存在于/models/checkpoints/中。
  • MCP SDK没有原生的WebSocket传输;此实现使用自定义实现。
  • 对于自定义工作流程,如果需要,可以调整comfyui_client.py中的DEFAULT_MAPPING节点ID。

贡献

欢迎提交问题或PR以增强灵活性(例如动态节点映射、进度流式处理)。

📄 许可证

本项目采用Apache许可证。

  • 0 关注
  • 0 收藏,11 浏览
  • system 提出于 2025-09-30 18:57

相似服务问题