fix(protocol): 火山方舟 Seedream - 比例值换算为像素尺寸再发给上游 (#400)

This commit is contained in:
Dade
2026-09-02 20:19:48 +08:00
committed by GitHub
parent 441d44e6d2
commit e4e81541a0
3 changed files with 42 additions and 1 deletions

View File

@@ -249,11 +249,18 @@ add({
response: { status: "succeeded", images: map(ref("response.data"), "item", { url: omit(ref("item.url")), dataUrl: conditional(ref("item.b64_json"), { $concat: ["data:image/png;base64,", ref("item.b64_json")] }) }), errorPaths: ["error.code"], messagePaths: ["error.message"] }
});
const arkSeedreamRatioSizes = [
["auto", "2k"], ["1:1", "2048x2048"], ["4:3", "2304x1728"], ["3:4", "1728x2304"], ["16:9", "2560x1440"], ["9:16", "1440x2560"],
["3:2", "2496x1664"], ["2:3", "1664x2496"], ["21:9", "3024x1296"]
];
add({
id: "volcengine-ark-seedream", providerId: "volcengine-ark-image", name: "Volcengine Ark Seedream Images", vendor: "Volcengine", capability: "image",
baseUrl: "https://ark.cn-beijing.volces.com", auth: bearer, params: imageParams,
create: jsonCreate("/api/v3/images/generations", {
model: ref("request.model"), prompt: ref("request.prompt"), size: omit(ref("request.aspectRatio")),
model: ref("request.model"), prompt: ref("request.prompt"),
// Ark 的 size 只接受 WIDTHxHEIGHT 或 2k/3k/4k;统一层的比例值在这里换算成 2K 档像素尺寸,像素或档位值原样透传。
size: omit({ $switch: { cases: arkSeedreamRatioSizes.map(([ratio, size]) => ({ when: eq(ref("request.aspectRatio"), ratio), then: size })), default: ref("request.aspectRatio") } }),
image: omit(map(ref("request.images"), "media", ref("media.value"))),
sequential_image_generation: omit(ref("request.providerOptions.volcengine-ark-image.sequential_image_generation")),
sequential_image_generation_options: omit(ref("request.providerOptions.volcengine-ark-image.sequential_image_generation_options")),