Comfy-Org / Comfy-Org/Nvidia_RTX_Nodes_ComfyUI

RTXVideoSuperResolution always returns an all-zero (black) tensor on Linux, no exception raised

Open
#39 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
620
Forks
38
PR merge metrics
No merged PRs in 30d

Description

## Summary
`RTXVideoSuperResolution` (and the underlying `nvvfx.VideoSuperRes` from the `nvidia-vfx` pip package) runs without raising any exception, but always returns an all-zero tensor (black output) on Linux, for every `quality` level (LOW/MEDIUM/HIGH/ULTRA) and both `resize_type` options tested.

## Reproduced outside ComfyUI (standalone Python)
```python
import torch, nvvfx
frame = torch.rand(3, 704, 1280, device='cuda')
with nvvfx.VideoSuperRes(nvvfx.effects.QualityLevel.MEDIUM) as sr:
sr.output_width = 2560
sr.output_height = 1408
sr.load()
out = sr.run(frame).image
t = torch.from_dlpack(out)
print(t.shape, t.dtype)
print(t.min().item(), t.max().item(), t.mean().item())
```
Output:
```
torch.Size([3, 1408, 2560]) torch.float32
0.0 0.0 0.0
```

No exception anywhere in the call chain (`sr.load()`, `sr.run()`, DLPack conversion all "succeed"), just an all-zero result.

## Environment
- OS: Linux (Ubuntu-based), driver 595.84, CUDA 13.2
- GPU: NVIDIA GeForce RTX 5060 Ti (16GB), confirmed as the default CUDA device (`torch.cuda.current_device()` → RTX 5060 Ti). A second GPU (GTX 1660 Super) is present in the system but not selected by default.
- `nvidia-vfx` package: initially got a broken metadata-only install from PyPI (`import nvidia_vfx` → `ModuleNotFoundError`, despite `pip show` reporting it as installed). Reinstalled via `pip install nvidia-vfx --extra-index-url https://pypi.nvidia.com`, which pulled the real ~597MB wheel. The real module name is `nvvfx` (not `nvidia_vfx`), which is not obvious from the pip package name — might be worth a note in the README/install docs.
- After the reinstall, `import nvvfx` works and the module loads fine (no import errors), but inference output is all zeros as shown above.
- SageAttention was ruled out: same black-output result with `--use-sage-attention` on and off, and with the node isolated in a minimal workflow (LoadImage → RTXVideoSuperResolution → PreviewImage, no other nodes).

## Suspected root cause
`libnvidia-ngx-vsr.so` (bundled inside the `nvvfx` wheel) appears to depend on the NGX model store (the same system used by DLSS) being initialized on the machine. Checked for it under typical Linux paths (`~/.local/share`, `/usr/share/nvidia`, etc.) — nothing found. `nvidia-ngx-updater` (present at `/usr/bin/nvidia-ngx-updater`) runs with exit code 0 but produces no visible output and does not appear to create any NGX model tree on this Linux install. No `.trt`/`.engine`/`.onnx` files ship inside the `nvvfx` wheel itself, so the actual super-resolution model seems to need to come from NGX at runtime — and on this system that step silently produces nothing usable, with the SDK still reporting success.

## Question
Is there a documented way to manually initialize/download the NGX model store for `VideoSuperRes` on Linux, or is Linux NGX support for this specific effect still incomplete? Happy to test further if there's a diagnostic step to check.

Contributor guide

No contributing guide indexed for this repository

Research direction

No repository files or tests are named. Start by reproducing the standalone Python example with nvvfx and checking the documented Linux NGX model-store setup; done means identifying a valid initialization or download procedure, or confirming that Linux support for VideoSuperRes is incomplete.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, python
Domain
computer-vision
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.