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
Some checks failed
Build & Push Docker Image / build-and-push (push) Has been cancelled
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user