ComfyUI-DLSS5-NR README

The project's README from github.com/lisitskyaa/ComfyUI-DLSS5-NR. As one markdown file: README.md.

ComfyUI-DLSS5-NR

Unofficial, experimental ComfyUI integration for NVIDIA DLSS 5 Neural Rendering (NGX feature 18).

The node runs Neural Rendering in-process inside ComfyUI through a small native D3D12 bridge. It does not launch a helper executable and it does not write temporary image files.

[!WARNING] This project targets an undocumented / pre-release Neural Rendering interface and is not affiliated with, endorsed by, or supported by NVIDIA or Comfy Org. Runtime behavior may change with NVIDIA driver or nvngx_dlssnr.dll versions. Native driver/runtime failures can crash the ComfyUI process.

What it does

ComfyUI IMAGE
    -> Python/ctypes
    -> dlss5nr_bridge.dll
    -> D3D12 + NGX
    -> nvngx_dlssnr.dll (feature 18)
    -> ComfyUI IMAGE

Current v0.3.0 still uses CPU staging for the ComfyUI tensor transfer:

Torch IMAGE -> CPU float32 -> D3D12 RGBA16F -> DLSS NR -> CPU float32 -> Torch IMAGE

There is no subprocess or disk round-trip. CUDA/D3D12 interop is planned as a later optimization.

ComfyUI receives frame-by-frame progress updates while an IMAGE batch is processed.

Temporal mode: NVIDIA Optical Flow

v0.3.0 uses an explicit motion-vector temporal path and adds per-frame motion estimation through the NVIDIA Optical Flow Accelerator (NVOFA).

Only two batch modes remain:

still images
    Reset=1 for every image
    no temporal history
    no motion-vector resource

temporal
    frame 0: Reset=1 + explicit zero R16G16_FLOAT MV
    frame 1+: Reset=0 + NVIDIA Optical Flow MV from raw previous/current input frames

Temporal flow is estimated from the raw input frames, never from the DLSS-processed output:

previous raw frame ----\
                        > NVIDIA Optical Flow -> current-to-previous MV -> DLSSNR.MVec
current raw frame -----/                                      |
                                                              + DLSS temporal history

Implementation details in v0.3.0:

The first frame has no previous frame, so temporal mode bootstraps it with an explicit zero-MV field.

Requirements

NVIDIA Optical Flow hardware is available on Turing-generation NVIDIA GPUs and newer; all GeForce RTX generations satisfy that hardware-generation requirement. GPU support for Neural Rendering itself is still determined by the specific nvngx_dlssnr.dll you provide.

A 0xBAD00001 result means the Neural Rendering runtime rejected the feature on the current GPU/runtime/driver combination.

Installation — normal users

Do not download GitHub's automatically generated Source code.zip if you do not want to compile anything.

  1. Open Releases for this repository.

  2. Download ComfyUI-DLSS5-NR-vX.Y.Z-windows-x64.zip.

  3. Extract the contained ComfyUI-DLSS5-NR folder to:

    ComfyUI/custom_nodes/ComfyUI-DLSS5-NR
    
  4. Supply your own compatible NVIDIA Neural Rendering runtime:

    ComfyUI-DLSS5-NR/runtime/nvngx_dlssnr.dll
    
  5. Restart ComfyUI.

  6. Add experimental -> DLSS 5 NR -> DLSS 5 Neural Rendering (Unofficial).

The release ZIP already contains the project-owned native files:

native/bin/dlss5nr_bridge.dll
runtime/caller/nvngx.dll_comfy.dll

Visual Studio / MSVC is not required for normal installation.

The prebuilt Windows release ZIP intentionally contains only the files needed to run the node. Developer tools, native source code, workflows and extended documentation remain in the repository and GitHub source archives.

_nvngx.dll

Do not normally copy _nvngx.dll yourself. The bridge attempts, in order:

  1. runtime/_nvngx.dll as an explicit local override;
  2. normal Windows DLL search;
  3. automatic discovery in NVIDIA DriverStore packages matching nv*.inf_*.

The project does not redistribute _nvngx.dll.

nvofapi64.dll

Do not download or bundle nvofapi64.dll. It is supplied by the NVIDIA display driver and is loaded from the normal Windows driver installation when batch_mode = temporal.

