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 |
|
rui40000
|
1e42521fec
|
refactor: Align UTF8ConverterNode logic with fix_encoding.py for robust cleaning
|
2026-04-08 16:14:18 +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 |
|
 rui40000andClaude Opus 4.6
|
4254f1d887
|
fix: 彻底重写OpenAI节点,根除URL被ComfyUI前端吞掉的问题
核心问题:ComfyUI的前端会将STRING/下拉框中的 :// 及后续内容
当作注释吞掉,导致URL丢失主机名。之前两次修复都没解决,因为
下拉框值 "https://" 本身也含有 :// 。
彻底重写方案 —— 所有控件值中不出现 :// :
- protocol下拉框: ["https", "http"] 纯单词,不含任何特殊字符
- api_url默认值: "api.openai.com/v1/chat/completions" 不含协议
- proxy_url: 用户只需填 IP:端口,代码自动补协议
- _build_full_url() 在纯Python中拼接 "://" ,唯一产生此字符串的位置
- _sanitize_url() 清理各种可能的协议残留碎片
- _build_proxy_url() 智能处理代理地址格式
其他改进:
- 无图像时正常调用API进行纯文本对话
- 细分异常类型:连接失败/超时/HTTP错误分别提示
- 超时时间从60s提升到120s
- 清理 __pycache__ 确保新代码生效
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-01 15:14:38 +08:00 |
|
 rui40000andClaude Opus 4.6
|
830e829108
|
fix: 彻底解决OpenAI节点URL被ComfyUI前端吞掉的问题
根因:ComfyUI的动态提示系统或第三方扩展(如cg-use-everywhere)
会将STRING控件中的'//'视为注释语法,导致'://'及其后的
主机名+路径被彻底丢弃,仅靠补回'//'无法恢复已丢失的内容。
解决方案:
- 将原来的单个api_url输入拆分为protocol下拉框 + 地址字符串
- protocol下拉框提供 https:// 和 http:// 选项(下拉框不受文本处理影响)
- api_url默认值不再包含'://',从根源避免被吞
- 新增_build_url()函数智能拼接URL,兼容多种用户输入格式
- 即使地址被完全清空也会回退到OpenAI默认地址
- 添加控制台日志输出实际请求地址,便于调试
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-01 14:06:30 +08:00 |
|
 rui40000andClaude Opus 4.6
|
4b61f92262
|
fix: OpenAI节点URL被截断报错及无图像时不调用API的问题
1. 修复ComfyUI前端吞掉URL中'//'导致 Invalid URL 'https:' 报错
- 新增 _fix_url() 函数,在请求前自动补回被吞的'//'
2. 修复无图像输入时节点直接返回user_prompt而不调用API的问题
- 有图像时:多模态格式(image_url+text)发送请求
- 无图像+有prompt时:纯文本模式正常调用API对话
- 无图像+无prompt时:返回明确的中文错误提示
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-01 13:53:53 +08:00 |
|
rui40000
|
a62c731252
|
Remove compiled cache file from repository
|
2026-04-01 13:40:38 +08:00 |
|
rui40000
|
4e30f26112
|
Fix OpenAI multi-image node to process mixed image sizes independently
|
2026-04-01 13:40:05 +08:00 |
|
rui40000
|
d5abaddd3a
|
Remove compiled cache files from repository
|
2026-04-01 13:25:23 +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
|
387b1b1616
|
Sync: enhance logs with uniqueId_sent; retain queued passthrough behavior
|
2026-03-31 09:56:57 +08:00 |
|
rui40000
|
0b36551043
|
Xmiles-nanobanana: add on_queued behavior (passthrough/empty, default passthrough) + generic Poller node for async completion
|
2026-03-31 09:41:31 +08:00 |
|
rui40000
|
7445eddd64
|
OSS upload: normalize https endpoint, optional proxy for oss2, CNAME fallback via oss_url_prefix
|
2026-03-31 09:27:02 +08:00 |
|
rui40000
|
36b7266dc9
|
Xmiles-nanobanana: add OSS upload path + inputs; switch inlineData to URL when use_oss=true; add oss2 dep
|
2026-03-31 09:18:39 +08:00 |
|
rui40000
|
d7b2dc5d4f
|
Add verbose runtime logging to Xmiles-nanobanana nodes
|
2026-03-27 14:00:53 +08:00 |
|
rui40000
|
9cd61aa63f
|
update
|
2026-03-27 11:58:27 +08:00 |
|
rui40000
|
5585ecbff2
|
Remove local test artifacts (test_binary_null.txt) and clean cached files
|
2026-03-27 11:25:07 +08:00 |
|
rui40000
|
3188ddb9aa
|
update
|
2026-03-27 10:54:04 +08:00 |
|