fix: use marked guide for alibaba scale adjust

This commit is contained in:
134 2026-07-02 20:44:14 +08:00
parent 7c8ae2fe8b
commit 56240d4a6d

View File

@ -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 控件、半透明色块、选区边框、白边、画幅压扁、画面拉伸、主体截断、动物截断、缺头、缺尾巴、缺四肢、贴边裁切、矩形贴片、硬边、拼接线、补丁感、色差边缘、背景错位、地面纹理断裂、椅脚错位",