52 KiB
KM 可美 Seedream 5.0 接口
来源与范围
- 供应商图像文档,公开文档
volc-image:OpenAI 兼容端点、Pro 的限制与默认值。 - 火山引擎 Image generation API:Pro / Flash 的精确模型 ID、尺寸、参考图、格式和能力限制。
- 供应商模型市场确认两个精确模型 ID 可用。市场计费档不是参考图或组图数量上限。
请求
POST https://token.xinhankr.com/v1/images/generations,JSON,渠道 API Key 作为 Bearer Token。
{
"model": "doubao-seedream-5-0-pro-260628",
"prompt": "暖色书房中的橘猫,写实照片,正方形构图",
"n": 1,
"size": "2048x2048",
"response_format": "url",
"output_format": "jpeg",
"watermark": false,
"background": "opaque"
}
Flash 使用 doubao-seedream-5-0-flash-260915。图生图仍使用同一端点;参考图映射为 image,单图是字符串,多图是数组,保持输入顺序,支持 URL / Base64。最多 10 张,每张不超过 30 MB。官方还要求参考图边长大于 14、总像素 196–36000000、比例 1:16–16:1;这些条件需素材本身满足。没有蒙版接口。
size 支持 1K / 1.5K / 2K,或像素字符串。空值 / auto 默认 2K;宿主比例值映射为官方 2K 像素。自定义总像素 921600–4624220,比例 1:16–16:1。宿主交互控件还保留全站的 16px 步长、最长边 3840 与 3:1 比例约束。提示词 32000 字符是宿主限制,未声称是供应商的上限。
| 比例 | 1K | 1.5K | 2K |
|---|---|---|---|
| 1:1 | 1024x1024 | 1536x1536 | 2048x2048 |
| 4:3 | 1152x864 | 1792x1344 | 2368x1776 |
| 3:4 | 864x1152 | 1344x1792 | 1776x2368 |
| 16:9 | 1424x800 | 2048x1152 | 2816x1584 |
| 9:16 | 800x1424 | 1152x2048 | 1584x2816 |
| 3:2 | 1248x832 | 1872x1248 | 2496x1664 |
| 2:3 | 832x1248 | 1248x1872 | 1664x2496 |
| 21:9 | 1568x672 | 2352x1008 | 3136x1344 |
命名空间扩展
providerOptions.km-kemei-seedream:
response_format:url(默认)/ b64_json。output_format:jpeg(默认)/ png。watermark:false(默认)/ true。background:opaque(默认)/ transparent。透明只用于一张带 alpha 的输入图,且输出 png;插件校验单图与 png 条件,alpha 条件由供应商检查。宿主通用透明开关默认关闭,避免把任意文生图伪装成此能力。layer_decomposition:布尔值,仅一张输入图,尺寸使用档位或 auto;此时允许空提示词,保存全部图层,不按 n=1 截断。
Pro / Flash 不支持 sequential_image_generation、组图、联网搜索、流式输出。插件拒绝相关扩展字段,不发送通用 quality、resolution、seed。
响应与失败
同步响应中的 data[] 全部提取,兼容 url / b64_json,并透传 usage。供应商 URL 有有效期,宿主必须持久化结果。HTTP 错误由宿主处理,JSON 的 error.code / error.message 映射为失败;不以空结果冒充成功。
安装包不携带渠道密钥;管理员通过正常插件安装机制启用,再给渠道模型选择此协议。模型价格与启用状态由管理员独立配置。
Manifest 完整接口定义
以下 JSON 与插件包内实际 manifest.json 逐字段一致,覆盖插件身份、权限、配置、鉴权、参数、校验、创建、Agent、查询、取消、结果下载、响应和 Agent 响应映射。documentation 字段的值就是当前完整文档;为避免文档在自身内部无限递归,JSON 中仅用等义占位文本表示正文。
{
"apiVersion": "yingce.plugin/v2",
"id": "km-kemei-seedream",
"name": "KM 可美 Seedream 5.0",
"version": "1.0.0",
"author": "KM 可美 / 影绘",
"description": "适配可美 Seedream 5.0 Pro 与 Flash,单张生成、参考图与全部结果提取。",
"enabled": true,
"installable": true,
"permissions": [
"generation.run",
"media.read"
],
"configuration": {
"fields": [
{
"name": "apiKey",
"type": "secret",
"label": "API Key",
"required": true
}
]
},
"contributes": {
"providers": [
{
"id": "km-kemei-seedream",
"label": "KM 可美 Seedream 5.0",
"capabilities": [
"image"
],
"scopes": [
"admin.system-channel",
"user.custom-channel",
"canvas",
"creation",
"agent"
],
"baseUrl": "https://token.xinhankr.com",
"requiresPublicMediaUrls": false,
"auth": {
"type": "bearer",
"field": "apiKey"
},
"parameters": [
{
"name": "model",
"type": "string",
"required": true,
"mapping": "model",
"description": "精确 ID:doubao-seedream-5-0-pro-260628 / doubao-seedream-5-0-flash-260915。"
},
{
"name": "prompt",
"type": "string",
"required": true,
"mapping": "prompt",
"description": "图片提示词;宿主限制 32000 字符。"
},
{
"name": "imageCount",
"type": "integer",
"required": false,
"mapping": "n=1",
"description": "仅单张生成;图层分解返回的所有图层均保存。"
},
{
"name": "aspectRatio",
"type": "string",
"required": false,
"mapping": "size",
"description": "默认 2048x2048(2K、1:1);支持 1K / 1.5K / 2K、八种比例或合法像素尺寸。"
},
{
"name": "images",
"type": "media[]",
"required": false,
"mapping": "image",
"description": "最多 10 张;URL / Base64;不支持蒙版。"
},
{
"name": "providerOptions",
"type": "object",
"required": false,
"mapping": "providerOptions.km-kemei-seedream",
"description": "可选 response_format / output_format / watermark / background / layer_decomposition。"
}
],
"validations": [
{
"assert": {
"$in": [
{
"$ref": "request.model"
},
[
"doubao-seedream-5-0-pro-260628",
"doubao-seedream-5-0-flash-260915"
]
]
},
"message": "此协议只适用于可美 Seedream 5.0 Pro / Flash 的已确认模型 ID。"
},
{
"assert": {
"$lte": [
{
"$ref": "request.imageCount"
},
1
]
},
"message": "Seedream 5.0 Pro / Flash 仅支持单张生成,n 只能为 1。"
},
{
"assert": {
"$or": [
{
"$gt": [
{
"$len": {
"$trim": {
"$ref": "request.prompt"
}
}
},
0
]
},
{
"$eq": [
{
"$coalesce": [
{
"$ref": "request.providerOptions.km-kemei-seedream.layer_decomposition"
},
false
]
},
true
]
}
]
},
"message": "提示词不能为空;仅图层分解模式可省略提示词。"
},
{
"assert": {
"$lte": [
{
"$len": {
"$ref": "request.prompt"
}
},
32000
]
},
"message": "提示词超过宿主配置的 32000 字符上限。"
},
{
"assert": {
"$lte": [
{
"$len": {
"$ref": "request.images"
}
},
10
]
},
"message": "Seedream 5.0 参考图最多 10 张。"
},
{
"assert": {
"$eq": [
{
"$len": {
"$filter": {
"from": {
"$ref": "request.images"
},
"as": "media",
"where": {
"$eq": [
{
"$ref": "media.role"
},
"mask"
]
}
}
}
},
0
]
},
"message": "此协议不支持蒙版编辑。"
},
{
"assert": {
"$eq": [
{
"$len": {
"$filter": {
"from": {
"$ref": "request.images"
},
"as": "media",
"where": {
"$gt": [
{
"$coalesce": [
{
"$ref": "media.metadata.bytes"
},
0
]
},
31457280
]
}
}
}
},
0
]
},
"message": "单张参考图不得超过 30 MB。"
},
{
"assert": {
"$or": [
{
"$in": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
[
"",
"auto",
"1k",
"1.5k",
"2k",
"1:1",
"4:3",
"3:4",
"16:9",
"9:16",
"3:2",
"2:3",
"21:9"
]
]
},
{
"$and": [
{
"$eq": [
{
"$len": {
"$split": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"x"
]
}
},
2
]
},
{
"$gt": [
{
"$toInt": {
"$at": [
{
"$split": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"x"
]
},
0
]
}
},
0
]
},
{
"$gt": [
{
"$toInt": {
"$at": [
{
"$split": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"x"
]
},
1
]
}
},
0
]
},
{
"$gte": [
{
"$multiply": [
{
"$toInt": {
"$at": [
{
"$split": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"x"
]
},
0
]
}
},
{
"$toInt": {
"$at": [
{
"$split": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"x"
]
},
1
]
}
}
]
},
921600
]
},
{
"$lte": [
{
"$multiply": [
{
"$toInt": {
"$at": [
{
"$split": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"x"
]
},
0
]
}
},
{
"$toInt": {
"$at": [
{
"$split": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"x"
]
},
1
]
}
}
]
},
4624220
]
},
{
"$lte": [
{
"$toInt": {
"$at": [
{
"$split": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"x"
]
},
0
]
}
},
{
"$multiply": [
{
"$toInt": {
"$at": [
{
"$split": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"x"
]
},
1
]
}
},
16
]
}
]
},
{
"$lte": [
{
"$toInt": {
"$at": [
{
"$split": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"x"
]
},
1
]
}
},
{
"$multiply": [
{
"$toInt": {
"$at": [
{
"$split": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"x"
]
},
0
]
}
},
16
]
}
]
}
]
}
]
},
"message": "size 必须为 1K / 1.5K / 2K 或合法像素尺寸;像素总数 921600–4624220,比例 1:16–16:1。"
},
{
"assert": {
"$in": [
{
"$coalesce": [
{
"$ref": "request.providerOptions.km-kemei-seedream.response_format"
},
"url"
]
},
[
"url",
"b64_json"
]
]
},
"message": "response_format 仅支持 url / b64_json。"
},
{
"assert": {
"$in": [
{
"$coalesce": [
{
"$ref": "request.providerOptions.km-kemei-seedream.output_format"
},
"jpeg"
]
},
[
"jpeg",
"png"
]
]
},
"message": "output_format 仅支持 jpeg / png。"
},
{
"assert": {
"$in": [
{
"$coalesce": [
{
"$ref": "request.providerOptions.km-kemei-seedream.background"
},
"opaque"
]
},
[
"opaque",
"transparent"
]
]
},
"message": "background 仅支持 opaque / transparent。"
},
{
"assert": {
"$or": [
{
"$ne": [
{
"$coalesce": [
{
"$ref": "request.providerOptions.km-kemei-seedream.background"
},
"opaque"
]
},
"transparent"
]
},
{
"$and": [
{
"$eq": [
{
"$len": {
"$ref": "request.images"
}
},
1
]
},
{
"$eq": [
{
"$coalesce": [
{
"$ref": "request.providerOptions.km-kemei-seedream.output_format"
},
"jpeg"
]
},
"png"
]
}
]
}
]
},
"message": "透明背景仅用于一张带透明通道的参考图,输出必须为 png。"
},
{
"assert": {
"$in": [
{
"$coalesce": [
{
"$ref": "request.providerOptions.km-kemei-seedream.layer_decomposition"
},
false
]
},
[
true,
false
]
]
},
"message": "layer_decomposition 必须为布尔值。"
},
{
"assert": {
"$or": [
{
"$ne": [
{
"$coalesce": [
{
"$ref": "request.providerOptions.km-kemei-seedream.layer_decomposition"
},
false
]
},
true
]
},
{
"$and": [
{
"$eq": [
{
"$len": {
"$ref": "request.images"
}
},
1
]
},
{
"$in": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
[
"",
"auto",
"1k",
"1.5k",
"2k"
]
]
}
]
}
]
},
"message": "图层分解仅支持一张参考图,size 使用 1K / 1.5K / 2K / auto 档位。"
},
{
"assert": {
"$eq": [
{
"$ref": "request.providerOptions.km-kemei-seedream.sequential_image_generation"
},
null
]
},
"message": "sequential_image_generation 不适用于 Seedream 5.0 Pro / Flash,已拒绝请求。"
},
{
"assert": {
"$eq": [
{
"$ref": "request.providerOptions.km-kemei-seedream.sequential_image_generation_options"
},
null
]
},
"message": "sequential_image_generation_options 不适用于 Seedream 5.0 Pro / Flash,已拒绝请求。"
},
{
"assert": {
"$eq": [
{
"$ref": "request.providerOptions.km-kemei-seedream.web_search"
},
null
]
},
"message": "web_search 不适用于 Seedream 5.0 Pro / Flash,已拒绝请求。"
},
{
"assert": {
"$eq": [
{
"$ref": "request.providerOptions.km-kemei-seedream.stream"
},
null
]
},
"message": "stream 不适用于 Seedream 5.0 Pro / Flash,已拒绝请求。"
},
{
"assert": {
"$eq": [
{
"$ref": "request.providerOptions.km-kemei-seedream.tools"
},
null
]
},
"message": "tools 不适用于 Seedream 5.0 Pro / Flash,已拒绝请求。"
}
],
"create": {
"method": "POST",
"path": "/v1/images/generations",
"contentType": "application/json",
"body": {
"model": {
"$ref": "request.model"
},
"prompt": {
"$ref": "request.prompt"
},
"n": 1,
"size": {
"$if": {
"condition": {
"$eq": [
{
"$coalesce": [
{
"$ref": "request.providerOptions.km-kemei-seedream.layer_decomposition"
},
false
]
},
true
]
},
"then": {
"$if": {
"condition": {
"$in": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
[
"",
"auto"
]
]
},
"then": "auto",
"else": {
"$switch": {
"cases": [
{
"when": {
"$in": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
[
"",
"auto",
"2k"
]
]
},
"then": "2K"
},
{
"when": {
"$eq": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"1k"
]
},
"then": "1K"
},
{
"when": {
"$eq": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"1.5k"
]
},
"then": "1.5K"
},
{
"when": {
"$eq": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"1:1"
]
},
"then": "2048x2048"
},
{
"when": {
"$eq": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"4:3"
]
},
"then": "2368x1776"
},
{
"when": {
"$eq": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"3:4"
]
},
"then": "1776x2368"
},
{
"when": {
"$eq": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"16:9"
]
},
"then": "2816x1584"
},
{
"when": {
"$eq": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"9:16"
]
},
"then": "1584x2816"
},
{
"when": {
"$eq": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"3:2"
]
},
"then": "2496x1664"
},
{
"when": {
"$eq": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"2:3"
]
},
"then": "1664x2496"
},
{
"when": {
"$eq": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"21:9"
]
},
"then": "3136x1344"
}
],
"default": {
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
}
}
}
}
},
"else": {
"$switch": {
"cases": [
{
"when": {
"$in": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
[
"",
"auto",
"2k"
]
]
},
"then": "2K"
},
{
"when": {
"$eq": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"1k"
]
},
"then": "1K"
},
{
"when": {
"$eq": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"1.5k"
]
},
"then": "1.5K"
},
{
"when": {
"$eq": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"1:1"
]
},
"then": "2048x2048"
},
{
"when": {
"$eq": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"4:3"
]
},
"then": "2368x1776"
},
{
"when": {
"$eq": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"3:4"
]
},
"then": "1776x2368"
},
{
"when": {
"$eq": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"16:9"
]
},
"then": "2816x1584"
},
{
"when": {
"$eq": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"9:16"
]
},
"then": "1584x2816"
},
{
"when": {
"$eq": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"3:2"
]
},
"then": "2496x1664"
},
{
"when": {
"$eq": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"2:3"
]
},
"then": "1664x2496"
},
{
"when": {
"$eq": [
{
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
},
"21:9"
]
},
"then": "3136x1344"
}
],
"default": {
"$lower": {
"$trim": {
"$coalesce": [
{
"$ref": "request.aspectRatio"
},
"2k"
]
}
}
}
}
}
}
},
"image": {
"$omitEmpty": {
"$if": {
"condition": {
"$eq": [
{
"$len": {
"$ref": "request.images"
}
},
1
]
},
"then": {
"$first": {
"$map": {
"from": {
"$sortByOrder": {
"$ref": "request.images"
}
},
"as": "media",
"in": {
"$ref": "media.value"
}
}
}
},
"else": {
"$map": {
"from": {
"$sortByOrder": {
"$ref": "request.images"
}
},
"as": "media",
"in": {
"$ref": "media.value"
}
}
}
}
}
},
"response_format": {
"$coalesce": [
{
"$ref": "request.providerOptions.km-kemei-seedream.response_format"
},
"url"
]
},
"output_format": {
"$coalesce": [
{
"$ref": "request.providerOptions.km-kemei-seedream.output_format"
},
"jpeg"
]
},
"watermark": {
"$coalesce": [
{
"$ref": "request.providerOptions.km-kemei-seedream.watermark"
},
false
]
},
"background": {
"$coalesce": [
{
"$ref": "request.providerOptions.km-kemei-seedream.background"
},
"opaque"
]
},
"layer_decomposition": {
"$omitEmpty": {
"$ref": "request.providerOptions.km-kemei-seedream.layer_decomposition"
}
}
}
},
"response": {
"status": "succeeded",
"images": {
"$ref": "response.data"
},
"usage": {
"$ref": "response.usage"
},
"errorPaths": [
"error.code",
"error.message"
],
"messagePaths": [
"error.message"
]
}
}
]
},
"documentation": "<当前插件的完整 documentation,由 README.md 与 docs/interface.md 拼接而成;为避免 JSON 递归,此处不重复展开正文。>"
}