# AI图片生成 MCP

基于 Nano Banana Pro API 的 AI 智能生图 MCP 工具，支持根据文本描述生成高质量图片。

## 功能特性

- 🎨 **智能生图**: 根据文本提示词生成高质量图片
- 📐 **多种宽高比**: 支持 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9, auto
- 🖼️ **高清分辨率**: 支持 1K 分辨率输出
- 🎯 **图片输入**: 支持最多 8 张输入图片作为参考或转换
- 📤 **格式选择**: 支持 PNG 和 JPG 输出格式
- ☁️ **云端生成**: 图片直接在云端生成并返回 URL

## 安装

```bash
npm install
npm run build
```

## 配置

需要设置环境变量 `KIE_API_KEY`:

```bash
export KIE_API_KEY=your_api_key_here
```

获取 API Key: 访问 [https://kie.ai/api-key](https://kie.ai/api-key)

## 使用方法

### 工具 1: generate-image

创建图片生成任务。

**参数:**
- `prompt` (必需): 图片生成提示词，详细描述想要生成的图片内容（最多20000字符）
- `image_input` (可选): 输入图片URL数组，最多8张，用于图片转换或作为参考
  - 支持格式: jpeg, png, webp
  - 单个文件最大: 30MB
- `aspect_ratio` (可选): 图片宽高比，默认 '1:1'
  - 可选值: '1:1', '2:3', '3:2', '3:4', '4:3', '4:5', '5:4', '9:16', '16:9', '21:9', 'auto'
- `resolution` (可选): 图片分辨率，默认 '1K'
  - 可选值: '1K'（目前仅支持此选项）
- `output_format` (可选): 输出格式，默认 'png'
  - 可选值: 'png', 'jpg'

**示例:**
```json
{
  "prompt": "一只可爱的橘猫坐在窗台上看着外面的雪景",
  "aspect_ratio": "16:9",
  "resolution": "1K",
  "output_format": "png"
}
```

**带图片输入的示例:**
```json
{
  "prompt": "将这张图片转换为水彩画风格",
  "image_input": ["https://example.com/image.jpg"],
  "aspect_ratio": "1:1",
  "resolution": "1K"
}
```

**返回格式:**
```json
{
  "success": true,
  "message": "图片生成任务已创建",
  "taskId": "281e5b0*********************f39b9",
  "prompt": "提示词",
  "aspect_ratio": "16:9",
  "resolution": "1K",
  "output_format": "png",
  "tip": "请使用 query-task 工具查询任务进度和结果"
}
```

### 工具 2: query-task

查询图片生成任务的状态和进度。

**参数:**
- `taskId` (必需): 任务ID，由 `generate-image` 返回

**示例:**
```json
{
  "taskId": "281e5b0*********************f39b9"
}
```

**返回格式:**
```json
{
  "taskId": "281e5b0*********************f39b9",
  "state": "success",
  "model": "nano-banana-pro",
  "elapsedSeconds": 45,
  "imageUrl": "https://static.aiquickdraw.com/tools/example/1763662100739_DlBXJvdR.png",
  "failCode": null,
  "failMsg": null,
  "createdAt": "2026-01-22T03:00:00.000Z",
  "completedAt": "2026-01-22T03:00:45.000Z"
}
```

**状态说明:**
- `waiting`: 任务排队中
- `success`: 任务完成，可从 `imageUrl` 获取图片
- `fail`: 任务失败，查看 `failMsg` 了解原因


## 提示词建议

为了获得更好的生成效果，建议：

1. **详细描述**: 包含主体、环境、光线、色彩等细节
2. **明确风格**: 指定艺术风格或参考风格
3. **构图说明**: 描述视角、景深、焦点等
4. **情感氛围**: 表达想要传达的情绪和氛围

**好的提示词示例:**
- "一个穿着红色连衣裙的女孩在樱花树下跳舞，柔和的阳光透过花瓣洒下，梦幻的粉色调，电影级构图"
- "赛博朋克风格的东京街道，霓虹灯闪烁，雨后湿润的地面反射着五彩的光芒，广角镜头"
- "油画风格的山间小屋，秋天的金黄色树叶，温暖的壁炉光从窗户透出，宁静祥和的氛围"

## API 说明

本工具使用 Nano Banana Pro API，详细文档请参考: [https://kie.ai/api-key](https://kie.ai/api-key)

## 开发

```bash
# 开发模式
npm run dev

# 构建
npm run build

# 清理
npm run clean
```

## 许可证

MIT
