From 6f8713a3172d6d9ba66efd30078fed6d8c70849e Mon Sep 17 00:00:00 2001 From: InpaintRegionEditor Dev Date: Tue, 3 Mar 2026 18:29:25 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=80=89=E5=8C=BA?= =?UTF-8?q?=E5=9D=90=E6=A0=87=E5=90=8C=E6=AD=A5=E5=88=B0=E5=90=8E=E7=AB=AF?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 onNodeCreated 和 configure 中创建 region_coords hidden widget - 确保节点从工作流加载时 widget 也存在 - 修复蒙版边界检测:alpha < 255 都计入边界 --- web/extension.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/web/extension.js b/web/extension.js index bf262b0..de0f638 100644 --- a/web/extension.js +++ b/web/extension.js @@ -1250,6 +1250,16 @@ app.registerExtension({ const node = this; + // 确保 region_coords hidden widget 存在 + let coordsWidget = node.widgets?.find(w => w.name === "region_coords"); + if (!coordsWidget) { + // ComfyUI hidden widget 需要手动创建 + coordsWidget = node.addWidget("STRING", "region_coords", "{}", () => {}, { + serialize: true, + hidden: true + }); + } + // 监听图像变化 const imgW = node.widgets?.find(w => w.name === "image"); if (imgW) { @@ -1276,6 +1286,21 @@ app.registerExtension({ } }; + // 从工作流加载时确保 widget 存在 + const origConfigure = nodeType.prototype.configure; + nodeType.prototype.configure = function(info) { + if (origConfigure) origConfigure.apply(this, arguments); + + const node = this; + // 确保 region_coords widget 存在 + let coordsWidget = node.widgets?.find(w => w.name === "region_coords"); + if (!coordsWidget) { + coordsWidget = node.addWidget("STRING", "region_coords", "{}", () => {}, { + serialize: true + }); + } + }; + // 鼠标事件 const origMouseDown = nodeType.prototype.onMouseDown; nodeType.prototype.onMouseDown = function(e, pos, canvas) {