图像生成服务器

基于FastMCP框架的服务器,通过远程Comfy服务器根据提示生成图像。

  • by lalanikarim
  • Python
  • 本地部署
  • 46 星标
  • 更新于
在 GitHub 查看 lalanikarim/comfy-mcp-server

使用说明

Comfy MCP服务器

使用FastMCP框架通过远程Comfy服务器根据提示生成图像的服务器。

概述

此脚本使用FastMCP框架设置服务器,以使用指定的工作流根据提示生成图像。它与远程Comfy服务器交互,以提交提示并检索生成的图像。

先决条件

  • 紫外线 Python的包和项目管理器。
  • 从Comfy UI导出的工作流文件。此代码包含一个示例 Flux-Dev-ComfyUI-Workflow.json 此处仅作为参考。您需要从工作流中导出并相应地设置环境变量。

您可以安装本地开发所需的软件包:

uvx mcp[cli]

配置

设置以下环境变量:

  • COMFY_URL 指向您的Comfy服务器URL。
  • COMFY_WORKFLOW_JSON_FILE 指向用于comfyui工作流的API导出json文件的绝对路径。
  • PROMPT_NODE_ID 到文本提示节点的id。
  • OUTPUT_NODE_ID 将最终图像转换为输出节点的id。
  • OUTPUT_MODE 要么 url 或 file 以选择所需的输出。

(可选)如果您有 没有 服务器正在运行,您可以连接到它以生成提示。

  • 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服务器可以通过以下命令启动:

uvx comfy-mcp-server

Claude桌面配置示例

{
  "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

此函数使用指定的提示生成图像。它遵循以下步骤:

  1. 检查是否已设置所有环境变量。
  2. 从JSON文件加载提示模板。
  3. 将提示提交给Comfy服务器。
  4. 向服务器轮询提示处理的状态。
  5. 一旦生成的图像准备就绪,就检索并返回它。

generate_prompt(topic: str, ctx: Context) -> str

此函数用于从指定主题生成全面的图像生成提示。

依赖项

  • mcp:用于设置FastMCP服务器。
  • json:用于处理JSON数据。
  • urllib:用于发出HTTP请求。
  • time:增加投票延迟。
  • os:用于访问环境变量。
  • langchain:用于创建简单的LLM Prompt链,以从主题生成图像生成提示。
  • langchain-ollama:用于LangChain的ollama特定模块。

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。