AI图像生成服务

一个基于Model Context Protocol (MCP)的AI图像生成服务器,集成Stable Diffusion技术,支持AI代理请求和接收生成的图像。

  • by aymec
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 aymec/image_gen_with_mcp

使用说明

具有MCP接口的AI图像生成服务器

该项目提供了一个具有集成稳定扩散图像生成功能的模型上下文协议(MCP)服务器,使AI代理能够请求和接收生成的图像。
本项目基于以下提供的示例 Block的Goose自定义扩展教程.

设置

  1. 创建虚拟环境,使用 .venv 强制性:

    virtualenv .venv
    
  2. 激活虚拟环境:

    source .venv/bin/activate
    
  3. 安装MCP包(用于Goose集成):

    pip install -e .
    

运行服务

MCP服务器包括集成图像生成服务。您可以用一个命令启动这两个命令:

标准模式:

source .venv/bin/activate  # Activate your virtualenv
export IMAGE_GEN_DIR=/absolute/path/to/folder # Set generated images target folder
image-gen-mcp

FastMCP Inspector开发模式: 打开两个终端:

端子1

source .venv/bin/activate  # Activate your virtualenv
export IMAGE_GEN_DIR=/absolute/path/to/folder # Set generated images target folder
image-gen-mcp # Start image generation service (and a MCP server we won't use)

2号航站楼

source .venv/bin/activate  # Activate your virtualenv
export IMAGE_GEN_DIR=/absolute/path/to/folder # Set generated images target folder
mcp dev src/image_gen_mcp/server.py # Start MCP server with Inspector

注意:仅当使用开发模式时,图像生成服务必须单独启动。

这将使用FastMCP检查器启动MCP服务器,该检查器提供:

  1. web界面位于http://127.0.0.1:6274用于测试和调试
  2. 端口6277上的代理服务器,用于转发MCP请求

使用FastMCP检查器:

  1. 打开http://127.0.0.1:6274在您的浏览器中
  2. 使用交互式界面可以:
    • 探索可用的工具及其文档
    • 测试 generate_image 带有您自己提示的工具
    • 查看请求/响应历史记录
    • 调试MCP服务器的任何问题

图像生成服务的自定义端口:

source .venv/bin/activate  # Activate your virtualenv
export IMAGE_GEN_DIR=/absolute/path/to/folder # Set generated images target folder
image-gen-mcp --port 5001

API直接访问

通过向图像生成服务发送POST请求来生成图像:

curl -X POST http://localhost:5000/generate \
  -H "Content-Type: application/json" \
  -d '{"prompt": "A futuristic cityscape at sunset"}'

响应将包括访问生成的图像的URL以及元数据:

{
  "type": "image",
  "format": "png",
  "url": "http://localhost:5000/images/123e4567-e89b-12d3-a456-426614174000.png",
  "width": 512,
  "height": 512,
  "filename": "123e4567-e89b-12d3-a456-426614174000.png",
  "filepath": "generated_images/123e4567-e89b-12d3-a456-426614174000.png",
  "mime_type": "image/png",
  "prompt": "A futuristic cityscape at sunset",
  "alt_text": "AI-generated image of: A futuristic cityscape at sunset"
}

您可以通过返回的直接访问生成的图像 image_url.

文件组织

  • src/image_gen_mcp/ -包含实现的包目录
    • server.py -MCP服务器实现
    • generator.py -图像生成服务
    • __init__.py -包初始化和CLI入口点
    • __main__.py -允许将包作为模块运行

与Goose集成

要将此MCP服务器添加为Goose中的扩展:

  1. 首选 Settings > Extensions > Add.
  2. 设置 Type 向 StandardIO.
  3. 提供ID“image_generator”、名称“image generator”和适当的描述。
  4. 在 Command 字段中,提供可执行文件的绝对路径:
    uv run /full/path/to/your/project/.venv/bin/image-gen-mcp
    
  5. 添加环境变量 IMAGE_GEN_DIR 并选择一个存储生成图像的文件夹

集成后,您可以使用Goose中的图像生成工具,要求它生成具有特定提示的图像。

使用OpenAI GPT-4o时,它会立即工作。
Ollama可以在本地运行所有东西,在尝试了几个模型后,唯一有效的是 mistral-small3.1.
即使在高端MacBookPro上,mistral-small3.1的响应也比OpenAI GPT-4o慢得多。

服务体系结构

这两项服务都集成到一个应用程序中:

  1. 图像生成服务 (src/image_gen_mcp/generator.py)

    • 使用稳定扩散处理实际图像生成
    • 为图像生成提供一个简单的HTTP API
    • 返回图像URL、维度和元数据
    • 包括一个直接端点来提供生成的图像
    • 默认情况下在端口5000上运行(可使用--port进行自定义)
    • 与MCP服务器在同一进程内的单独线程中运行
  2. MCP服务器 (src/image_gen_mcp/server.py)

    • 为AI代理提供标准化的MCP接口
    • 将请求转发到集成的图像生成服务
    • 返回一个格式正确的MCP图像对象,其中包含URL和元数据

停止服务

使用Ctrl+C停止这两个服务,因为它们现在在同一进程中运行。