ComfyUI Node

Depth Anything 3

Depth maps for video without the preprocessor sprawl

By 1038labĀ·Created 25 days agoĀ·Updated 23 days agoĀ· 10
Depth Anything 3
  • images
  • IMAGE
ā—„modeldepth_anything_3_small.safetensorsā–ŗ
ā—„resolution512ā–ŗ
ā—„normalizationmin_maxā–ŗ
ā—„colormapgrayā–ŗ
ā—„unload_modelfalseā–ŗ
ā—„weight_dtypedefaultā–ŗ

Depth Anything 3 is the model everyone got excited about and almost nobody switched to. ByteDance Seed shipped it in November 2025 as an any-view 3D reconstruction model, and on single-image depth it only edges out Depth Anything V2 - your ControlNet preprocessor since 2024. If all you want is a depth map for a still ControlNet pass, V2 Large is still fine - you can stop reading.

Where this node earns its place is the other job. Video.

What you'd reach for it for

You've got 80 frames from VHS_LoadVideo and you want a depth sequence to steer Wan 2.1, CogVideoX, HunyuanVideo or SVD. The old path is a preprocessor plus a loader plus a resizer plus a save chain - and then the sequence flickers, because each frame got contrast-stretched on its own. This node is one box: frames in, depth frames out, same count and aspect ratio.

DA3 is good at the thing video conditioning actually cares about - holding thin structures like hair, fingers and poles as crisp edges instead of smearing them into the background. And it's small: 0.08B against V2 Large's 335M.

How it works

Here's the part that matters: this pack is a front end, not an implementation. It loads DA3 through ComfyUI core - comfy.sd.load_diffusion_model on the .safetensors, preprocessing and normalization from comfy.ldm.depth_anything_3, which merged into ComfyUI on 2026-06-10. What you install is a model picker, an auto-downloader, normalization modes, colormap and batching.

Inside, it loops your batch a frame at a time, resizes to resolution, interpolates the low-res depth back up to your original width and height (bilinear) and concatenates. Note there's no cross-frame fusion here - each frame is an independent single-image pass. A sequence comes out stable rather than flickering because min_max normalization is computed across the whole batch at once, so the near/far range doesn't jump frame to frame. That's mono depth made consistent, not the multi-view reconstruction DA3 is capable of.

The inputs that matter

All seven are required, starting with images - the frame batch from VHS_LoadVideo or Load Image.

model - four checkpoints, auto-downloaded from the 1038lab/Depth-Anything-3 HuggingFace repo into ComfyUI/models/geometry_estimation/. small for long batches and low VRAM, base for the everyday middle, mono_large is the author's pick for guiding video (~5.5 GB), and metric_large gives true depth in metres for 3D and VFX.

resolution - longest-side processing size. The tooltip advises 504 (fast, low VRAM) or 756/1008 for finer edges; the widget defaults to 512 and steps by 8, so 504 is one click down. Output is always upsampled back to your input size.

normalization - min_max (near = white 1.0, far = black 0.0) for anything feeding ControlNet or a video model. v2_style adds adaptive contrast with sky clipping; it's a viewer mode. raw is the trap - unscaled depth numbers, not clamped to 0-1, so as a grayscale image it looks blown out. Use it only when something downstream wants numbers, not pixels.

colormap - gray, for every generation pipeline. The inferno and turbo heatmaps are for looking at, not for feeding a model.

unload_model - flip it True when the depth pass feeds Wan 2.1 or HunyuanVideo on the same card; it frees the model and flushes CUDA/MPS caches so your video model isn't fighting it for VRAM.

weight_dtype - fp16 on Nvidia, bf16 on RTX 30/40-series; roughly halves VRAM against default.

One output: IMAGE - a depth batch matching your frame count and resolution. Send it to VHS_VideoCombine, or straight into your video model's depth input.

Install

ComfyUI Manager, search Depth Anything 3, or:

cd ComfyUI/custom_nodes
git clone https://github.com/1038lab/ComfyUI-Depth-Anything-3.git

Restart. The only requirement is huggingface_hub - no matplotlib, nothing else to pip install. The weights download themselves on first run into ComfyUI/models/geometry_estimation/, a few hundred MB to a couple of GB.

Update ComfyUI first - this depends on core modules that didn't exist before June 2026.

Where people get burned

The node just doesn't appear in the menu. The pack's loader catches exceptions per module and reports them to the terminal only. If your ComfyUI predates comfy.ldm.depth_anything_3, you get [ComfyUI-Depth-Anything-3] Error loading module AILab_DA3.py: ... there and silence in the UI. Check the terminal, not the canvas.

The auto-download fails. Offline boxes, corporate networks and blocked HuggingFace all kill it. The model list is read from the geometry_estimation folder, so drop the .safetensors in ComfyUI/models/geometry_estimation/ yourself - the filenames matter.

The bundled workflows don't load clean. DA3_depthmap.json uses AILab_LoadImage, AILab_ImagePreview and AILab_ImageCompare, which come from the author's other AILab packs, not this one. Swap in plain Load Image and Preview nodes; DA3_video_depth.json needs Video Helper Suite.

Long clips get heavy. Frames go through one at a time, so peak VRAM is one frame plus the resident model - but finished depth frames pile up in system RAM, and the model stays loaded unless you flip unload_model. Drop to small, drop resolution, or split the clip.

On the author: 1038lab (publishing as AILab) is the ComfyUI-RMBG person - a one-man node factory. This one is thin glue, which is the good outcome.

Category🧪AILab/Geometry

Inputs (7)

NameTypeDefaultDescription
imagesIMAGEInput video frames or single image. Connect from Load Video (e.g. VHS Video Helper Suite) or Load Image.
modelCOMBOdepth_anything_3_small.safetensorsDepth Anything 3 model weight (auto-downloads if missing): - small: Fastest, lowest VRAM (~0.08B params, great for long videos & quick testing) - base: Great balance between speed and precision (~0.12B params) - mono_large: Highest visual depth detail (~0.35B params, best choice for AI video generation guiding) - metric_large: Real-world metric depth in meters (~0.35B params)
resolutionINT512128–2560Model internal processing resolution (longest side, multiple of 14): - 504: Recommended default (fast, low VRAM) - 756 / 1008: Sharper edges & finer depth details (requires more VRAM) The output is always automatically upsampled back to the original input resolution.
normalizationCOMBOmin_maxDepth range normalization mode: - min_max: Standard 0 to 1 range (near=white 1.0, far=black 0.0). Required for AI video generation (Wan/CogVideoX/Hunyuan/SVD) and ControlNet! - v2_style: Adaptive contrast balance with automatic sky clipping - raw: Unscaled numerical depth values (preserves metric units for 3D/VFX workflows)
colormapCOMBOgrayOutput color format: - gray: Standard grayscale (Required for AI Video Generation, ControlNet, and Depth-to-Video) - inferno: High-contrast orange/purple thermal heatmap (best for visual human inspection) - turbo: Smooth rainbow colormap (visual human inspection)
unload_modelBOOLEANfalseUnload model from VRAM immediately after execution to free maximum GPU memory for downstream models (e.g. Wan 2.1, CogVideoX, HunyuanVideo).
weight_dtypeCOMBOdefaultComputation precision: - default: Uses model native weights - fp16: Recommended for Nvidia GPUs (saves ~50% VRAM, runs faster) - bf16: Recommended for RTX 30xx/40xx & newer GPUs - fp32: Full precision (uses highest VRAM)

Outputs (1)

NameTypeDescription
IMAGEIMAGE—