From d068920fd52698fd4d537b9ba21bbabd87706a1a Mon Sep 17 00:00:00 2001 From: InpaintRegionEditor Dev Date: Tue, 3 Mar 2026 20:56:31 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=88=B7=E6=96=B0=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E5=90=8E=E4=BB=8E=20widgets=5Fvalues=20=E6=81=A2=E5=A4=8D=20re?= =?UTF-8?q?gion=5Fcoords?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/extension.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/web/extension.js b/web/extension.js index 5180b1d..7d66b9f 100644 --- a/web/extension.js +++ b/web/extension.js @@ -776,9 +776,21 @@ async function loadImageAndDetectMask(node, imageName) { // 检查是否有之前保存的选区坐标 const coordsWidget = node.widgets?.find(w => w.name === "region_coords"); - if (coordsWidget?.value) { + let savedRegionStr = coordsWidget?.value; + + // 如果 widget 值为空,尝试从 widgets_values 读取 + if (!savedRegionStr || savedRegionStr === "{}") { + // widgets_values 顺序:image, padding, region_coords + const coordsIdx = node.widgets?.findIndex(w => w.name === "region_coords"); + if (coordsIdx >= 0 && node.widgets_values?.[coordsIdx]) { + savedRegionStr = node.widgets_values[coordsIdx]; + coordsWidget.value = savedRegionStr; // 恢复到 widget + } + } + + if (savedRegionStr && savedRegionStr !== "{}") { try { - const savedRegion = JSON.parse(coordsWidget.value); + const savedRegion = JSON.parse(savedRegionStr); if (savedRegion.x !== undefined && savedRegion.y !== undefined && savedRegion.width !== undefined && savedRegion.height !== undefined) { data.regionX = savedRegion.x;