still images does not initialize NVOFA.

Developer build

Only developers building from source need Visual Studio Build Tools.

Requirements:

Run from a normal cmd.exe or PowerShell window:

build_native.bat

The builder locates MSVC and the Windows SDK directly; a Developer Command Prompt is not required.

Outputs:

native/bin/dlss5nr_bridge.dll
runtime/caller/nvngx.dll_comfy.dll

The bridge now links the standard Windows d3d11.lib in addition to D3D12/DXGI. nvofapi64.dll is loaded dynamically at runtime and is not linked or redistributed.

Node parameters

Parameter Purpose
style Neural Rendering style selector (natural, cinematic, default, numeric experimental styles).
preset Internal render preset. 3 is the current default.
intensity Overall Neural Rendering strength.
tone Local tone / lighting strength (DLSSNR.LocalToneStrength).
structure Local structure / micro-detail strength (DLSSNR.LocalStructureStrength).
skin Skin-specific structure strength. -1 leaves the runtime's default behavior.
auto_mask Enables the runtime's automatic mask path.
batch_mode still images processes independent frames; temporal keeps history and supplies zero/NVIDIA Optical Flow motion vectors.
gpu_index NVIDIA DXGI adapter index. The private NVOFA D3D11 device is created on the same adapter.
channel_order auto, RGBA, or BGRA; useful because different runtime builds have exposed different R/B ordering.

Output resolution is identical to input resolution. This node is Neural Rendering/post-processing, not DLSS Super Resolution.

Runtime Info node

DLSS 5 NR Runtime Info reports:

Use it first when diagnosing a new runtime/GPU combination.

Troubleshooting

Native bridge is missing

If you are a normal user, you probably installed GitHub's Source code archive instead of the prebuilt Windows release ZIP. Download the release asset. Developers can run build_native.bat.

nvngx_dlssnr.dll not found

Place your compatible runtime at:

runtime/nvngx_dlssnr.dll

This repository intentionally does not provide download links or mirrors for proprietary/leaked NVIDIA binaries.

Could not load NVIDIA NGX core _nvngx.dll

The bridge searches NVIDIA DriverStore automatically. As a diagnostic fallback:

Get-ChildItem "$env:SystemRoot\System32\DriverStore\FileRepository" -Filter _nvngx.dll -Recurse -ErrorAction SilentlyContinue |
  Sort-Object LastWriteTime -Descending |
  Select-Object FullName, LastWriteTime, Length

A matching driver copy can be placed at runtime/_nvngx.dll as a local override. Do not rename nvngx_dlss.dll; it is a different component.

NVIDIA Optical Flow: could not load nvofapi64.dll

This only affects temporal mode. Verify that a recent NVIDIA display driver is installed. Run diagnose_runtime.bat; it reports the driver copy under %SystemRoot%\System32 when present.

Do not download nvofapi64.dll from third-party DLL sites.

NVIDIA Optical Flow: nvOFInit / nvOFExecute failed

Attach the complete ComfyUI exception and DLSS 5 NR Runtime Info output to an issue. The native bridge includes the driver's own NVOF last-error text when available.

CreateFeature(18) failed: 0xBAD00001

Feature not supported by the supplied Neural Rendering runtime on the selected GPU/driver combination. Use a runtime that legitimately supports your configuration.

0xBAD00002

The observed Neural Rendering snippet rejected the caller. The release includes the project-owned thin caller helper expected by this integration. If this occurs with an untouched release ZIP, open an issue and attach the full ComfyUI error log plus the Runtime Info output.

Wrong / blue colors

Try channel_order = RGBA or BGRA. auto compares both interpretations against the source and normally selects the plausible one.

Old workflow says batch_mode is invalid

v0.3.0 uses only still images and temporal; the older temporal sequence / temporal sequence (legacy no MV) values are no longer valid. Delete and re-add the node, or change the saved widget to one of the two current values:

still images
temporal

GitHub Releases

Tags matching v* trigger the Windows release workflow. GitHub Actions:

  1. checks that NVIDIA proprietary DLLs were not committed;
  2. builds the native bridge, NVIDIA Optical Flow integration and caller helper on windows-latest;
  3. assembles a clean user ZIP with the prebuilt project-owned DLLs;
  4. writes a SHA-256 checksum;
  5. creates the GitHub Release.

