Commit Graph
15 Commits
Author SHA1 Message Date
rui40000andClaude Opus 4.8 1bd90c71b6 feat: 新增满屏文字水印与 FeyNobg 抠图两个节点
满屏文字水印(watermark_node.py):
- 文案/字体/字号/旋转角度/密度/字间距/透明度/颜色 八项可调
- 交错网格平铺后整体旋转再从中心裁切,任意角度下四角均无空白

FeyNobg 抠图(feynobg_node.py + feynobg/):
- 内嵌 nobg 推理子集(Apache-2.0),全自动去背景,输出 alpha 与去背景图
- 重写预处理去掉对 transformers>=5.4 的依赖,4.x 环境可直接使用
- 修复权重键名与 transformers 4.x 的 SwinBackbone 命名不兼容:
  不处理时 958 个参数仅 405 个对得上,backbone 形同随机初始化,
  模型不报错但 alpha 几乎全黑;现按环境自动重映射并严格校验,
  除确定性 buffer 外任何失配都直接中止

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-29 09:26:05 +08:00
rui40000andClaude Fable 5 9dd4fbd890 fix: ZenMux 节点自适应参数重试,兼容弃用 temperature 等模型
用户实测 anthropic/claude-sonnet-5 报 400:`temperature` is deprecated。
根因:节点无条件把 temperature/top_p/seed/max_tokens 塞进请求体,而 ZenMux
聚合的部分模型弃用/不支持这些采样参数,规则各家不一且随模型迭代变化。

- 新增 _diagnose_param:从 400 错误消息识别是哪个采样参数导致失败
- 请求改为重试循环:命中即剔除该参数(或把 max_tokens 改名为
  max_completion_tokens,适配 gpt-5 reasoning 系)后重试
- 只动可选采样参数,绝不触碰 model/messages;非参数类 400 不重试、不死循环
- 正常请求零额外开销;剔除动作打印到控制台,最终仍失败时提示已剔除项

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-24 14:30:57 +08:00
rui40000andClaude Fable 5 eff089c771 feat: 新增多行文本框(原样输出)节点,修复 Markdown 标题被上游节点吞掉的问题
用户实测发现标题行缺失,根因并非渲染:WAS Node Suite 的「Text Multiline」
会把 "#" 开头的行当注释删除(WAS_Node_Suite.py text_multiline),Markdown
的 #/## 标题在进入本套件节点前就已被丢弃。

- 新增 RuiTextBox 节点:多行文本一字不动透传,关闭 dynamicPrompts,
  专门配合 Markdown转图片 使用
- README 在 Markdown 节点文档加警示,说明勿用 WAS Text Multiline 喂 Markdown

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-24 13:54:08 +08:00
rui40000andClaude Fable 5 d419f9262c feat: 新增 Markdown 转图片节点(阅读器级排版渲染)
- 纯 PIL 自研排版引擎(mdimg/ 子包:解析器+字体管理+渲染器),零新增依赖
- 视觉对标 GitHub/Typora:标题层级字号与 h1/h2 底线、引用左竖条、
  代码块圆角底色+等宽字体+语言标签、表格圆角外框/表头底色/斑马纹/
  列对齐/超宽自动压缩换行、任务清单勾选框、列表三级项目符号
- 彩色 Emoji(系统 seguiemj,正文与表格内均可);代码中的中文自动回退正文字体
- 尺寸:9 种常用预设快选 + custom 精确宽高;浅色/深色/米色三主题
- 各级字号(正文+H1~H6)、字间距、行间距、单行字数上限均支持 auto/手动,
  auto 字号二分搜索恰好优雅填满画布,超高裁剪并控制台提示
- 字体下拉扫描 font/ 目录,粗体真字重自动配对(msyh->msyhbd),
  空目录回退系统字体;字体二进制因版权与体积不入库(见 font/README.md)
- 修复解析器对单列表格的死循环,14 例边角输入鲁棒性测试通过

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-24 13:03:46 +08:00
rui40000andClaude Fable 5 e09930ea45 feat: usage_stats 增加输出文字数量统计
统计模型返回文本的字符数(含标点),插入为第二行:
    token消耗,输入:XXX,输出:XXX
    输出文字数量:XXX
    模型类型:...
    价格换算,美元:XXX,人民币:XXX
请求失败或无正文时记 0。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-24 12:06:32 +08:00
rui40000andClaude Fable 5 0a87ba7813 feat: ZenMux 节点新增 usage_stats 输出,统计单次运行 token 消耗与费用
- 第三输出 usage_stats(STRING),三行格式:
  token消耗,输入:XXX,输出:XXX
  模型类型:openai/gpt-5.4-nano [入$0.2/M 出$1.25/M]
  价格换算,美元:XXX,人民币:XXX
- 费用 = 响应 usage 的 token 数 × 快照单价(USD/百万token)
- 新增可选参数 usd_to_cny(默认 7.2)供人民币换算,可按当日牌价调整
- 请求失败记 0 消耗;usage 缺失或单价未知的项显示 "?"

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-24 10:23:07 +08:00
rui40000andClaude Fable 5 cc5852dc18 refactor: ZenMux 节点移除 vendor 参数,模型下拉直接全量选择
- 模型列表本身按厂商排序聚类,配合 ComfyUI 下拉搜索(输入 "qwen/" 等
  前缀过滤)已能满足筛选需求,vendor 下拉冗余
- 一并移除只为级联服务的前端脚本 web/zenmux_cascade.js 与 WEB_DIRECTORY

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 13:33:42 +08:00
rui40000andClaude Fable 5 ca61c48dbd feat: 新增 ZenMux API 连接节点(厂商→模型级联选择,选项含价格标注)
- 一个节点调用 ZenMux 聚合平台全部文本类模型(20 厂商 / 138 模型)
- vendor→model 二级下拉:前端 web/zenmux_cascade.js 按厂商实时收窄模型列表
- 模型选项后缀标注输入/输出价格(USD/百万token),如 [入$0.2/M 出$1.25/M]
- 默认模型 openai/gpt-5.4-nano;具备 api_key/system/user prompt/seed/
  temperature/top_p/max_tokens/多模态图像×6/detail/base_url/proxy 等完整参数
- 模型清单随包分发(models_snapshot.json),离线可列出;
  build_snapshot.py 可随时重拉最新价格
- VALIDATE_INPUTS 宽松校验:价格快照更新后旧工作流的模型标签仍可解析执行
- base_url 默认值沿用仓库约定不含 "://",规避 ComfyUI 前端吞协议片段的老问题
- 导出 WEB_DIRECTORY 以装载前端级联脚本

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 11:37:00 +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
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
rui40000 ac8c6eb58d feat: Add LoadImageWithName node to output filename without extension 2026-04-08 14:11:17 +08:00
rui40000 8382783022 feat: Add seed parameter to Sprite Splitter nodes to force execution on cloud platforms 2026-04-08 11:09:26 +08:00
rui40000 4e30f26112 Fix OpenAI multi-image node to process mixed image sizes independently 2026-04-01 13:40:05 +08:00
rui40000 4ec1ad1fea Update OpenAI node docs for multi-image input and remove Xmiles-nanobanana node 2026-04-01 13:24:54 +08:00
rui40000 3188ddb9aa update 2026-03-27 10:54:04 +08:00