wan2.7图像生成工具
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"doubao-image": {
"args": [
"run",
"wan27-image-mcp"
],
"command": "uv",
"cwd": "C:/projects/MCP_Server/doubao-image",
"env": {
"DOUBAO_API_KEY": "your-api-key-here"
}
}
}
}
服务介绍
万相 2.7 图像生成与编辑 MCP 工具
基于阿里云百炼万相 2.7 模型的 MCP 工具,支持文生图、图像编辑、组图生成等功能。
功能特性
- 文生图 (
text_to_image): 根据文本描述生成高质量图像 - 图像编辑 (
image_edit): 根据文本指令编辑参考图像,支持多图输入 - 交互式编辑 (
interactive_edit): 通过框选区域精确编辑图像 - 组图生成 (
sequential_images): 生成具有连贯性的多张图像序列 - 异步任务 (
create_async_task,get_task_status,wait_for_task): 支持长时间任务的异步处理
快速开始
1. 环境要求
- Python 3.10+
- uv 包管理器
2. 安装依赖
cd wan2.7-image-tool
uv sync
3. 配置 API Key
获取阿里云百炼 API Key 后,设置环境变量:
Windows (PowerShell):
$env:DASHSCOPE_API_KEY="sk-xxx"
Windows (CMD):
set DASHSCOPE_API_KEY=sk-xxx
Linux/macOS:
export DASHSCOPE_API_KEY="sk-xxx"
4. 运行 MCP 服务器
uv run wan27-image-mcp
或在开发模式下:
uv run python -m wan27_image_mcp.server
MCP 工具列表
text_to_image - 文生图
根据文本描述生成图像。
参数:
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| prompt | string | 是 | - | 图像描述文本,支持中英文,最长 5000 字符 |
| model | string | 否 | wan2.7-image-pro | 模型名称:wan2.7-image-pro 或 wan2.7-image |
| size | string | 否 | 2K | 输出分辨率:1K、2K、4K(pro 支持) 或自定义如 1024*1024 |
| n | int | 否 | 1 | 生成数量,范围 1-4 |
| watermark | bool | 否 | false | 是否添加 AI 生成水印 |
| thinking_mode | bool | 否 | true | 是否开启思考模式(增强推理) |
| seed | int | 否 | - | 随机数种子,范围 [0, 2147483647] |
| api_key | string | 否 | - | API Key(可用环境变量) |
| region | string | 否 | beijing | 地域:beijing 或 singapore |
返回示例:
{
"request_id": "81dfc3c6-f796-9972-97e4-bc4efc4fxxxx",
"images": ["https://dashscope-xxx.oss-xxx.aliyuncs.com/xxx.png?Expires=xxx"],
"size": "2048*2048",
"usage": {"image_count": 1, "input_tokens": 10867, "output_tokens": 2, "total_tokens": 10869}
}
image_edit - 图像编辑
根据文本指令编辑参考图像,支持多图输入。
参数:
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| prompt | string | 是 | - | 编辑指令,描述如何编辑图像 |
| reference_images | string[] | 是 | - | 参考图像 URL 列表,支持 1-9 张 |
| model | string | 否 | wan2.7-image-pro | 模型名称 |
| size | string | 否 | 2K | 输出分辨率(有图输入时支持 1K、2K) |
| n | int | 否 | 1 | 生成数量,范围 1-4 |
| watermark | bool | 否 | false | 是否添加水印 |
| thinking_mode | bool | 否 | true | 是否开启思考模式 |
| seed | int | 否 | - | 随机数种子 |
| api_key | string | 否 | - | API Key |
| region | string | 否 | beijing | 地域 |
使用示例:
{
"prompt": "把图 2 的涂鸦喷绘在图 1 的汽车上",
"reference_images": [
"https://example.com/car.webp",
"https://example.com/paint.webp"
]
}
interactive_edit - 交互式编辑
通过框选区域精确编辑图像。
参数:
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| prompt | string | 是 | - | 编辑指令 |
| reference_images | string[] | 是 | - | 参考图像 URL 列表 |
| bbox_list | int[][][] | 是 | - | 框选区域列表 |
| model | string | 否 | wan2.7-image-pro | 模型名称 |
| size | string | 否 | 2K | 输出分辨率 |
| n | int | 否 | 1 | 生成数量 |
| watermark | bool | 否 | false | 是否添加水印 |
| thinking_mode | bool | 否 | true | 是否开启思考模式 |
| seed | int | 否 | - | 随机数种子 |
| api_key | string | 否 | - | API Key |
| region | string | 否 | beijing | 地域 |
bbox_list 格式说明:
- 列表长度必须与图像数量一致
- 无需编辑的图像传入空列表
[] - 坐标格式:
[x1, y1, x2, y2](左上角到右下角) - 单张图像最多 2 个边界框
使用示例:
{
"prompt": "把图 1 的闹钟放在图 2 的框选位置",
"reference_images": ["url1", "url2"],
"bbox_list": [
[],
[[989, 515, 1138, 681]]
]
}
sequential_images - 组图生成
生成具有连贯性的多张图像序列。
参数:
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| prompt | string | 是 | - | 组图描述,应清晰描述每张图内容 |
| n | int | 否 | 4 | 生成数量,范围 1-12 |
| model | string | 否 | wan2.7-image-pro | 模型名称 |
| size | string | 否 | 2K | 输出分辨率(支持 1K、2K) |
| watermark | bool | 否 | false | 是否添加水印 |
| seed | int | 否 | - | 随机数种子 |
| api_key | string | 否 | - | API Key |
| region | string | 否 | beijing | 地域 |
使用示例:
{
"prompt": "电影感组图,记录同一只流浪橘猫。第一张:春天樱花树下;第二张:夏天老街树荫;第三张:秋天落叶;第四张:冬天雪地",
"n": 4
}
create_async_task - 创建异步任务
创建异步生图任务,适用于耗时较长的任务。
参数:
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| prompt | string | 是 | - | 文本提示词 |
| task_type | string | 否 | text_to_image | 任务类型:text_to_image/image_edit/sequential/interactive_edit |
| reference_images | string[] | 否 | - | 参考图像(编辑类任务需要) |
| bbox_list | int[][][] | 否 | - | 框选区域(交互式编辑需要) |
| n | int | 否 | 1 | 生成数量 |
| model | string | 否 | wan2.7-image-pro | 模型名称 |
| size | string | 否 | 2K | 输出分辨率 |
| watermark | bool | 否 | false | 是否添加水印 |
| seed | int | 否 | - | 随机数种子 |
| api_key | string | 否 | - | API Key |
| region | string | 否 | beijing | 地域 |
返回示例:
{
"task_id": "0385dc79-5ff8-4d82-bcb6-xxxxxx",
"task_status": "PENDING",
"request_id": "4909100c-7b5a-9f92-bfe5-xxxxxx"
}
get_task_status - 查询任务状态
查询异步任务的状态和结果。
参数:
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| task_id | string | 是 | - | 任务 ID |
| api_key | string | 否 | - | API Key |
| region | string | 否 | beijing | 地域 |
返回示例 (任务完成):
{
"task_id": "a81ee7cb-014c-473d-b842-xxxxxx",
"task_status": "SUCCEEDED",
"images": ["https://dashscope-xxx.oss-xxx.aliyuncs.com/xxx.png?Expires=xxx"],
"size": "2048*2048",
"usage": {"image_count": 1},
"submit_time": "2026-03-26 17:16:01.663",
"end_time": "2026-03-26 17:16:22.961",
"finished": true
}
wait_for_task - 等待任务完成
等待异步任务完成并返回结果。
参数:
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| task_id | string | 是 | - | 任务 ID |
| poll_interval | float | 否 | 5.0 | 轮询间隔(秒) |
| max_wait_time | float | 否 | 600.0 | 最大等待时间(秒) |
| api_key | string | 否 | - | API Key |
| region | string | 否 | beijing | 地域 |
任务状态说明
| 状态 | 说明 |
|---|---|
| PENDING | 任务排队中 |
| RUNNING | 任务处理中 |
| SUCCEEDED | 任务执行成功 |
| FAILED | 任务执行失败 |
| CANCELED | 任务已取消 |
| UNKNOWN | 任务不存在或状态未知 |
图像规格说明
wan2.7-image-pro
| 场景 | 分辨率选项 |
|---|---|
| 文生图(无图输入) | 1K、2K、4K |
| 其他场景 | 1K、2K |
- 1K: 1024*1024
- 2K: 2048*2048
- 4K: 4096*4096
wan2.7-image
| 场景 | 分辨率选项 |
|---|---|
| 所有场景 | 1K、2K |
注意: 有图像输入时,输出宽高比与输入图像一致,并缩放到选定分辨率。
计费说明
- 按成功生成的图像张数计费
- 调用失败或处理错误不产生费用
- 具体价格请参考 阿里云百炼模型价格
注意事项
- 图像 URL 有效期: 生成的图像 URL 有效期为 24 小时,请及时下载保存
- API Key 地域: 北京和新加坡地域的 API Key 和请求地址不通用,不可混用
- 图像输入限制:
- 格式:JPEG、JPG、PNG(不支持透明通道)、BMP、WEBP
- 分辨率:宽高范围 [240, 8000] 像素,宽高比 [1:8, 8:1]
- 文件大小:不超过 20MB
- 数量:0-9 张
- 提示词长度: 不超过 5000 个字符
开发
运行测试
uv run pytest
项目结构
wan2.7-image-tool/
├── pyproject.toml # 项目配置
├── README.md # 文档
└── wan27_image_mcp/
├── __init__.py # 包入口
├── client.py # API 客户端
└── server.py # MCP 服务器