fix: use grok-imagine-1.0-edit model for grok2 image editing with reference images
Some checks failed
Build & Push Docker Image / build-and-push (push) Has been cancelled

This commit is contained in:
shiyue
2026-03-11 23:23:24 +00:00
parent 584e7e3cdf
commit f9d3e64146

View File

@@ -6,6 +6,7 @@ import {
resolveOpenAICompatClientConfig, resolveOpenAICompatClientConfig,
toUploadFile, toUploadFile,
} from './common' } from './common'
import { getProviderKey } from '@/lib/api-config'
type OpenAIImageResponseFormat = 'url' | 'b64_json' type OpenAIImageResponseFormat = 'url' | 'b64_json'
type OpenAIImageOutputFormat = 'png' | 'jpeg' | 'webp' type OpenAIImageOutputFormat = 'png' | 'jpeg' | 'webp'
@@ -154,13 +155,13 @@ export async function generateImageViaOpenAICompat(request: OpenAICompatImageReq
const rawSize = resolveRawSize(options) const rawSize = resolveRawSize(options)
const size = normalizeOpenAIImageSize(rawSize) const size = normalizeOpenAIImageSize(rawSize)
// Grok2 暂不支持图片编辑接口,忽略参考图 // grok2 图片编辑需使用专用 edit 模型
const providerKey = providerId.split('-')[0] const providerKey = getProviderKey(providerId)
const shouldUseReferenceImages = referenceImages.length > 0 && providerKey !== 'grok2' const editModelId = providerKey === 'grok2' ? 'grok-imagine-1.0-edit' : normalizedModelId
if (shouldUseReferenceImages) { if (referenceImages.length > 0) {
const response = await client.images.edit({ const response = await client.images.edit({
model: normalizedModelId, model: editModelId,
prompt, prompt,
image: await Promise.all(referenceImages.map((image, index) => toUploadFile(image, index))), image: await Promise.all(referenceImages.map((image, index) => toUploadFile(image, index))),
response_format: responseFormat, response_format: responseFormat,