| 维度 | 结论 |
|---|---|
| 项目性质 | ComfyUI 自定义节点包(3 个节点),用自实现的私有二进制协议 v4 驱动第三方 Windows 程序 «DLSS 5 Visual Enhancer» 的原生 D3D12 worker(ReShade carrier → RenoDX add-on → NGX feature 18),对图片批次/视频文件做神经渲染增强 + 可选 1.5x~3x 放大 |
| 代码质量 | 中上偏好。分层清晰、防御性强(超时/取消/管道崩溃归因/zip-slip 防护/feature-18 证据校验/无网络无 eval 无 shell=True);扣分:无测试无 CI、安装器无哈希校验、GPU 白名单过严、两个节点失败策略不一致 |
| 仓库可信度 | 作者 Blueforcer(Stephan),2017 年注册,AWTRIX 系列作者(248 followers / 67 repos),非匿名小号;仓库 2026-09-02 建,129 star / 7 fork;14 个 commit 全在当天,此后 8 天零提交、4 个 open issue 全部无维护者实质回复 |
| 安全 | Python 侧干净(全仓无网络调用/无 shell=True/无 eval/exec/pickle)。风险集中在安装器与外部二进制:467 MB zip 只校验字节数不校验哈希,随后把 nvngx.dll 当可执行文件运行(杀软必报) |
| 合规 | 偏高风险的灰区:它驱动的 nvngx_dlssnr.dll 是 2026-08 从《NBA 2K27》抢先体验版流出的 NVIDIA 官方签名但未公开发布的组件(310.8.0 / 158 MB / 148M 参数 FP8 / 仅 sm_120)。NVIDIA 至今无 DMCA、无封禁、也无任何表态——自用可以,别分发、别产品化 |
| 版本状态 | 已过时:节点包硬钉上游 v3.0(09-01),上游 5 天走到 v7.0(09-05)。我核对 v7.0 源码:协议 magic 与结构体一字未改(客户端大概率仍能驱动),但 v6.0 起 runtime 目录由扁平改为 host/ dlss/ dlssnr/ 三级,本包要求五个文件同层 → v6/v7 的 runtime 无法直接复用,事实上被锁在 ≤ v5.0 |
| 你的环境 | 当前不可用:仅 Windows。GPU 机是 Ubuntu 24.04 + RTX 5060 Ti、无 wine;DSH 机只有 GTX 970M(Maxwell,远低于 RTX 30 门槛)。详见第 7 节三条路线 |
| 建议 | 小众但真实的技术,值得关注、暂不建议投产;真想要这个效果,优先在 Windows 上直接跑上游 v7.0 独立程序(功能是超集),而不是这个钉在 v3.0 且已停滞的节点包 |
把图片/视频帧喂给 NVIDIA DLSS 5 神经渲染(NGX feature 18),拿回"重建了材质响应"的帧。README 强调:不是仿风格的滤镜,而是调用原生渲染器。
ComfyUI 节点
│ RGBA8 帧 + FP16 运动矢量 + 历史重置标志
▼
原生 D3D12 worker 进程(文件名必须是 nvngx.dll)
│ ReShade carrier(dxgi.dll) → RenoDX DLSS 5 add-on → NGX feature 18
▼
RGBA8 重建帧
v310.9.1 的 release notes 根本没列 Neural Rendering,官方也没有 standalone/离线 API)。节点包自己实现了 worker 的私有协议 v4:magic 0x34563544 / 0x34505553 / 0x314D5246 / 0x3154554F,视频头 <14I4f,setup 响应 <12I(dlss5/protocol.py)。nvngx.dll 且是 exe——因为 NR 的"签名代码片段"(signed snippet)在运行时会校验调用者身份/镜像名(见 4.3)。| 节点 | 作用 | 关键实现 |
|---|---|---|
DLSS5 Settings | 汇总 13 个神经渲染参数,输出 DLSS5_SETTINGS | nodes/settings_node.py |
DLSS5 Enhance Images | IMAGE → IMAGE,批序=时间序,保留 alpha | nodes/enhance_images.py(整批输出一次性分配,吃显存/内存) |
DLSS5 Enhance Video File | 文件 → 文件,解码/渲染/编码三线程流水线,保留时间戳/章节/元数据、可选音轨与字幕 | nodes/enhance_video.py + dlss5/media.py |
代码实测默认值(非抄文档):1x DLAA、模型 preset M、automatic_mask=on、skin_structure=2.0、local_structure=1.5、nr_intensity=1.0。
install_runtime.py 下载/注册原生运行时(许可提示 + zip-slip 防护)
selftest.py 不依赖 ComfyUI 的协议冒烟测试
dlss5/
protocol.py 二进制线格式(v4)
session.py worker 生命周期、握手、逐帧流式收发
motion.py 光流时间引导 + 场景切换重置
settings.py 公开参数 → native 头字段
paths.py 运行时发现与完整性校验
diagnostics.py GPU 检查、feature-18 证据、失败归因
imaging.py IMAGE 张量 ↔ RGBA8、letterbox
media.py ffprobe 探测、PyAV 解码、NVENC 编码、封装
nodes/ 三个 ComfyUI V3 节点
约 1.4k 行 Python + 22 KB README,无额外重依赖(numpy / av / opencv)。
session.py:206-222、diagnostics.py:224-261),并单独识别 0xC0000005(feature-18 内访问违例)给出"升驱动/换 RenoDX 配对"的建议。abort() 先杀 ffmpeg 再取锁避免死锁(media.py:417-432)。../绝对路径/盘符(install_runtime.py:99-107);输出相对目录不得逃出 ComfyUI output(enhance_video.py:61-81);prefix 拒绝分隔符与前导 -。shell=True、无 eval/exec/pickle(全仓 grep 确认),子进程一律 argv 数组。| # | 严重度 | 位置 | 问题 |
|---|---|---|---|
| 1 | 高 | install_runtime.py:58-79 | 467 MB 下载只校验 Content-Length,不校验 SHA-256/签名,随后解压出的文件会被执行。README 却称该 commit 为 "Secure the runtime installer" |
| 2 | 高 | install_runtime.py:189,199 | --url 只要求 https:// 前缀,任意 https 地址都接受 → 社工一句"用这个镜像"即可执行任意 payload |
| 3 | 中 | diagnostics.py:105-143 | GPU 门槛用显卡名正则 RTX\s+(\d{2}) ≥30:① 拒绝 RTX A6000/A4000/RTX PRO 等专业卡(= open issue #1);② @lru_cache(maxsize=1) 全局缓存,多卡/换卡/驱动变化不刷新;③ 协议头里没有 GPU index,多卡无法选卡(= open issue #3,作者唯一回复是"问 ChatGPT 后把 if generation < 30: raise 改成 continue")。上游 v5.0 早已改为"检测到 RTX 即继续,特性交给运行时判定" |
| 4 | 中 | enhance_images.py:81-84 | 一次性 torch.empty(count, out_h, out_w, 4) 分配整批输出,4K 批量极易 OOM,且无预检(只在 README 提醒) |
| 5 | 中 | enhance_images.py:112 vs enhance_video.py:482-487 | 策略不一致:worker 退出码非 0 时,图像节点丢弃整批结果,视频节点明确容忍("每帧都编码完了,脏退出只告警")。图像节点应采用同样的"成果优先" |
| 6 | 低 | media.py:193-204 | _encoder_available 缓存键含分辨率 → 每个新分辨率都要真跑一次 ffmpeg 试编码,缓存随分辨率增长 |
| 7 | 低 | __init__.py:23-30 | if False: 包起来的 NODE_CLASS_MAPPINGS 死代码块,易误导 |
| 8 | 低 | requirements.txt | 只有 numpy+av;实际还依赖 opencv(故意不写)、typing_extensions、torch → 普通 pip install -r 装不全,报错延迟到运行时 |
| 9 | 低 | 全仓 | 无单元测试、无 CI;selftest.py 必须有 Windows + GPU + runtime 才能跑 |
| 10 | 中 | README:79 | 安装指引不成立:"In ComfyUI-Manager, search for 'DLSS5'"——实测 ComfyUI-Manager custom-node-list.json(3.0 MB)中 dlss 出现 0 次,官方 Comfy Registry 精确 id 返回 404(open issue #2 就是指这件事,无人回复) |
抽查 README 参数表 vs dlss5/settings.py / nodes/settings_node.py:默认值、范围、perf_quality 映射(1x→5、1.5x→2、1.724x→1、2x→0、3x→3)、"nr_preset 无效果""nr_intensity 在 1.0 夹紧""skin_structure 依赖 automatic_mask"等说明全部对得上。
但有一处明显夸大(见 6.3):README 第 31–34 行称游戏里"引擎把渲染帧连同几何、贴图与光照缓冲以及运动矢量交给模型",而 NVIDIA 官方新闻稿只说输入是 "color and motion vectors",ADLR 研究页列的条件也只有 rendered frame / motion vectors / temporal state / artistic-direction values。本包对"3D 引导"的描述高于官方口径。
另外,"实测结论"(0.56x/0.70x/0.73x 细节能量比等)全部为作者自测,无第三方复现。
| 版本 | 日期 | 关键变化 |
|---|---|---|
| 上游 v0.1 / v1.0 / v2.0 / 2.1 | 08-30 ~ 09-01 | 从视频转换器起步;支持 RTX 30;修复丢帧/损坏;提速 45% |
| 上游 3.0 | 09-01 | 批处理、J/K/L/M 模型 preset ← 节点包钉的就是这个 |
| 上游 v4.0 | 09-02 | 帧插值(DLSS Frame Generation)、AI/Video GPU 双选择 |
| 上游 v5.0 | 09-03 | 放宽 GPU/运行时兼容检查(取消固定白名单)、HDR Mode、CPU/NVENC 分离 |
| 上游 v6.0 | 09-04 | 架构优化运行时(自称 Ada/Blackwell 最高 +70%)、Live 实时渲染模式、480 fps 帧插值 |
| 上游 v7.0 | 09-05 | 统一 universal NR runtime(不再手选架构)、RTX VSR 放大 + RTX Video HDR、1x~4x |
| 节点包 1.1.0 | 09-02 | 14 个 commit 后再无提交(pushed_at = 2026-09-02T14:50:04Z) |
节点包 README 说"必须 v3.0,否则协议不认"。但我拉了上游 v7.0 的 src/core/runtime.py:VIDEO_MAGIC/SETUP_MAGIC/FRAME_MAGIC/OUT_MAGIC 与 VIDEO_HEADER_FORMAT="<14I4f"、SETUP_RESPONSE_FORMAT="<12I" 与 v3.0 完全一致,字段顺序也一致 → 源码层面 v7.0 的 worker 大概率仍讲同一套 v4 协议(未实跑验证,故标为高可信推测)。
顺带一个反差:上游 v7.0 校验证据时用硬编码版本串 signed DLSSNR 310.8.0 D3D12 runtime initialized,节点包改成了版本容忍正则 signed DLSSNR [\d.]+ …——这一处节点包写得比上游好。
| tag | bin/runtime 布局 |
|---|---|
| 3.0 / v4.0 / v5.0 | 扁平:nvngx.dll、dxgi.dll、renodx-dlss5.addon64、nvngx_dlss.dll、nvngx_dlssnr.dll + ReShade.log |
| v6.0 | host/(worker、dxgi、addon、dlssnr)+ dlss/ |
| v7.0 | host/ + dlss/ + dlssnr/ |
节点包 dlss5/paths.py:26-32 要求五个文件同层;而 v6+ 的 worker 以 cwd=runtime 启动并按自己的相对路径找 host/、dlssnr/(上游 src/core/paths.py)。所以:
install_runtime.py --runtime-dir <v7路径> → 直接报 "runtime is incomplete";(补充:issue #1/#3 的 GPU 拒绝发生在节点包自己的 diagnostics.py,所以"换个新 runtime"根本修不了那两条 issue——这点很容易被误判。)
NVIDIA GeForce RTX 5060 Ti(Blackwell,16 GB,驱动 610.43.02):正则 RTX\s+(\d{2}) → 50 → 能过节点包门槛;官方 DLSS 5 本就只给 RTX 50 系,你这是"正牌"硬件。0xC0000005,社区结论是 616.x 驱动会破坏 ReShade+RenoDX+DLSS5,需回退 610.x。你是 610.43.02,属于被推荐的那条线(但 README 的基准测试用的是 610.74)。.gitignore 屏蔽 *.dll/*.exe/*.zip),安装时从上游 Release 现下 467 MB。nvngx.dll,而上游 git 里 bin/ 是空的(只有 README 说明"运行时载荷随 release 分发、不提交源码")→ worker 本体闭源,只能选择信任 Merserk(706 star 不等于代码审计)。paths.py:22-24 自己写明:worker 是 exe 但必须叫 nvngx.dll。把可执行文件伪装成 NVIDIA DLL 名再运行,是 Defender/SmartScreen 的标准告警模式;README 的解法是"把 runtime 目录加白名单",即让你主动关掉一层防护。 (上游也有实例:issue #39 有用户报 rtx-video-worker.exe 被判 Gen:Variant.Jatommy.Jasper.2.2444W 并隔离;维护者解释为无签名+新编译+低流行度导致的启发式误报,并给出 VirusTotal 0/70。未发现任一仓库为恶意软件的独立证据,但"报警→加白"这个操作本身要你自己承担。)
_nvngx.dll)把 snippet 交给合法 caller,绕过它直接调用会被拒。
nvngx.dll 是 "the caller-identity bridge required by the NR snippet";jpneagle/dlss5-webcam-demo 实测 NVSDK_NGX_D3D12_Init_Ext rejects every combination of application id and API version,并指出 "the snippet expects to be driven by the NGX core"。nvngx_dlssnr.dll——NVIDIA 官方数字签名(签名日 2026-08-11)、版本 310.8.0、158.2 MB、约 1.48 亿参数 FP8、15 个 cubin 全部 sm_120(所以天然只在 RTX 50 上跑)、且是开发中 build(残留 .cursor/rules/… 与内部代号)。技术拆解见 TechPowerUp。全仓无网络请求(install_runtime.py 除外)、无遥测、无 eval/exec/pickle、无 shell=True,子进程全为参数数组 → Python 侧可认为干净;真实攻击面是那 467 MB 二进制 + Windows 图形栈,无法从 Python 侧评估。
| 节点包 ComfyUI-DLSS5-Enhancer | 上游 DLSS 5 Visual Enhancer | |
|---|---|---|
| 定位 | ComfyUI 内两个处理节点 | Windows 便携 GUI(本地 Gradio) |
| Star / Fork | 129 / 7(2026-09-10) | 706 / 57 |
| 最近版本 | 1.1.0(09-02 后无提交) | v7.0(09-05,下载 8637 次) |
| 能力 | 图片批、视频文件;1x~3x | 图片/视频 + 帧插值(DLSSG,最高 480 fps) + Live 实时渲染(本地/直播/YouTube) + RTX VSR 放大 + RTX Video HDR + 文件夹批量直写 + ZIP 打包 + GPU 分选 |
| 许可 | MIT(仅自身代码) | MIT(仅自身代码;第三方二进制另算) |
| 平台 | Windows only | 64 位 Windows 11 + D3D12 |
| 维护状态 | 8 天零提交、issue 不回应 | 5 天 7 个版本,活跃 |
即:上游本体已是"全功能版",节点包是"把其中一条渲染链路搬进 ComfyUI"的子集,还钉在 5 天前。节点包对你的价值只有"不用出工作流";代价是功能少、版本旧、仍需要 Windows。
dlss_model_preset 的 J/K/L/M = 10/11/12/13、perf_quality 枚举)与上游实现逐字一致 → 它确实在驱动同一个原生 worker。nvngx_dlssnr.dll 是 NVIDIA 官方签名的真实模型(310.8.0、148M 参数 FP8、231 个 DLSSNR 内核、仅 sm_120)——"这只是一个 ReShade 着色器"或"只是 DLSS 4 换皮"的说法不被证据支持。nr_intensity 在 1.0 夹紧、nr_preset 完全无效果)也只有在真实模型上才成立。0xC0000005(616.x 驱动问题);#20 RTX 3080 Ti / 4060 Ti 报 "No supported NVIDIA RTX GPU was detected"。节点包 README 说游戏内引擎会提供"几何、贴图、光照缓冲",高于 NVIDIA 官方口径(官方只说 color + motion vectors;ADLR 也只列 frame/motion vectors/temporal state/artistic controls)。这一句是宣传性拔高,不影响工程实现,但说明它的文档不能全信。
定级:技术链路可信度高(有 NVIDIA 签名真实模型 + 可观测证据),"效果是否值得"存在明显争议,建议先看样片再决定。
| 机器 | 硬件 / 系统 | 是否满足 |
|---|---|---|
| GPU 机 192.168.31.31 | RTX 5060 Ti 16 GB / 驱动 610.43.02 / Ubuntu 24.04.3 / ComfyUI ec803fc9(2026-09-02,含 comfy_api/latest,V3 API 可用)/ 无 wine | ❌ 平台不符(缺 Windows);ComfyUI 版本与 V3 API 本身没问题 |
| DSH 机 192.168.31.76 | Intel 核显 + GTX 970M(Maxwell) / 无 wine | ❌ 双重不符(平台 + 显卡远低于 RTX 30 门槛) |
其它实测:
DLSS.5.Visual.Enhancer.v3.0.zip(466.9 MB)在本机 ≈100 KB/s(20 s 下 2.0 MB),curl -I 跟重定向会直接超时 → 467 MB ≈ 1.3 小时起,中途可能断。真要下,建议走本机迅雷服务(有对应技能)而非裸 curl。| 路线 | 成本 | 评价 |
|---|---|---|
| A. GPU 机装 Wine + vkd3d-proton 跑 worker | 中 | 成功率低但没到绝望:仓库有未合并 PR #4(ethanfel,2026-09-06,14 文件 +2018/−26),做法是绕开 ReShade,用 MinGW 交叉编译的 native/dlss5nr_bridge.cpp(+1299)直连 D3D12/NGX,caller_shim.cpp(+67)产出 nvngx.dll_comfy.dll 过 caller 校验,frame_worker.cpp(+107)沿用 v4 管道协议;并把 GPU 判定从型号正则改成 compute capability(8.6→30 / 8.9→40 / 12.0→50,顺带修好 A6000 等专业卡)。作者在 RTX 5090 + 驱动 610.57.04 + Wine 11.17 + Proton CachyOS 上验证过,但自述仍是实验性、未验证与 Windows 路径的像素对齐。PR 来源可追溯到 kos94ok/ComfyUI-DLSS5-NR-Linux ← lisitskyaa/ComfyUI-DLSS5-NR。建议:先小成本试探(打这个 PR → selftest.py),失败就止损;同时注意它 4 天无人回应、合并状态 clean 但停滞 |
| B. GPU 机双系统 / Windows 虚拟机 + GPU 直通 | 高 | 能跑,但要重装或配 VFIO;单卡直通意味着 Linux 侧 ComfyUI 停摆。为一个"增强滤镜"改动整机形态不划算 |
| C. 另找一台 Windows 跑上游 v7.0 独立程序 | 低(只需一台 RTX 30/40/50 的 Windows) | 最推荐:功能是节点包的超集(帧插值 / RTX VSR / HDR / Live),不受"钉 v3.0"限制,产物拷回 ComfyUI 流水线即可 |
| D. 什么都不做 | 0 | 如果你只是想减少 AI 视频的蜡感皮肤,现有 RTX VSR + FaceRefine 已覆盖一部分;DLSS5 NR 的差异(材质重建而非锐化)建议先看样片再决定 |
--url(最高性价比的一处修复)。lru_cache(或把驱动+GPU 列表纳入 key)。count × out_w × out_h × 4 × 4 B 估算并提前报错。requirements.txt 补 typing_extensions,并给一条含 opencv 的"全量安装"命令。# 仓库元数据
curl -s https://api.github.com/repos/Blueforcer/ComfyUI-DLSS5-Enhancer
-> created 2026-09-02T06:39:46Z, stars 129, forks 7, open_issues 4, pushed 2026-09-02T14:50:04Z
curl -s https://api.github.com/repos/Merserk/dlss5-visual-enhancer
-> created 2026-08-30T19:45:52Z, stars 706, forks 57, license MIT, pushed 2026-09-08
# 提交历史:14 个 commit 全在 2026-09-02
git log --pretty='%h %ad %s' --date=short
# 协议一致性(上游 v7.0 源码)
grep -n "VIDEO_MAGIC\|SETUP_MAGIC\|VIDEO_HEADER_FORMAT\|SETUP_RESPONSE_FORMAT" dlss5-up/src/core/runtime.py
-> 0x34563544 / 0x34505553 / "<14I4f" / "<12I"(与 v3.0 相同)
# 目录布局变化
curl -s https://raw.githubusercontent.com/Merserk/dlss5-visual-enhancer/3.0/src/runtime.py | grep "WORKER ="
-> WORKER = RUNTIME / "nvngx.dll" # 扁平
curl -s https://raw.githubusercontent.com/Merserk/dlss5-visual-enhancer/v7.0/src/core/paths.py
-> HOST_DIR=RUNTIME/"host"; DLSS_DIR=RUNTIME/"dlss"; DLSSNR_DIR=RUNTIME/"dlssnr"
# 安全面
grep -rnE "urllib|requests|socket|shell=True|eval\(|exec\(|pickle" dlss5/ nodes/
-> 无命中(仅安装器使用 urllib)
# 注册表收录
curl -s https://raw.githubusercontent.com/Comfy-Org/ComfyUI-Manager/main/custom-node-list.json | grep -c dlss
-> 0
curl -s -o /dev/null -w '%{http_code}' https://api.comfy.org/nodes/ComfyUI-DLSS5-Enhancer
-> 404
# 本机下载实测
timeout 25 curl -sL -r 0-20000000 -o chunk.bin -w '%{size_download} %{speed_download}' <release asset>
-> 2,039,808 bytes / 约 20 s ≈ 100 KB/s(未下完,超时中断)
# 环境
GPU 机: nvidia-smi -> RTX 5060 Ti, 610.43.02, 16311 MiB;Ubuntu 24.04.3;which wine -> 无
DSH 机: lspci -> Intel 4th Gen iGPU + GM204M [GTX 960 OEM / 970M];which wine -> 无
v310.9.1(2026-09-08)release notes 只提 Ray Reconstruction Preset F,未列 Neural Rendering;2026-09-08 有开发者在 NVIDIA 论坛求 NR 的 UE 插件,至今无官方回复。nvngx_dlssnr.dll;多个独立项目一致使用该编号。_nvngx.dll)负责转交,绕过会被拒(jpneagle 实测 NVSDK_NGX_D3D12_Init_Ext 拒绝所有 application id / API version 组合;kibblerz 称 nvngx.dll 是 "caller-identity bridge")。nvngx_dlssnr.dll 310.8.0(NVIDIA 签名,2026-08-11 签;158.2 MB;~148M 参数 FP8;231 个 DLSSNR 内核;15 个 cubin 全 sm_120;开发中 build)。dlss5 / ComfyUI DLSS / neural rendering comfyui 无任何相关 story;未检索到独立第三方评测。→ 缺乏独立 verdict(证据缺失)。0xC0000005 + 616.x 驱动破坏 ReShade+RenoDX+DLSS5,需回退 610.x;#20 RTX 3080 Ti / 4060 Ti 报 "No supported NVIDIA RTX GPU was detected";#39 rtx-video-worker.exe 被 Defender 误报(VT 0/70)。custom-node-list.json(3,021,993 bytes)中 dlss = 0 次、Blueforcer = 0 次 → 未收录(对应 open issue #2)。/nodes/ComfyUI-DLSS5-Enhancer → 404(几个近义 id 也 404)。注:?search= 参数实测无效,故以精确 id 404 为准。本报告由 DSH 会话生成;所有命令、API 返回与网页抓取均为 2026-09-10 当日实测。事实与推测已分别标注,第 6 节与附录 B 中带"推测/未验证"字样的结论请勿单独引用。