更新日期:2026-08-12。本文覆盖生图/编辑接口所有支持的能力组合,供下游接入参考。
按业务场景分三大类:文生图(纯文本→图)、参考图生图(带参考图→新图)、图 像编辑(改图/多图合成/蒙版)。
http://localhost:3003,prod-cn / prod-intl:http://localhost:3002Authorization: Bearer sk-silievo-xxx(不是上游渠道 key)| 写法 | 示例 | 路由 |
|---|---|---|
渠道前缀 渠道code/模型ID | vp/gemini-3.1-flash-lite-image | 确定路由到指定渠道 |
| 纯模型 ID | gemini-3.1-flash-lite-image | 查 proxy_channel_models 随机选渠道 |
前缀第一段必须是库中 proxy_channels.channel_code实际值(示例的nano-banana/aliyun_img/ms_img/azure以你库为准)。
| 渠道类型 | 适配器 | 生成接口 | 编辑接口 | 多图/参考图 | 独有参数 |
|---|---|---|---|---|---|
openai_image(Azure/OpenAI) | OpenAiImageAdapter | JSON images/generations | 独立 images/edits(multipart 或 JSON) | 带图走编辑端点 | quality/style/output_format/n/size/seed |
gemini_image(nano banana/vapeur) | GeminiImageAdapter | 单接口 generateContent | 复用单接口 | ✅ images[] → inlineData parts | extra_params.generationConfig / systemInstruction |
dashscope_image(阿里 qwen/wan) | DashScopeImageAdapter | 单接口 multimodal-generation | 复用单接口 | ✅ images[] → content,base64 自动 OSS 转 URL | extra_params.prompt_extend / watermark |
images 数组推荐传 base64 data URI(无下载依赖):⚠️ Windows PowerShell 内联中文可能被转 GBK 导致上游 400 invalid_json。凡含中文的 JSON 一律存 UTF-8 文件用--data-binary @req.json提交。
入口: POST /v1/images/generations,不带images。
OpenAI 系支持: n/size/quality(low|medium|high) /output_format(png|jpeg) /output_compression/background/moderation/seed/user。
DashScope 把 1024x1024自动转1024*1024;2K等原样透传。不支持 quality/style/output_format。
Gemini 入口的 n/size会被安全忽略,尺寸/采样参数走extra_params.generationConfig。
入口: POST /v1/images/generations,带images数组(元素可为 base64 data URI 字符串、{"image_url": ...}对象、或纯 URL)。
网关自动识别"带图即编辑"(图生图=图像编辑):Gemini/DashScope 参考图进 content parts;Azure/OpenAI 自动切到 edits 端点。
URL 必须公网可访问;网关下载失败会报错(不会静默丢图)。DashScope 直接透传 URL,OpenAI/Azure/Gemini 下载转 base64。
// req.json
{
"model": "vp/gemini-3.1-flash-lite-image",
"prompt": "把第二张图的女孩放到第一张图的沙发上,保持第一张图其余部分不变",
"images": [
{ "image_url": "data:image/jpeg;base64,[BASE64_1 底图]" },
{ "image_url": "data:image/jpeg;base64,[BASE64_2 参考图 女孩]" }
]
}{
"model": "vp/gemini-3.1-flash-lite-image",
"prompt": "把第二张图的女孩放到第一张图的沙发上,第三张图的猫放到窗台上,其余保持不变",
"images": [
{ "image_url": "data:image/jpeg;base64,[BASE64_1 底图]" },
{ "image_url": "data:image/jpeg;base64,[BASE64_2 女孩]" },
{ "image_url": "data:image/jpeg;base64,[BASE64_3 猫]" }
]
}{
"model": "vp/gemini-3.1-flash-lite-image",
"prompt": "第二张是遮罩图(白色区域为可编辑区域)。把第三张图的女孩合成到遮罩标记的沙发区域,遮罩之外保持原图完全不变",
"images": [
{ "image_url": "data:image/png;base64,[BASE64_1 原图]" },
{ "image_url": "data:image/png;base64,[BASE64_2 遮罩图 白=可编辑]" },
{ "image_url": "data:image/png;base64,[BASE64_3 女孩]" }
]
}当前遮罩走"顺序拼 parts + prompt 描述",结构化 role/mask字段未实现。
DashScope 的 base64 输入图自动上传 OSS 转 URL 再传给渠道接口。
Azure/OpenAI 带图会切到 images/edits(cognitiveservices 域 + api-version 2025-04-01-preview),size/quality/output_format/n 随 multipart 透传。
入口: POST /v1/images/edits,两种 Content-Type 自动分派:multipart/form-data或application/json。
multipart 仅支持: image(单张或多张,image/image[])/mask(可选)/prompt/model。
JSON 编辑的 images数组支持纯字符串(data URI/URL)或对象{"image_url": ...}两种形态。
{
"prompt": "把背景换成雪景",
"model": "azure/gpt-image-2",
"size": "1024x1024",
"quality": "high",
"output_format": "png",
"n": 1,
"images": [
{ "image_url": "data:image/png;base64,[BASE64 原图]" }
]
}mask目前仅 multipart 支持(JSON 无 mask 字段)。
| 业务 | 入口 | 是否带图 | 传图方式 | 适用渠道 |
|---|---|---|---|---|
| 文生图 | /v1/images/generations | ❌ | — | 全部 |
| 参考图生图(单图改风格) | /v1/images/generations | ✅ | images 数组 | 全部(Azure 走编辑端点) |
| 参考图生图(多图合成/换区域) | /v1/images/generations | ✅ | images 数组(顺序=编号) | Gemini / DashScope |
| 图像编辑(单图) | /v1/images/edits | ✅ | multipart image 或 JSON images | 全部 |
| 图像编辑(带蒙版) | /v1/images/edits | ✅ | multipart image+mask | Azure(及支持 mask 的渠道) |
| 图像编辑(多图) | /v1/images/edits | ✅ | multipart image[] 或 JSON images | OpenAI / Gemini / DashScope |
| 图像编辑(带尺寸/质量/格式) | /v1/images/edits JSON | ✅ | JSON images + size/quality/output_format/n | Azure / OpenAI |
/generations,不带图是文生图,带 images 是参考图生图/edits,multipart(传文件)或 JSON(传 base64 images)都行| 参数 | Azure / OpenAI | Gemini | DashScope |
|---|---|---|---|
prompt | ✅ | ✅ | ✅ |
n(张数) | ✅ | ❌ 忽略 | ✅ |
size | ✅ | ❌ 忽略(走 generationConfig) | ✅(1024*1024) |
quality | ✅ | ❌ | ❌ |
style | ✅ | ❌ | ❌ |
output_format | ✅ | ❌ | ❌ |
seed / background / moderation / user / output_compression | ✅ | ❌ | ❌ |
extra_params.generationConfig / systemInstruction | ❌ | ✅ | ❌ |
extra_params.prompt_extend / watermark | ❌ | ❌ | ✅ |
images 数组(base64/URL) | ✅(自动走编辑) | ✅ | ✅(base64 转 OSS URL) |
| 现象 | 原因 | 规避 |
|---|---|---|
400 invalid_json | Windows PowerShell 内联中文被转 GBK | JSON 存 UTF-8 文件 --data-binary @req.json |
400 stream:true | 图像接口不支持流式 | 去掉 stream |
400 image 不能为空 | multipart 编辑没传 image | multipart 必传 image;JSON 编辑必传 images |
400 file_id 暂不支持 | 网关未实现 /v1/files | 改用 image_url 传 base64 data URI |
400 image 仅支持 png/jpeg/webp/gif | 传了 BMP 等格式 | 转成 png/jpeg/webp/gif |
502 CHANNEL_NOT_FOUND | 渠道前缀不对 | 用库中 channel_code 实际值 |
502 PROVIDER_ERROR: 图像渠道不支持文本聊天 | 生图模型绑到了聊天渠道 | 模型绑 openai_image/gemini_image/dashscope_image 渠道 |