 rui40000andClaude Opus 5
|
a513f5a66c
|
修正节点内视频预览被裁切:绕过 art-venture 的全局 CSS 误伤
现象:「加载透明视频」节点下方的预览按原始像素尺寸渲染,容器
overflow:hidden 把画面裁掉一大块,只能看到局部。
根因不在本节点。ComfyUI 官方给节点视频预览的样式本来是对的
(.comfy-img-preview video { object-fit:contain; width:100%; height:100% }),
但 comfyui-art-venture 的 web/upload.js 为自家 LoadVideoFromUrl 注入了一条
同名全局选择器的规则,把宽高改成 var(--comfy-img-preview-width/height)。
这两个变量只在 art-venture 自家节点的 DOM 上定义,其它节点取到空值,
变量为空时整条声明失效,<video> 退回固有尺寸撑破容器而被裁切。
修法(web/rui_video_preview_fit.js,随 WEB_DIRECTORY 加载):
- 本节点专属规则 .comfy-img-preview.rui-video-fit video 强制
100% + object-fit:contain;容器标记通过拦截 node.videoContainer
的赋值时打上,无需轮询、不受创建时机影响
- 全局兜底规则给那两个变量补 100% 回退值:变量有值时行为完全不变
(art-venture 自身节点不受影响),仅在变量为空这种本就失效的
情况下恢复官方行为,对其它插件是纯修复
浏览器内 A/B 实测(640x640 视频、347px 宽容器):
修复前 video 渲染 640x640 溢出被裁;两条规则各自生效后均为 347x347 完整显示。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-08-18 18:29:05 +08:00 |
|
 rui40000andClaude Opus 5
|
61129bde89
|
新增「加载透明视频」节点:解决带 alpha 的 WebM 读入后透明通道丢失
带 alpha 的 WebM(VP8/VP9)不把透明度放在主视频流里。主流仍是 yuv420p,
alpha 被单独压成第二路藏在 Matroska 的 BlockAdditional 边带中,容器上只
留一条 alpha_mode=1 的元数据。ffmpeg 内置的 vp9/vp8 解码器不读这条边带,
只有 libvpx-vp9 / libvpx 才会——VideoHelperSuite 等常见加载节点走默认
解码器,因此每帧 alpha 恒为 255。
本节点显式指定 libvpx 系解码器并以 rgba 原始流读回,完整保留透明度
(含半透明边缘)。同一文件实测:默认解码器 alpha 全 255;libvpx-vp9
解出 alpha min=0 max=255,全透明 87.2%、半透明 2.0%。
- 自动探测 alpha_mode / pix_fmt,仅在需要时才换 libvpx(默认解码器更快)
- 解码器三档可手动覆盖,自动档失灵时可强制
- 支持强制帧率、帧数上限、跳过前N帧、间隔抽帧、等比缩放
- 输出 4 通道 rgba_image,直接接原生「保存图像」即存成 RGBA PNG 序列帧
(原生节点不做 convert("RGB"),实测落盘与内存 alpha 逐像素零误差)
- 另输出 alpha 遮罩与 3 通道 rgb_image,兼容只吃 3 通道的下游节点
- 流式读管道 + 预分配张量,达到帧数上限立即中止解码
- 全部参数带中文悬浮说明,附示例工作流
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
2026-08-18 18:06:11 +08:00 |
|
 rui40000andClaude Opus 4.8
