关于 Comfy MCP Server
Comfy MCP Server 是一个基于 FastMCP 框架的 MCP 服务,可根据提示词,通过远程 Comfy 服务器生成图像。它适合希望在 AI 客户端中直接调用 ComfyUI 工作流的用户,并可选接入 Ollama 生成提示词。
主要功能
- 01根据提示词生成图像
- 02通过远程 Comfy 服务器提交与轮询任务
- 03可导出 ComfyUI 工作流作为模板
- 04支持 URL 或文件两种输出方式
- 05可选通过 Ollama 生成图像提示词
适用场景
- 01在 Claude Desktop 中调用 ComfyUI 生成图像
- 02根据主题自动生成图像提示词后出图
- 03在远程 GPU 服务器上批量生成图像
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露 generate_image 与 generate_prompt 两个工具,用于图像生成与提示词生成。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Comfy MCP Server
使用 FastMCP 框架,通过远程 Comfy 服务根据提示词生成图像的服务。
概述
此脚本使用 FastMCP 框架设置服务,通过指定的工作流根据提示词生成图像。它与远程 Comfy 服务交互,以提交提示词并获取生成的图像。
前提条件
- uv:用于 Python 的包和项目管理器。
- 从 Comfy UI 导出的工作流文件。此代码包含一个示例
Flux-Dev-ComfyUI-Workflow.json,仅供参考。你需要从自己的工作流导出文件,并相应地设置环境变量。
你可以安装本地开发所需的软件包:
uvx mcp[cli]
配置
设置以下环境变量:
COMFY_URL:指向 Comfy 服务的 URL。COMFY_WORKFLOW_JSON_FILE:指向 Comfy UI 工作流的 API 导出 JSON 文件的绝对路径。PROMPT_NODE_ID:文本提示词节点的 ID。OUTPUT_NODE_ID:包含最终图像的输出节点 ID。OUTPUT_MODE:设置为url或file,以选择所需的输出方式。
如果你运行着 Ollama 服务,也可以选择连接该服务来生成提示词。
OLLAMA_API_BASE:Ollama 运行所在的 URL。PROMPT_LLM:Ollama 上托管、用于生成提示词的模型名称。
示例:
export COMFY_URL=http://your-comfy-server-url:port
export COMFY_WORKFLOW_JSON_FILE=/path/to/the/comfyui_workflow_export.json
export PROMPT_NODE_ID=6 # use the correct node id here
export OUTPUT_NODE_ID=9 # use the correct node id here
export OUTPUT_MODE=file
使用方法
可以通过以下命令启动 Comfy MCP Server:
uvx comfy-mcp-server
Claude Desktop 配置示例
{
"mcpServers": {
"Comfy MCP Server": {
"command": "/path/to/uvx",
"args": [
"comfy-mcp-server"
],
"env": {
"COMFY_URL": "http://your-comfy-server-url:port",
"COMFY_WORKFLOW_JSON_FILE": "/path/to/the/comfyui_workflow_export.json",
"PROMPT_NODE_ID": "6",
"OUTPUT_NODE_ID": "9",
"OUTPUT_MODE": "file",
}
}
}
}
功能
generate_image(prompt: str, ctx: Context) -> Image | str
此函数使用指定的提示词生成图像。具体步骤如下:
- 检查是否已设置所有环境变量。
- 从 JSON 文件加载提示词模板。
- 向 Comfy 服务提交提示词。
- 轮询服务,获取提示词处理状态。
- 图像准备就绪后,获取并返回生成的图像。
generate_prompt(topic: str, ctx: Context) -> str
此函数根据指定主题生成全面的图像生成提示词。
依赖项
mcp:用于设置 FastMCP 服务。json:用于处理 JSON 数据。urllib:用于发送 HTTP 请求。time:用于在轮询时添加延迟。os:用于访问环境变量。langchain:用于创建简单的 LLM 提示词链,根据主题生成图像生成提示词。langchain-ollama:用于 LangChain 的 Ollama 专用模块。
许可证
本项目采用 MIT 许可证授权。详情请参阅 LICENSE 文件。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。