Glide DLSS5
Audition NVIDIA's neural upscaler on your own clip before you commit
- settings
- video_path
- frames
What it is, and why you'd reach for it
DLSS 5 is NVIDIA's real-time neural renderer - the one from the March 2026 announcement that the image-gen crowd spent a month arguing about, largely because it has a habit of re-deciding what someone's face looks like. Blueforcer wrapped it for ComfyUI as ComfyUI-DLSS5-Enhancer: a node that takes a video file and writes an enhanced one.
That node is all or nothing. This one isn't. Drop a clip on it, scrub to any frame, hit Preview, and a short DLSS burst renders up to your playhead as a before/after pair you slide with the mouse. Then Queue does the whole file. If DLSS 5 is going to do something ugly to your character, you find out in fifteen seconds instead of at minute ten.
Worth being honest about the job, though. This is the least settled kind of upscaling - video, over time - and NVIDIA's path is closer to Lanczos than to SeedVR2: it cleans pixels, it doesn't invent eyelashes and pores. Feed it H3 output and it sharpens what's there. Feed it mush and you get bigger mush.
How it works
Preview never goes through the queue. The button posts the connected DLSS5 Settings node's current widget values to a server route, which rebuilds the exact config that node would have built, then renders a burst of frames ending at the playhead. A burst, not one frame, because DLSS accumulates across consecutive frames and frame one has no history - the last frame of a short run is what that frame looks like in a real render. The "before" half is your own source frame, Lanczos-resized to the output size, so the slider lines up pixel for pixel against a plain upscale.
Queue a partial prompt instead and, on a graph with other output nodes in it, a ComfyUI that ignores partial targets runs all of them just to show you eight frames. So preview skips the queue.
Render is the queue. The node hands the whole file to the Enhancer's own DLSS5 Enhance Video File logic, so you get what that node would have produced: same encoder, same audio mux, same verification pass. And scrubbing works on files your browser can't play - the server decodes frames and serves them as JPEG, so 4:4:4 HEVC in MKV scrubs fine.
The inputs that matter
- settings (
DLSS5_SETTINGS) - wire a DLSS5 Settings node in. That's the tuning loop: change a widget there, press Preview again, no queueing. Direct or through reroutes; a buried link gets a plain error. - video - drop a file on the node (it uploads into
input/glide_dlss5) or paste a path, but only to a file inside ComfyUI's input, output or temp folder. Deliberate: the routes read this value straight from an HTTP request. - preview_frames (1–32, default 8) - how long the preview burst is. The tooltip's own framing: DLSS builds up over frames, 8 is a fair look.
- codec / container / quality - the encode. Those lists aren't hardcoded; they're read from the Enhancer's own media module at load time. Defaults: HEVC, MKV, Auto.
- copy_audio (on by default) - keeps the soundtrack, which you want, since H3 generates audio natively and your clip has it.
- filename_prefix, plus an optional output_directory (empty means ComfyUI's output folder).
Outputs are video_path and frames. Wire video_path into whatever reads a file next - a join node, a video encoder - or leave it as the terminal output it already is. frames is the count, handy for checking the whole clip went through.
Installing it
The engine first, because this node ships none of it:
cd ComfyUI/custom_nodes
git clone https://github.com/Blueforcer/ComfyUI-DLSS5-Enhancer
git clone https://github.com/CGlide/ComfyUI-CGlide
Restart ComfyUI, or search CGlide in ComfyUI Manager for the second one. The nodes land under the CGlide category. The Enhancer's runtime has to be working too - that's NVIDIA's side, so plan on a recent RTX card. There's no requirements.txt here; the Enhancer is what brings PyAV, which this node imports. And update ComfyUI while you're at it - the author's own complaint is that most H3-era problems people post turn out to be a stale ComfyUI.
When it goes wrong
- "Glide DLSS5 needs ComfyUI-DLSS5-Enhancer installed and loaded." The node doesn't import the Enhancer; it reads that pack's modules out of
sys.modules. So this also fires when the Enhancer is installed but failed to import - fix that pack first, then do a full restart, not a browser refresh. - "is loaded but has no … module - its version does not match what Glide DLSS5 expects." Version drift between the two packs. Update the Enhancer.
- "A preview is already running." By design: one at a time, because two would fight over the same GPU and the second would lose.
- Widgets smeared or out of order. If a widget list changed shape between versions, delete and re-add the node; ComfyUI matches saved values by position.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| settings | DLSS5_SETTINGS | Connect a DLSS5 Settings node. Preview reads its current values. | |
| video | STRING | Drop a video on the node. A pasted path must be inside ComfyUI's input, output or temp folder. | |
| codec | COMBO | HEVC | 4 options: HEVC, H.264, AV1, ProRes Proxy |
| container | COMBO | MKV | 3 options: MKV, MP4, MOV |
| quality | COMBO | Auto | 4 options: Auto, Good, Best, Max |
| filename_prefix | STRING | GlideDLSS5 | — |
| copy_audio | BOOLEAN | true | — |
| preview_frames | INT | 81–32 | Frames rendered up to the playhead for a preview. DLSS builds up over frames; 8 is a fair look. |
| output_directoryopt | STRING | Empty = ComfyUI output folder. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| video_path | STRING | — |
| frames | INT | — |