DLSS 5 Depth Anything V2 Guide
The depth map that tells DLSS where things are
- images
- depth
The DLSS5 pipeline is pickier than most upscalers: besides the image it wants a depth map and a motion field, because it's reconstructing the frame the way a game engine would hand it over. This node is where the depth half of that comes from. Feed it your image batch and out comes a grayscale depth map in the pack's native depth format - closer stuff bright, far stuff dark - normalized so it doesn't strobe across frames. The pipeline nodes have a depth_inverted toggle if the runtime ever reads your polarity backwards, but this node's output is what the Easy pipeline itself feeds the runtime, so it's the default that's known to work.
It's plain Depth Anything V2 under the hood, run through the Hugging Face transformers interface rather than the ControlNet-aux preprocessor you might already have installed. That matters for one reason: the output is tuned for this pack, and the weights come straight from the official depth-anything repos on first use. Small, Base, and Large all download to your HF cache automatically, so the first run can look frozen while it grabs a few hundred megabytes - that's normal, not a hang.
The inputs that actually matter
Most of the node is fire-and-forget, but two fields earn their keep:
model-Small (recommended),Base, orLarge. Small is the right daily driver: fast, and good enough for a temporal upscaler that only needs rough scene structure. Two license notes from the wider Depth Anything saga apply here: the V2 Small weights are Apache-2.0, while Base and Large ship non-commercial. If you care about that, Small is also your legally clean choice.temporal_normalization(default on) - this is the one that fixes a real annoyance. Per-frame depth estimators can "pump" their scale as the scene changes, and a depth map whose values jump between frames makes DLSS's temporal reconstruction jitter. With it on, the node takes one 2–98 percentile range across the whole batch and normalizes everything against it, so frame 47 and frame 48 agree on what "near" means. Leave it on. The only reason to turn it off is a single still, where it's moot.
chunk_size (default 4) just controls how many frames go through the model in one pass - raise it if you have VRAM to burn, lower it if you don't. And no, there's nothing here to set for colorspace or orientation; the output is a clean single-channel depth replicated to three channels.
What you wire it into
The single output, depth, plugs into the depth input of DLSS SR + Experimental Neural Rendering (Advanced) or Experimental DLSS Neural Rendering. For a multi-frame clip you'll normally route it through Temporal Depth Stabilizer first (this node is framewise, and framewise depth flickers on video). The one gotcha: whatever node provides motion vectors must have the same batch count as your images, or the pipeline throws a mismatch error at you.
Actually, here's the honest workflow advice: for video, you usually don't want this node at all. Video Depth Anything (Temporal) in the same pack runs the temporal VDA-S model that reasons over 32-frame windows and sidesteps the whole flicker problem. Depth Anything V2 is the right call for stills, single-frame passes, and the "start simple" workflow - which is exactly how the pack's Easy node uses it internally.
Install the pack via ComfyUI Manager (Git URL https://github.com/HECer/ComfyUI-DLSS5 until the registry listing lands), restart so the dependencies install, then set up the runtime with DLSS Runtime Setup (One Click) and confirm with DLSS 5 Runtime Status. Nothing in this node is GPU-specific beyond what PyTorch already is - the model itself runs on your CUDA device.
One last thing: keep your expectations straight. This depth is estimated from pixels, the same way a ControlNet preprocessor estimates it. It is not the engine's real depth buffer, so the DLSS result will never match a true in-game render. For feeding a temporal upscaler that mostly cares about "is this edge in front of that one," it's plenty.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| model | COMBO | 3 options: Small (recommended), Base, Large | |
| temporal_normalization | BOOLEAN | true | — |
| chunk_size | INT | 41–32 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| depth | IMAGE | — |