AI图像生成服务器

基于Google Gemini 2.5 Flash Image Preview模型的AI图像生成服务器,支持文本到图像和图像到图像的生成。

  • by Vineexoxo
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Vineexoxo/Nano-Banana-MCP

使用说明

Nano Banana MCP服务器

一个模型上下文协议(MCP)服务器,用于使用谷歌的Gemini 2.5 Flash image Preview模型生成AI驱动的图像。该服务器通过MCP接口实现文本到图像和图像到图像的生成。

特性

  • 文本到图像生成:根据文本提示生成图像
  • 图像到图像生成:创建现有图像的变体或修改
  • Base64支持:处理base64格式的图像数据以兼容MCP
  • 谷歌AI工作室集成:使用谷歌最新的Gemini 2.5 Flash图像预览模型
  • 错误处理:全面的错误处理和记录
  • 环境变量支持:安全的API密钥管理

先决条件

  • Python 3.7+
  • Google AI Studio API密钥
  • API调用的Internet连接

安装

  1. 克隆或下载此存储库

  2. 安装依赖项:

    pip install -r requirements.txt
    
  3. 设置您的Google AI Studio API密钥:

    export GOOGLE_AI_STUDIO_API_KEY="your_api_key_here"
    

配置

MCP配置

将以下内容添加到MCP配置文件中:

{
  "mcpServers": {
    "nano-banana": {
      "command": "python3",
      "args": ["nano_banana_server.py"],
      "env": {
        "GOOGLE_AI_STUDIO_API_KEY": "${GOOGLE_AI_STUDIO_API_KEY}"
      }
    }
  }
}

环境变量

  • GOOGLE_AI_STUDIO_API_KEY:您的Google AI Studio API密钥(必需)

用法

MCP工具功能

服务器提供单个MCP工具功能:

generate_image_with_nano_banana

使用谷歌的Gemini 2.5 Flash图像预览模型生成图像。

参数:

  • prompt (string,必填):要生成的图像的文本描述
  • input_image_b64 (字符串,可选):Base64编码的输入图像,用于变化
  • input_image_mime_type (字符串,可选):输入图像的MIME类型(例如,“image/png”、“image/jpeg”)

退货:

  • success (boolean):生成是否成功
  • generated_image_b64 (string):Base64编码生成的图像(如果成功)
  • generated_image_size (整数):生成图像的大小(以字节为单位)
  • model_used (string):所用模型的名称(“gemini-2.5-flash-image preview”)
  • error (string):错误消息(如果失败)

示例用法

文本到图像生成

result = await generate_image_with_nano_banana(
    prompt="A beautiful handcrafted ceramic bowl with intricate patterns"
)

图像到图像生成

result = await generate_image_with_nano_banana(
    prompt="Transform this into a watercolor painting",
    input_image_b64="iVBORw0KGgoAAAANSUhEUgAA...",  # Base64 encoded image
    input_image_mime_type="image/png"
)

测试

运行测试函数以验证服务器是否正常工作:

python nano_banana_server.py

这将生成一个测试图像并显示结果。

api参考

类

ImageGenerationRequest

用于图像生成请求的数据类。

属性:

  • prompt (str):图像生成的文本提示
  • input_image_data (可选[字节]):原始图像数据
  • input_image_mime_type (可选[str]):输入图像的MIME类型

ImageGenerationResponse

图像生成响应的数据类。

属性:

  • success (bool):生成是否成功
  • generated_image_data (可选[字节]):生成的图像数据
  • error_message (可选[str]):如果失败,则显示错误消息
  • model_used (str):用于生成的模型名称

NanoBananaMCPServer

用于处理图像生成的主服务器类。

方法:

  • __init__(api_key: Optional[str] = None):使用API密钥初始化服务器
  • generate_image(request: ImageGenerationRequest) -> ImageGenerationResponse:根据请求生成图像
  • generate_image_from_base64(prompt: str, input_image_b64: Optional[str] = None, input_image_mime_type: Optional[str] = None) -> Dict[str, Any]:使用base64输入生成图像