|
bc433bc24a
|
docs: 核实 Unmult 节点并补充 README(含实测适用边界)
节点为纯数学去底(等效 AE Unmult):纯色底合成图满足
C = aF + (1-a)B,背景色已知即可反解出前景色与 alpha,
无需模型推理,且能真实保留半透明层次。
核实结果:
- 已正确注册进 __init__.py(无外部依赖,裸 import 与仓库惯例一致)
- 4 个参数均带中文 tooltip,符合本仓库的统一规则
- 分类 Rui-Node/抠图 与其余抠图节点一致,支持批量
验证(构造已知合成图反推真值):
- 发光素材在黑底/白底/绿幕下,alpha 与前景色平均误差均为 0.0000,
数学上是精确解
- 黑白点参数、批量输入、RGBA/MASK 双输出均正常
同时测出一条必须写进文档的适用边界:
黑底 unmult 本质是拿亮度当不透明度,这对发光物成立、对实体不成立。
同一实体素材(alpha 真值恒为 1)实测——
黑底:亮部 0.900,暗部仅 0.080(黑头发/深色衣服/鞋会被扣穿)
绿幕:亮部 0.900,暗部 0.940,正常
故黑底的角色素材仍应走 Lucida / FeyNobg 等语义抠图,
unmult 留给光效、火焰、粒子与绿幕素材。README 补了四个抠图节点的选型表。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-08-17 14:10:04 +08:00 |
|
 rui40000andClaude Opus 4.8
|
cc6a6e3400
|
feat: 新增越光 API 连接节点(OpenAI 兼容,25 个模型内置价格)
参照 ZenMux 节点的架构编写,参数、输出与容错行为保持一致,便于互换。
端点 https://llm.ai-nebula.com/v1/chat/completions
与 ZenMux 的三点差异:
- 模型清单内置在 yueguang/model_registry.py,不做在线快照:越光没有
可枚举的模型接口,清单与价格来自官方规范文档。少一个联网环节,
也不会因拉取失败导致下拉变空
- model id 不带厂商前缀(gpt-4o 而非 openai/gpt-4o),下拉靠排序聚类,
搜索时输 gpt/claude/deepseek/kimi 过滤
- 默认 deepseek-v4-flash(全表最便宜 $0.1/$0.3,官方示例也用它),
默认值便宜可避免误触发产生意外费用
25 个模型的价格已按文档录入并逐项校验(标签解析、价格、厂商三项一致性
全部通过)。usage_stats 比 ZenMux 多一行厂商,价格换算经手算对照无误。
沿用的实战经验:base_url 默认值不带 ://(前端会吞协议片段)、
自适应参数重试(弃用 temperature / 需 max_completion_tokens 的模型)、
VALIDATE_INPUTS 宽松放行避免价格变动使旧工作流失效。
所有 19 个参数均带中文 tooltip。
验证:链路已打通(认证被接受、响应能正确解析),但文档提供的 key
余额为 0,返回 403「用户额度不足」,故未取得实际回复内容。
换有额度的 key 即可使用。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-30 18:19:39 +08:00 |
|
 rui40000andClaude Opus 4.8
|
28fd14aaad
|
feat: 新增八方向序列拆分节点(8方向行走动画管线)
把每帧排布着 8 个朝向的雪碧图序列,一次拆成 8 条独立动画序列,
完成方向编号与分组。整条管线只有这一环缺失,其余复用现成实现:
视频转帧用 VHS 的 force_rate,透明 webm 用 VHS 的
format=video/webm + pix_fmt=yuva420p,序列帧用 SaveImage
(4 通道输入 PIL 会自动存成 RGBA)。
三个关键设计:
- 用固定网格而非连通区域拆分:连通区域按包围盒排序,角色走动时
位置浮动,跨过排序行界方向就错乱,上百帧错一帧整条动画就废;
且各自 bbox 裁剪导致尺寸不一无法合成视频
- 白底转透明用边缘连通性判断:角色常穿白衣服,按亮度一刀切会把
白衬衫掏空,故只把与画面边缘相连的白色判为背景
- 裁剪框取全序列并集:逐帧各自裁剪会尺寸不一且角色帧间跳动
另加碎片清理(按连通块面积比):网格切分会把相邻格探进来的手杖尖
切入本格,既难看又撑大裁剪范围。实测 E 方向 172x370 -> 150x335,
跨帧重心极差 8.0 -> 0.5 px。
实测 97 帧 834x1112 素材:拆分约 4 秒,导出 webm 回读透明像素占比
0.635 与素材一致。注意验证 webm 透明需显式 -c:v libvpx-vp9 解码,
内置 vp9 解码器不处理 alpha 边带,否则会误判为透明丢失。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-29 18:48:50 +08:00 |
|
 rui40000andClaude Opus 4.8
