From ea632a54d1560a47362d6faa813434d78692f490 Mon Sep 17 00:00:00 2001 From: rui40000 Date: Mon, 17 Aug 2026 14:42:12 +0800 Subject: [PATCH] =?UTF-8?q?style:=20Unmult=20=E7=9A=84=E9=BB=91=E7=82=B9/?= =?UTF-8?q?=E7=99=BD=E7=82=B9=E6=94=B9=E4=B8=BA=E4=B8=AD=E6=96=87=E6=BB=91?= =?UTF-8?q?=E5=9D=97=EF=BC=8C=E4=B8=8E=20LayerStyle=20=E8=A7=82=E6=84=9F?= =?UTF-8?q?=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 两项参数加 "display": "slider",界面从带箭头的数字框变成滑块; 参数名直接用中文「黑点」「白点」,这样不依赖 i18n 语言包, 任何语言环境下都显示中文(LayerStyle 显示中文是靠它自带的翻译文件)。 中文名无法作为函数形参,故 unmult() 改用 **kwargs 接收, 同时兼容旧的 alpha_low / alpha_high,早先保存的工作流不会失配。 验证:display=slider 生效、tooltip 保留、取值范围与步进不变; 黑点 0.2 使全透明占比 0.031→0.219,白点 0.7 使全不透明占比 0.016→0.312,参数确实起作用;旧英文名调用照常工作。 Co-Authored-By: Claude Opus 4.8 --- README.md | 6 ++++-- unmult_node.py | 18 +++++++++++++++--- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index cfeaeff..df95adf 100644 --- a/README.md +++ b/README.md @@ -1201,8 +1201,10 @@ Unity/Godot 归一化 pivot(左下为原点):(0.5411, 0.0699) **输入参数**: - `image` (IMAGE): 待去底图像,支持批量(序列帧/视频帧逐帧处理) - `bg_color` (STRING): 要去除的背景色,`#RRGGBB`。常用 `#000000` / `#FFFFFF` / `#00FF00` / `#FF00FF` -- `alpha_low` (FLOAT): 黑点,低于此值的 alpha 归零,用于清除背景残留噪点 -- `alpha_high` (FLOAT): 白点,高于此值的 alpha 归一,用于让主体更实 +- `黑点` (FLOAT, 滑块): 低于此值的 alpha 归零,用于清除背景残留噪点。调太高会丢边缘细节 +- `白点` (FLOAT, 滑块): 高于此值的 alpha 归一,用于让主体更实。调太低会让边缘硬化 + +后两项用中文参数名 + `display: slider`,界面上就是两条滑块,与 LayerStyle 的 BiRefNet Ultra 观感一致。函数内部用 `**kwargs` 接收(中文名不能直接做函数形参),并兼容旧的 `alpha_low`/`alpha_high` 调用。 **输出**: `rgba_image` (IMAGE,4 通道) / `alpha` (MASK) diff --git a/unmult_node.py b/unmult_node.py index deaceac..bfac7a4 100644 --- a/unmult_node.py +++ b/unmult_node.py @@ -82,13 +82,18 @@ class RuiUnmult: "常用值:#000000(黑底)、#FFFFFF(白底)、" "#00FF00(绿幕)、#FF00FF(品红)。" }), - "alpha_low": ("FLOAT", { + # 用中文参数名 + display:slider,界面上就是「黑点/白点」两条滑块, + # 与 LayerStyle 的 BiRefNet Ultra 观感一致。 + # 中文名不能直接做函数形参,故 unmult() 统一用 **kwargs 接收。 + "黑点": ("FLOAT", { "default": 0.0, "min": 0.0, "max": 0.5, "step": 0.01, + "display": "slider", "tooltip": "黑点(主体保护):低于此值的 alpha 强制归零。\n" "调高可清除背景残留噪点,但过高会丢失边缘细节。" }), - "alpha_high": ("FLOAT", { + "白点": ("FLOAT", { "default": 1.0, "min": 0.3, "max": 1.0, "step": 0.01, + "display": "slider", "tooltip": "白点(主体保护):高于此值的 alpha 强制归一。\n" "调低可让主体更实、减少半透明损失,但过低会让边缘硬化。" }), @@ -100,7 +105,14 @@ class RuiUnmult: FUNCTION = "unmult" CATEGORY = "Rui-Node🐶/抠图✂️" - def unmult(self, image, bg_color, alpha_low, alpha_high): + def unmult(self, **kwargs): + # 「黑点/白点」是中文参数名,无法直接写进函数签名,统一从 kwargs 取。 + # 同时兼容旧的英文名,避免早先保存的工作流失配。 + image = kwargs.get("image") + bg_color = kwargs.get("bg_color", "#000000") + alpha_low = kwargs.get("黑点", kwargs.get("alpha_low", 0.0)) + alpha_high = kwargs.get("白点", kwargs.get("alpha_high", 1.0)) + bg_rgb = _hex_to_rgb01(bg_color) B, H, W, C = image.shape