diff --git a/VERSION b/VERSION index ffbe9e2..fb2c076 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.12.9 +2.13.0 diff --git a/src/providers/grok/grok-core.js b/src/providers/grok/grok-core.js index 4054eb9..a88e08d 100644 --- a/src/providers/grok/grok-core.js +++ b/src/providers/grok/grok-core.js @@ -42,8 +42,10 @@ const CORE_MODEL_MAPPING = { 'grok-4.20-fast': { name: 'grok-420', mode: 'MODEL_MODE_FAST', modeId: 'fast' }, 'grok-4.20-expert': { name: 'grok-420', mode: 'MODEL_MODE_EXPERT', modeId: 'expert' }, 'grok-4.20-heavy': { name: 'grok-420', mode: 'MODEL_MODE_HEAVY', modeId: 'heavy' }, - 'grok-imagine-1.0': { name: 'imagine-image', mode: 'MODEL_MODE_FAST', modeId: 'fast' }, - 'grok-imagine-1.0-edit': { name: 'imagine-image-edit', mode: 'MODEL_MODE_FAST', modeId: 'fast' }, + 'grok-imagine-1.0-fast': { name: 'imagine-image', mode: 'MODEL_MODE_FAST', modeId: 'fast' }, + 'grok-imagine-1.0-fast-edit': { name: 'imagine-image', mode: 'MODEL_MODE_FAST', modeId: 'fast' }, + 'grok-imagine-1.0': { name: 'imagine-image', mode: 'MODEL_MODE_FAST', modeId: 'expert' }, + 'grok-imagine-1.0-edit': { name: 'imagine-image', mode: 'MODEL_MODE_FAST', modeId: 'expert' }, // 'grok-imagine-1.0-video': { name: 'grok-3', mode: 'MODEL_MODE_FAST', modeId: 'fast' } }; @@ -541,10 +543,7 @@ export class GrokApiService { const isMediaModel = modelLower.includes('imagine') || isVideoModel || isEditModel; const isNsfw = isGrokNsfwModel(rawModelId) || requestBody.nsfw === true || requestBody.disableNsfwFilter === true; - const shouldEnableImage = isMediaModel || - modelLower.includes('expert') || - modelLower.includes('fast') || - modelLower.includes('grok-3') || + const shouldEnableImage = (modelLower.includes('imagine') || modelLower.includes('edit')) && !modelLower.includes('video') || requestBody.enableImageGeneration === true; const imageGenerationCount = Math.min(parseInt(requestBody.n || requestBody.imageGenerationCount || (shouldEnableImage ? 2 : 0)), 2); @@ -913,7 +912,7 @@ export class GrokApiService { const n = parseInt(requestBody.n || 1); const normalizedModel = normalizeGrokModelId(model); const modelLower = normalizedModel.toLowerCase(); - const isImagine = modelLower.includes('imagine'); + const isImagine = (modelLower.includes('imagine') || modelLower.includes('edit')) && !modelLower.includes('video'); // 识别优先使用 WS 的模型 (仅限图片生成,排除视频) // const isWSPreferred = isImagine && !modelLower.includes('video'); @@ -1261,7 +1260,7 @@ export class GrokApiService { const rawModel = typeof model === 'string' ? model : ''; const normalizedModel = normalizeGrokModelId(rawModel); const modelLower = normalizedModel.toLowerCase(); - const isImagine = modelLower.includes('imagine') || modelLower.includes('edit'); + const isImagine = (modelLower.includes('imagine') || modelLower.includes('edit')) && !modelLower.includes('video'); // 识别优先使用 WS 的模型 (仅限图片生成,排除视频) // const isWSPreferred = isImagine && !modelLower.includes('video'); const isNsfw = isGrokNsfwModel(rawModel) || requestBody.nsfw === true || requestBody.disableNsfwFilter === true; diff --git a/src/providers/provider-models.js b/src/providers/provider-models.js index 267be9c..b8fa6ba 100644 --- a/src/providers/provider-models.js +++ b/src/providers/provider-models.js @@ -103,6 +103,8 @@ export const PROVIDER_MODELS = { 'grok-4.20-heavy', 'grok-imagine-1.0', 'grok-imagine-1.0-edit', + 'grok-imagine-1.0-fast', + 'grok-imagine-1.0-fast-edit', 'grok-4.1-mini-nsfw', 'grok-4.1-thinking-nsfw', 'grok-4.20-nsfw', @@ -111,7 +113,9 @@ export const PROVIDER_MODELS = { 'grok-4.20-expert-nsfw', 'grok-4.20-heavy-nsfw', 'grok-imagine-1.0-nsfw', - 'grok-imagine-1.0-edit-nsfw' + 'grok-imagine-1.0-edit-nsfw', + 'grok-imagine-1.0-fast-nsfw', + 'grok-imagine-1.0-fast-edit-nsfw' ] };