From 360cba08739c2500fca3615dde7d39be57166b2f Mon Sep 17 00:00:00 2001 From: 134 Date: Sat, 4 Jul 2026 11:26:29 +0800 Subject: [PATCH] fix: avoid false seam rejection on scale shrink --- lib/canvas/generate-image.ts | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/canvas/generate-image.ts b/lib/canvas/generate-image.ts index 981dd721a..e29df494e 100644 --- a/lib/canvas/generate-image.ts +++ b/lib/canvas/generate-image.ts @@ -206,6 +206,8 @@ const SCALE_ADJUST_RECTANGULAR_SEAM_PAIR_RUN_RATIO = 0.11; const SCALE_ADJUST_RECTANGULAR_SEAM_PAIR_TRANSITION_RATIO = 0.18; const SCALE_ADJUST_RECTANGULAR_SEAM_STRONG_RUN_RATIO = 0.1; const SCALE_ADJUST_RECTANGULAR_SEAM_STRONG_TRANSITION_RATIO = 0.26; +const SCALE_ADJUST_RECTANGULAR_SEAM_VERY_STRONG_RUN_RATIO = 0.55; +const SCALE_ADJUST_RECTANGULAR_SEAM_VERY_STRONG_TRANSITION_RATIO = 0.5; const SUPPORTED_CANVAS_PROVIDER_TYPES = new Set([ "gemini", @@ -1147,9 +1149,26 @@ async function getScaleAdjustRectangularSeamStats(params: { SCALE_ADJUST_RECTANGULAR_SEAM_STRONG_RUN_RATIO && bestHorizontal.transitionRatio >= SCALE_ADJUST_RECTANGULAR_SEAM_STRONG_TRANSITION_RATIO; + const verticalVeryStrong = + bestVertical && + bestVertical.maxRunRatio >= + SCALE_ADJUST_RECTANGULAR_SEAM_VERY_STRONG_RUN_RATIO && + bestVertical.transitionRatio >= + SCALE_ADJUST_RECTANGULAR_SEAM_VERY_STRONG_TRANSITION_RATIO; + const horizontalVeryStrong = + bestHorizontal && + bestHorizontal.maxRunRatio >= + SCALE_ADJUST_RECTANGULAR_SEAM_VERY_STRONG_RUN_RATIO && + bestHorizontal.transitionRatio >= + SCALE_ADJUST_RECTANGULAR_SEAM_VERY_STRONG_TRANSITION_RATIO; return { - detected: Boolean((verticalPair && horizontalPair) || verticalStrong || horizontalStrong), + detected: Boolean( + (verticalPair && horizontalPair) || + (verticalStrong && horizontalStrong) || + verticalVeryStrong || + horizontalVeryStrong + ), horizontal: bestHorizontal, lineStep, protectedBoxCount: protectedBoxes.length,