Comfy-Org / Comfy-Org/Nvidia_RTX_Nodes_ComfyUI
RTXVideoSuperResolution always returns an all-zero (black) tensor on Linux, no exception raised
- 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