From 56240d4a6d6fe42861b90c506f4f1358884a2191 Mon Sep 17 00:00:00 2001 From: 134 Date: Thu, 2 Jul 2026 20:44:14 +0800 Subject: [PATCH] fix: use marked guide for alibaba scale adjust --- app/api/canvas/local-edit/route.ts | 48 +++++++++++++++++++----------- 1 file changed, 30 insertions(+), 18 deletions(-) diff --git a/app/api/canvas/local-edit/route.ts b/app/api/canvas/local-edit/route.ts index d03e50bc2..1c2b9fd76 100644 --- a/app/api/canvas/local-edit/route.ts +++ b/app/api/canvas/local-edit/route.ts @@ -2030,15 +2030,22 @@ export async function POST(request: NextRequest) { const scaleAdjustModelFamily = getScaleAdjustModelFamily( resolvedScaleAdjustModelEntry ); + const useProviderMarkedPhotoCoordinatePrompt = + isScaleAdjustOperation && + resolvedScaleAdjustModelEntry?.provider?.type === "alibaba-image"; + const useScaleAdjustCoordinatePrompt = + useScaleAdjustCoordinateGuide || useProviderMarkedPhotoCoordinatePrompt; const useFalScaleAdjustCoordinatePrompt = - useScaleAdjustCoordinateGuide && + useScaleAdjustCoordinatePrompt && resolvedScaleAdjustModelEntry?.provider?.type === "fal-image"; const useScaleAdjustVisualLayoutGuide = - useScaleAdjustCoordinateGuide && !useFalScaleAdjustCoordinatePrompt; + useScaleAdjustCoordinatePrompt && + !useFalScaleAdjustCoordinatePrompt && + !useProviderMarkedPhotoCoordinatePrompt; const useScaleAdjustMarkedPhotoGuide = - useScaleAdjustCoordinateGuide && !useScaleAdjustVisualLayoutGuide; + useScaleAdjustCoordinatePrompt && !useScaleAdjustVisualLayoutGuide; const annotatedBuffer = isScaleAdjustOperation - ? useScaleAdjustCoordinateGuide + ? useScaleAdjustCoordinatePrompt ? useScaleAdjustVisualLayoutGuide ? await buildScaleAdjustVisualLayoutGuideBuffer({ regions, @@ -2113,7 +2120,9 @@ export async function POST(request: NextRequest) { : null; const shouldCreateScaleAdjustCropReferences = isScaleAdjustOperation && - (useScaleAdjustVisualLayoutGuide || !useScaleAdjustCoordinateGuide); + (useScaleAdjustVisualLayoutGuide || + !useScaleAdjustCoordinatePrompt || + (useScaleAdjustMarkedPhotoGuide && !useFalScaleAdjustCoordinatePrompt)); const scaleAdjustCropReferences: ScaleAdjustCropReference[] = shouldCreateScaleAdjustCropReferences ? await createScaleAdjustCropReferences({ @@ -2124,7 +2133,7 @@ export async function POST(request: NextRequest) { }) : []; const prompt = isScaleAdjustOperation - ? useScaleAdjustCoordinateGuide + ? useScaleAdjustCoordinatePrompt ? buildScaleAdjustCoordinatePrompt( regions, scalePercent, @@ -2202,7 +2211,7 @@ export async function POST(request: NextRequest) { annotatedReferenceUrl: annotatedUpload.url, annotatedReferenceSentToModel: isScaleAdjustOperation, annotatedReferenceType: isScaleAdjustOperation - ? useScaleAdjustCoordinateGuide + ? useScaleAdjustCoordinatePrompt ? useScaleAdjustVisualLayoutGuide ? "scale-adjust-visual-layout-guide" : useScaleAdjustMarkedPhotoGuide @@ -2229,16 +2238,17 @@ export async function POST(request: NextRequest) { resolvedScaleAdjustModelEntry?.provider?.type || null, scaleAdjustModelFamily: scaleAdjustModelFamily || null, scaleAdjustCoordinateGuideApplied: useScaleAdjustCoordinateGuide, + scaleAdjustCoordinatePromptApplied: useScaleAdjustCoordinatePrompt, scaleAdjustNeutralCoordinateMapApplied: isScaleAdjustOperation && - useScaleAdjustCoordinateGuide && + useScaleAdjustCoordinatePrompt && !useScaleAdjustMarkedPhotoGuide && !useScaleAdjustVisualLayoutGuide, scaleAdjustMarkedPhotoGuideApplied: useScaleAdjustMarkedPhotoGuide, scaleAdjustFalMarkedPhotoGuideApplied: useFalScaleAdjustCoordinatePrompt, scaleAdjustVisualLayoutGuideApplied: isScaleAdjustOperation && - (!useScaleAdjustCoordinateGuide || useScaleAdjustVisualLayoutGuide), + (!useScaleAdjustCoordinatePrompt || useScaleAdjustVisualLayoutGuide), falScaleAdjustCoordinateGuideApplied: useScaleAdjustCoordinateGuide && resolvedScaleAdjustModelEntry?.provider?.type === "fal-image", @@ -2265,13 +2275,15 @@ export async function POST(request: NextRequest) { scaleAdjustTargetRegionCount: regions.filter((region) => region.targetRect) .length, scaleAdjustPromptStrategy: isScaleAdjustOperation - ? useScaleAdjustCoordinateGuide - ? useFalScaleAdjustCoordinatePrompt - ? "fal-safe-marked-photo-box-guide-no-old-crop-v44-one-shot" - : useScaleAdjustVisualLayoutGuide - ? "same-name-focused-layout-crop-guide-v54-one-shot" - : "same-name-marked-photo-box-guide-no-old-crop-v45-one-shot" - : "locked-plate-semantic-target-map-no-old-crop-v15" + ? useFalScaleAdjustCoordinatePrompt + ? "fal-safe-marked-photo-box-guide-no-old-crop-v44-one-shot" + : useScaleAdjustVisualLayoutGuide + ? "same-name-focused-layout-crop-guide-v54-one-shot" + : useProviderMarkedPhotoCoordinatePrompt + ? "provider-marked-photo-crop-guide-v60-one-shot" + : useScaleAdjustMarkedPhotoGuide + ? "same-name-marked-photo-box-guide-no-old-crop-v45-one-shot" + : "locked-plate-semantic-target-map-no-old-crop-v15" : undefined, scaleAdjustPostCompositeApplied: false, scaleAdjustUsesFullFrameOutput: isScaleAdjustOperation, @@ -2282,7 +2294,7 @@ export async function POST(request: NextRequest) { displayPrompt, falSafetyTolerance: useScaleAdjustCoordinateGuide ? "6" : undefined, falSystemPrompt: - useScaleAdjustCoordinateGuide + useScaleAdjustCoordinatePrompt ? buildScaleAdjustCoordinateSystemPrompt() : undefined, falThinkingLevel: useScaleAdjustCoordinateGuide ? "high" : undefined, @@ -2294,7 +2306,7 @@ export async function POST(request: NextRequest) { model: resolvedModel || undefined, negativePrompt: isScaleAdjustOperation - ? useScaleAdjustCoordinateGuide + ? useScaleAdjustCoordinatePrompt ? scaleAdjustCoordinateNegativePrompt : "彩色框、蓝色边框、绿色边框、红色边框、橙色边框、矩形框、箭头、连线、角点、编号圆点、提示词气泡、标注文字、UI 控件、半透明色块、蓝色色块、色条、灰底坐标图、目标占位叠图、淡化痕迹、选区边框、白边、画幅压扁、画面拉伸、整张图缩放、全图放大、全图裁切、全图平移、文字位置变化、文字内容变化、文字模糊、Logo位置变化、主体拉伸、主体压扁、主体变窄、主体变高但变窄、横向挤压、纵向拉伸、透视变形、矩形贴片、硬边、拼接线、补丁感、局部裁切、色差边缘、背景断裂、背景错位、窗框错位、文字错位、地毯纹理错位、非主体背景重绘、主体未缩放、整块框选区域缩放" : "彩色框、蓝色边框、绿色边框、红色边框、橙色边框、矩形框、编号圆点、提示词气泡、标注文字、UI 控件、半透明色块、选区边框、白边、画幅压扁、画面拉伸、主体截断、动物截断、缺头、缺尾巴、缺四肢、贴边裁切、矩形贴片、硬边、拼接线、补丁感、色差边缘、背景错位、地面纹理断裂、椅脚错位",