图像生成服务器

一个基于ComfyUI API的图像生成服务器,支持通过文本提示生成多种比例的图像,并提供自动保存和网页图库功能。

  • by bgreene2
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 bgreene2/comfyui-mcp-server

使用说明

ComfyUI MCP服务器

此存储库包含一个MCP(模型上下文协议)服务器,用于使用ComfyUI API生成图像。它允许您通过LLM界面从文本提示生成图像。

特性

  • 使用各种ComfyUI工作流从文本提示生成图像
  • 支持多种宽高比(方形、横向、纵向)
  • 带有时间戳文件名的自动图像保存
  • 基于Web的图像库,用于查看生成的图像
  • 跨平台兼容性(Windows、macOS、Linux)

先决条件

  • Python 3.8或更高版本
  • 启用API的ComfyUI
  • 预配置的ComfyUI工作流

安装

  1. 克隆此存储库:

    git clone https://github.com/bgreene2/comfyui-mcp-server.git
    cd comfyui-mcp-server
    
  2. 安装服务器所需的依赖项:

    pip install -r server_requirements.txt
    
  3. 如果您计划使用图像托管应用程序,请安装其依赖项:

    pip install -r image_host_requirements.txt
    

设置

1.配置ComfyUI

  1. 在ComfyUI中,创建和配置所需的图像生成工作流
  2. 导出您的工作流以供API使用(另存为“工作流API格式”)
  3. 将导出的JSON文件复制到 workflows/ 目录
  4. 创建一个同名的对应YAML配置文件(但 .yaml 扩展)

2.创建工作流配置

在中创建一个YAML文件 workflows/ 与您的工作流JSON文件同名的目录。此文件应包含:

aspect_ratios:
  "16:9": [1280, 720]   # widest
  "4:3": [1152, 864]    # wide
  "1:1": [1024, 1024]   # square
  "3:4": [864, 1152]    # tall
  "9:16": [720, 1280]   # tallest
save_image_node: '9'          # ID of the Save Image node
image_size_nodes: ['27']      # List of node IDs for width/height settings
seed_nodes: ['31']            # List of node IDs for seed settings
prompt_nodes: ['45']          # List of node IDs for prompt settings

更新节点ID以匹配ComfyUI工作流中的节点ID。

3.配置纵横比(可选)

您可以在YAML配置文件中为每个纵横比自定义图像尺寸。如果未指定,将使用以下默认值:

  • 16:9(最宽): 1280×720
  • 4:3(宽): 1152×864
  • 1:1(正方形): 1024×1024
  • 3:4(高): 864×1152
  • 9:16(最高): 720×1280

用法

启动MCP服务器

创建一个 .env 文件基于 env.example 并设置所需的环境变量:

cp env.example .env
# Edit .env to match your setup

如果需要指定自定义工作目录(工作流文件所在的位置),请取消注释并修改 WORKING_DIR 线在你的 .env 文件。

然后运行服务器:

python /path/to/server.py

环境变量:

  • COMFYUI_HOST:ComfyUI API的主机名或IP地址(例如。, 127.0.0.1)
  • COMFYUI_PORT:ComfyUI API的端口号(例如。, 8188)
  • OUTPUT_DIR:保存生成图像的目录
  • IMAGE_APP_BASE_URL:生成图像的URL
  • COMFYUI_WORKFLOW_NAME:ComfyUI工作流的名称(不带扩展名)
  • WORKING_DIR:(可选)服务器所在的目录(“server.py”和“flows/”的父目录)。默认为当前工作目录。

除以下以外的所有环境变量 WORKING_DIR 是必需的,必须设置。

启动图像托管应用程序(可选)

图像托管应用程序提供了一个基于网络的图库,用于查看生成的图像:

python image_host.py --output-dir /path/to/output

画廊将在 http://0.0.0.0:8081.

MCP配置示例

创建一个 .env 文件并设置所需的环境变量,然后使用此配置:

{
  "mcpServers": {
    "image-generation": {
      "command": "python",
      "args": [
        "/path/to/server.py"
      ]
    }
  }
}

使用图像生成工具

服务器运行后,您可以使用 image_generate 工具具有以下参数:

  • prompt:图像生成的文本提示
  • title:为图像命名的简短名称(2-4个单词)
  • aspect_ratio:支持的值:
    • "widest" (16:9)
    • "wide" (4:3)
    • "square" (1:1)
    • "tall" (3:4)
    • "tallest" (9:16)

示例工具调用:

{
  "tool": "image_generate",
  "params": {
    "prompt": "A beautiful sunset over the mountains",
    "title": "Mountain Sunset",
    "aspect_ratio": "wide"
  }
}

文件结构

comfyui-mcp-server/
├── server.py                 # Main MCP server implementation
├── image_host.py             # Image gallery web app
├── server_requirements.txt   # Dependencies for server.py
├── image_host_requirements.txt # Dependencies for image_host.py
├── workflows/                # Workflow configurations
│   ├── *.json               # ComfyUI workflow files
│   └── *.yaml               # Workflow configuration files
└── README.md

故障排除

  1. 连接问题:确保ComfyUI正在运行并且API已启用
  2. 工作流错误:验证YAML配置中的节点ID是否与ComfyUI工作流中的ID匹配
  3. 权限错误:确保输出目录可写
  4. 缺少的依赖:运行 pip install -r server_requirements.txt 安装所有必需的软件包