diff --git a/app/api/canvas/local-edit/route.ts b/app/api/canvas/local-edit/route.ts index 0aaabcf42..b18316821 100644 --- a/app/api/canvas/local-edit/route.ts +++ b/app/api/canvas/local-edit/route.ts @@ -400,6 +400,7 @@ function resolveScaleAdjustPreferredModelId(params: { configuredModelId: string; honorRequestedModelBeforeGpt?: boolean; preferMaskCapableGpt?: boolean; + preferProviderTypes?: string[]; requestedModelId: string; models: AiModelWithProviderForSelection[]; }) { @@ -437,6 +438,14 @@ function resolveScaleAdjustPreferredModelId(params: { return maskCapableGptImage2[0].model.id; } } + for (const providerType of params.preferProviderTypes || []) { + const providerCandidate = gptImage2Candidates.find( + (entry) => entry.provider.type === providerType + ); + if (providerCandidate) { + return providerCandidate.model.id; + } + } if (gptImage2Candidates[0]) { return gptImage2Candidates[0].model.id; } @@ -3771,6 +3780,8 @@ export async function POST(request: NextRequest) { : false; const preferScaleAdjustMaskCapableModel = hasScaleAdjustShrink && !hasScaleAdjustEnlarge; + const preferScaleAdjustProviderTypes = + hasScaleAdjustShrink && !hasScaleAdjustEnlarge ? ["grsai-gpt-image"] : []; const displayPrompt = buildLocalEditDisplayPrompt({ operation, scalePercent }); const resolvedAspectRatio = resolveLocalEditAspectRatio( body.aspectRatio, @@ -3790,6 +3801,7 @@ export async function POST(request: NextRequest) { configuredModelId: configuredDetailModel, honorRequestedModelBeforeGpt: hasScaleAdjustEnlarge, preferMaskCapableGpt: preferScaleAdjustMaskCapableModel, + preferProviderTypes: preferScaleAdjustProviderTypes, requestedModelId: requestedModel || "", models: scaleAdjustModelCandidates, })