|
b517c5714b
|
feat: 新增像素化节点(面向像素游戏资产,含 AI 伪像素图网格还原)
产出真实小分辨率、颜色数受控、边缘硬朗的 sprite,而非马赛克滤镜。
纯 numpy/PIL 自研实现,无额外依赖、无需模型权重。
三种模式:按目标宽度 / 按像素块大小 / 自动检测网格。第三种专治
AI 生成的伪像素图(看着像素风,实际网格歪斜、边缘抗锯齿、上千颜色)。
选型说明:Pixel Snapper(MIT)解决的是「伪像素图 → 完美像素图」,
而「普通图 → 像素画」是另一个问题,核心在降采样与调色板量化,
故两条路都做进同一节点。
网格检测处理了两类经典误判:
- 谐波(八度)错误:取得最高分后回查真约数(octave killer)
- 内容周期冒充像素周期:把最佳/最差相位的分差并入评分(anti-phase)
评分用单元内方差而非相邻差分——差分对模糊极敏感,实测会把 4 像素
网格判成 24~28;组内方差则天然压制过大的 s。
实测:干净放大图 k=2~16 共 27/27 全对零八度错误;非方形网格与相位
偏移全对;普通插画正确判为未检出;端到端把 32×32 放大 10 倍加模糊
噪点的图还原回 32×32,与真值 MAE 0.0049;整数倍放大为纯复制无插值。
调色板在 CIELAB 空间聚类(RGB 距离与人眼感受相差很远,会丢暗部层次),
降采样默认主导色(均值会造出新颜色并糊边),内置 PICO-8/Game Boy 等
可确认取值的复古调色板。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-29 18:23:43 +08:00 |
|
 rui40000andClaude Opus 4.8
|
d47fd27062
|
feat: 新增 Lucida 抠图节点(BiRefNet_HR 微调,擅长文字/Logo/插画/玻璃)
模型 https://huggingface.co/egeorcun/lucida (MIT),220M 参数、885MB。
作者基准:文字/Logo 0.0091(商业参考 0.0123)、插画 0.0092、
伪装 0.0270、总体 0.0257。
- 模型代码(2250 行)内嵌 lucida/ 子包,不用 trust_remote_code:
那会在运行时拉取并执行远程代码,ComfyUI 场景既不该联网也不该如此;
构造传 bb_pretrained=False,避免联网拉 Swin 预训练权重
- 预处理规格与 BiRefNet 系一致,复用 FeyNobg 那份已验证实现;
输出适配 list 格式(eval 下 forward 返回各尺度预测,取 [-1])
- 权重加载严格校验,除窗口尺寸推出的确定性 buffer 外失配即中止
- 不开放分辨率选项:模型 Config.size=1024 且 decoder 走 patch split
示例工作流把 Lucida 与 FeyNobg 并联便于同图对照。实测两者差异
不是精度高低而是「前景」定义不同:同一张动漫插画上 FeyNobg 只抠人物
(前景占比 0.098),Lucida 还把半透明的云判为前景(0.391),
与其训练透明材质的目标一致,两者互补。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-29 11:08:35 +08:00 |
|
 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
|
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
|
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
|
c8c546a873
|
fix: ZenMux 节点导入加保护,异常时不连累其余节点加载
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-21 12:22:29 +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 |
|
 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
|
4ec1ad1fea
|
Update OpenAI node docs for multi-image input and remove Xmiles-nanobanana node
|
2026-04-01 13:24:54 +08:00 |
|
rui40000
|
9cd61aa63f
|
update
|
2026-03-27 11:58:27 +08:00 |
|
rui40000
|
3188ddb9aa
|
update
|
2026-03-27 10:54:04 +08:00 |
|