4 Commits
Author SHA1 Message Date
rui40000andClaude Opus 4.8 5d3834503e fix: 八方向拆分不再切断角色;全仓库参数补齐中文 tooltip
【修复】角色被格线切断(脚、手杖、飘起的斗篷被削掉)
新增 expand_beyond_cell(默认开启):格子只用来判定「这是哪个方向」,
角色的实际范围由它自身的连通区域决定,按质心归属确保邻居不混入。
实测 8/8 方向的裁剪框边缘 alpha 从 1.00(内容顶到边界=被切断)
降到 0.00,S 方向高度 326→356、E 方向宽度 150→188 把缺的部分找了回来。
代价是需要两遍扫描(先求全序列并集框再提取),耗时 4.7s→14.9s。

【规则】每个参数都必须有中文 tooltip,作为以后的统一约定
全仓库 26 个节点 169 个参数,此前缺 115 个,现已 100% 覆盖。
tooltip 写「怎么调」而不只是「是什么」:给取值区间的实际影响、
推荐值与踩坑提示(如 OpenAI/ZenMux 的地址栏不能带 :// ,
素材拆分节点用于动画序列时顺序会漂移等)。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-29 19:07:01 +08:00
rui40000 aebbe87c16 docs: 标注 caption 与 point_mask 的权重差异,并加运行时警告
实测发现 SDMatte 与 SDMatte*(plus) 两个权重能力不同,根源是官方 README
所载的训练集差异:前者含 RefMatte(指代表达式抠图,点/文本提示的来源),
后者用 COCO-Matte 替换了它。

实测(官方效果图羊驼,MAD 越低越好):
- point_mask:SDMatte 正常(0.0135);SDMatte_plus 输出全黑(max 仅 0.079)
- caption   :SDMatte 上语义有效,'alpaca' 0.01072 优于留空 0.01120、'tree' 0.01111;
              SDMatte_plus 上语义失效甚至反向,'alpaca' 0.01160 反差于 'tree' 0.01119,
              即仅为 cross-attention 的噪声扰动

据此:
- 补全 caption / point_radius / prompt_type 的 tooltip,写明各自的适用权重与含义
- README 增列两个权重的能力对照表与 caption 实测数据
- point_mask 输出接近全黑时打印警告 —— 该情形不报错,只会悄悄给出空结果
2026-07-16 11:48:35 +08:00
rui40000 c6acb9f7d4 fix: 修复 RGBA 输入导致的通道数报错
抠图类节点(BiRefNet Ultra V2、RMBG 等)的 image 输出为 4 通道 RGBA,
此前节点直接把它喂给 VAE 编码器,触发:
  Given groups=1, weight of size [128, 3, 3, 3],
  expected input[1, 4, 1024, 1024] to have 3 channels, but got 4 channels instead

现按 ComfyUI 惯例收敛输入通道:RGBA 丢弃 alpha、灰度扩成三通道、
其余通道数给出可读报错而非让 VAE 抛形状错误。

BiRefNetUltraV2 的 image 输出由 RGB2RGBA(原图, mask) 合成,RGB 三通道
未被 premultiply,因此丢弃 alpha 后即还原原图 —— 实测 RGBA 与 RGB 输入
的输出逐像素完全一致(最大差异 0.00000000),该接法无需调整工作流。
2026-07-16 11:26:09 +08:00
rui40000andClaude Opus 4.8 e1a575fcda feat: 新增 SDMatte 精细抠图节点,实测复现官方效果
基于 SDMatte(vivo 相机研究院,ICCV 2025)的交互式抠图节点,
擅长发丝、绒毛、玻璃、烟雾等常规抠图模型处理不好的边缘。

实现要点:
- 严格照搬官方 configs/SDMatte.py 的推理配置(bbox 视觉提示、fp32、1024 分辨率),
  不做任何启发式后处理,输出即模型原始 alpha
- 内置官方 LongfeiHuang/SDMatte 的配置文件,无需下载 SD 2.1 权重,也无需联网。
  官方 load_weight=False 只用 config 搭骨架,全部权重由 checkpoint 覆盖;
  原版 SD 2.1 的 config 缺 bbox_time_embed_dim 等三个专有字段,缺字段时直接报错而非猜测
- 同时支持官方 .pth(12.1GB)与社区 .safetensors(5.19GB)。两者模型权重实测
  逐像素完全相同,pth 多出的 6.5GB 是 detectron2 的优化器状态;读 pth 时以受限
  Unpickler 只解析 model 段,内存占用与 safetensors 相当
- 自动适配 transformers 5.x 移除 text_model 包装层导致的键名漂移,
  避免 text_encoder 的 372 个权重被静默丢弃
- 加载后校验 1316 个张量全部对齐,有任何未覆盖/未使用的权重即中止报错
- 默认开启注意力分片,1024 下显存峰值由约 15.5GB 降至 9.1GB,速度反而略快

实测(官方效果图中的羊驼,对比官方公布 alpha):MAD=0.0113。
同图同权重下 ComfyUI-SDMatte 为 MAD=0.0884,相差 7.8 倍,主因是其
aux_input="trimap" —— 官方 aux_input_list 只含 point_mask/bbox_mask/mask,
trimap 从未作为视觉提示参与训练,且该分支坐标恒为 [0,0,1,1]、定位信息丢失。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-16 11:16:36 +08:00