See docs/PUBLISHING.md.

References / implementation notes

Useful references include:

The NVOF D3D11 function-table integration and measured flow-direction/normalization behavior were informed by the MIT-licensed NIGos dlss5-bridge; attribution is retained in THIRD_PARTY_NOTICES.md.

No NVIDIA runtime DLLs or NVIDIA SDK headers are vendored in this repository.

The project's original source code is MIT licensed. NVIDIA trademarks, SDK/API names and proprietary binaries are owned by NVIDIA and are not covered by this project's MIT license.

This project does not redistribute:

The integration uses undocumented/pre-release Neural Rendering behavior, including a thin caller-forwarding helper and observed project/application identifiers. Before distributing or using this project, review the terms that apply to the NVIDIA software/runtime you use. See THIRD_PARTY_NOTICES.md and docs/LEGAL_NOTES.md.

Status

v0.3.0 is the first stable project release with the explicit motion-vector temporal path and NVIDIA Optical Flow for real frame-to-frame motion. The integration remains unofficial and experimental with respect to the NVIDIA Neural Rendering interface.

ComfyUI-DLSS5-NR (lisitskyaa/ComfyUI-DLSS5-NR)

Searching Database…

What is this?It is an unofficial, experimental ComfyUI custom node that integrates NVIDIA DLSS 5 Neural Rendering (NGX feature 18) directly into image-generation workflows.
Is this a standalone app or a ComfyUI plugin?It is a ComfyUI custom node that runs Neural Rendering in-process via a native D3D12 bridge, with no helper executable and no temp files written to disk.
How do I install it in ComfyUI?Download the prebuilt ComfyUI-DLSS5-NR-vX.Y.Z-windows-x64.zip from Releases (not GitHub's auto-generated source zip), extract it into your custom_nodes folder, supply your own NVIDIA Neural Rendering runtime DLL, restart ComfyUI, then add the node from the 'experimental -> DLSS 5 NR' menu.
What do I need besides ComfyUI itself?A Windows 10/11 x64 machine with an NVIDIA RTX GPU, a recent NVIDIA display driver, and a compatible, legally obtained nvngxdlssnr.dll runtime that the project does not provide; temporal mode also needs the driver-supplied nvofapi64.dll.
How stable and safe is this to use?It targets an undocumented, pre-release NVIDIA interface, so driver or runtime failures can crash the whole ComfyUI process, and GPU support depends entirely on the user-supplied nvngxdlssnr.dll rather than being guaranteed.
Does it run on Linux or only Windows?Windows only: it requires Windows 10/11 x64 plus an NVIDIA RTX GPU, since it relies on a D3D12/D3D11 native bridge and NVIDIA driver DLLs.
What does the MIT license actually cover here?Only the project's own original source code is MIT licensed; NVIDIA trademarks, SDK/API names and proprietary binaries like nvngxdlssnr.dll are not covered and are not redistributed by the project.
Does it need a specific NVIDIA GPU generation?Any GeForce RTX card works for the Optical Flow hardware requirement (Turing-generation and newer), but actual Neural Rendering support still depends on the specific nvngxdlssnr.dll you supply.
What is temporal mode and how does it differ from still images mode?Temporal mode uses the NVIDIA Optical Flow Accelerator to estimate per-frame motion vectors from the raw input frames (never from DLSS output) and keeps history across frames, while still images processes each frame independently with no motion estimation.
What does the DLSS 5 NR Runtime Info node show?It reports the plugin and native bridge version, the selected GPU, whether NVIDIA Optical Flow is available, temporal NVOFA settings, the runtime directory, and the SHA-256 of the supplied nvngxdlssnr.dll — useful as the first diagnostic step for a new GPU/driver combo.
Does this change the output image resolution?No, output resolution is identical to input resolution; this node performs Neural Rendering post-processing, not DLSS Super Resolution upscaling.
What do I do if colors look wrong?Switch the channelorder parameter between RGBA and BGRA, or leave it on auto, which compares both interpretations against the source and picks the plausible one.
Creator
lisitskyaa
Size
0.1 MB
Stars
172
Age
1mo
Commits · 90 Days