From f9d3e6414662a21c7a210ab50647dcef2e5ef2e8 Mon Sep 17 00:00:00 2001 From: shiyue Date: Wed, 11 Mar 2026 23:23:24 +0000 Subject: [PATCH] fix: use grok-imagine-1.0-edit model for grok2 image editing with reference images --- src/lib/model-gateway/openai-compat/image.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/lib/model-gateway/openai-compat/image.ts b/src/lib/model-gateway/openai-compat/image.ts index 021f143..91a7d4c 100644 --- a/src/lib/model-gateway/openai-compat/image.ts +++ b/src/lib/model-gateway/openai-compat/image.ts @@ -6,6 +6,7 @@ import { resolveOpenAICompatClientConfig, toUploadFile, } from './common' +import { getProviderKey } from '@/lib/api-config' type OpenAIImageResponseFormat = 'url' | 'b64_json' type OpenAIImageOutputFormat = 'png' | 'jpeg' | 'webp' @@ -154,13 +155,13 @@ export async function generateImageViaOpenAICompat(request: OpenAICompatImageReq const rawSize = resolveRawSize(options) const size = normalizeOpenAIImageSize(rawSize) - // Grok2 暂不支持图片编辑接口,忽略参考图 - const providerKey = providerId.split('-')[0] - const shouldUseReferenceImages = referenceImages.length > 0 && providerKey !== 'grok2' + // grok2 图片编辑需使用专用 edit 模型 + const providerKey = getProviderKey(providerId) + const editModelId = providerKey === 'grok2' ? 'grok-imagine-1.0-edit' : normalizedModelId - if (shouldUseReferenceImages) { + if (referenceImages.length > 0) { const response = await client.images.edit({ - model: normalizedModelId, + model: editModelId, prompt, image: await Promise.all(referenceImages.map((image, index) => toUploadFile(image, index))), response_format: responseFormat,