
























@@ -52,6 +52,7 @@ const MAX_CODEX_IMAGE_BASE64_CHARS = 64 * 1024 * 1024;
5252const LOG_VALUE_MAX_CHARS = 256;
5353const MOCK_OPENAI_PROVIDER_ID = "mock-openai";
5454const OPENAI_OUTPUT_FORMATS = ["png", "jpeg", "webp"] as const;
55+const OPENAI_BACKGROUNDS = ["transparent", "opaque", "auto"] as const;
5556const OPENAI_QUALITIES = ["low", "medium", "high", "auto"] as const;
5657const OPENAI_IMAGE_MODELS = [
5758DEFAULT_OPENAI_IMAGE_MODEL,
@@ -174,10 +175,11 @@ function appendOpenAIImageOptions(
174175req: Parameters<ImageGenerationProvider["generateImage"]>[0],
175176): void {
176177const openai = req.providerOptions?.openai;
178+const background = openai?.background ?? req.background;
177179const entries: Record<string, unknown> = {
178180 ...(req.quality !== undefined ? { quality: req.quality } : {}),
179181 ...(req.outputFormat !== undefined ? { output_format: req.outputFormat } : {}),
180- ...(openai?.background !== undefined ? { background: openai.background } : {}),
182+ ...(background !== undefined ? { background } : {}),
181183 ...(openai?.moderation !== undefined ? { moderation: openai.moderation } : {}),
182184 ...(openai?.outputCompression !== undefined
183185 ? { output_compression: openai.outputCompression }
@@ -201,7 +203,7 @@ function resolveOpenAIImageRequestModel(
201203if (
202204options?.allowTransparentDefaultReroute === true &&
203205model === DEFAULT_OPENAI_IMAGE_MODEL &&
204-req.providerOptions?.openai?.background === "transparent"
206+(req.providerOptions?.openai?.background ?? req.background) === "transparent"
205207) {
206208return OPENAI_TRANSPARENT_BACKGROUND_IMAGE_MODEL;
207209}
@@ -513,6 +515,7 @@ function createOpenAIImageGenerationProviderBase(params: {
513515output: {
514516formats: [...OPENAI_OUTPUT_FORMATS],
515517qualities: [...OPENAI_QUALITIES],
518+backgrounds: [...OPENAI_BACKGROUNDS],
516519},
517520},
518521generateImage: params.generateImage,
@@ -580,6 +583,7 @@ async function generateOpenAICodexImage(params: {
580583const size = req.size ?? DEFAULT_SIZE;
581584const timeoutMs = resolveOpenAIImageTimeoutMs(req.timeoutMs);
582585const openai = req.providerOptions?.openai;
586+const background = openai?.background ?? req.background;
583587headers.set("Content-Type", "application/json");
584588const content: Array<Record<string, unknown>> = [
585589{ type: "input_text", text: req.prompt },
@@ -610,7 +614,7 @@ async function generateOpenAICodexImage(params: {
610614 size,
611615 ...(req.quality !== undefined ? { quality: req.quality } : {}),
612616 ...(req.outputFormat !== undefined ? { output_format: req.outputFormat } : {}),
613- ...(openai?.background !== undefined ? { background: openai.background } : {}),
617+ ...(background !== undefined ? { background } : {}),
614618 ...(openai?.outputCompression !== undefined
615619 ? { output_compression: openai.outputCompression }
616620 : {}),
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。