使用说明
ComfyUI MCP服务器
此存储库包含一个MCP(模型上下文协议)服务器,用于使用ComfyUI API生成图像。它允许您通过LLM界面从文本提示生成图像。
特性
- 使用各种ComfyUI工作流从文本提示生成图像
- 支持多种宽高比(方形、横向、纵向)
- 带有时间戳文件名的自动图像保存
- 基于Web的图像库,用于查看生成的图像
- 跨平台兼容性(Windows、macOS、Linux)
先决条件
- Python 3.8或更高版本
- 启用API的ComfyUI
- 预配置的ComfyUI工作流
安装
-
克隆此存储库:
git clone https://github.com/bgreene2/comfyui-mcp-server.git cd comfyui-mcp-server -
安装服务器所需的依赖项:
pip install -r server_requirements.txt -
如果您计划使用图像托管应用程序,请安装其依赖项:
pip install -r image_host_requirements.txt
设置
1.配置ComfyUI
- 在ComfyUI中,创建和配置所需的图像生成工作流
- 导出您的工作流以供API使用(另存为“工作流API格式”)
- 将导出的JSON文件复制到
workflows/目录 - 创建一个同名的对应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:生成图像的URLCOMFYUI_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
故障排除
- 连接问题:确保ComfyUI正在运行并且API已启用
- 工作流错误:验证YAML配置中的节点ID是否与ComfyUI工作流中的ID匹配
- 权限错误:确保输出目录可写
- 缺少的依赖:运行
pip install -r server_requirements.txt安装所有必需的软件包