Nodes/ComfyUI-DepthAnythingV3/DepthAnythingV3_MultiView
ComfyUI Node

DepthAnythingV3_MultiView

Consistent depth across multiple views

By PozzettiAndrea·Created 9 months ago·Updated 2 months ago· 434
DepthAnythingV3_MultiView
  • da3_model
  • images
  • depth
  • confidence
  • ray_origin
  • ray_direction
  • extrinsics
  • intrinsics
  • sky_mask
  • resized_rgb_image
  • gaussian_ply_path
normalization_modeV2-Style
resize_methodresize
invert_depthfalse
keep_model_sizefalse

This is the node you reach for when a single image isn't enough - when you've got several views of the same scene, or the frames of a video, and you want depth that's consistent across all of them. Run each frame through the normal DepthAnything_V3 node independently and the depth wobbles frame to frame; the classic flicker problem. DepthAnythingV3_MultiView uses DA3's cross-view attention so the model looks at all the images together and keeps its depth estimates coherent between them.

Why this exists

Depth estimation has a long-standing weak spot: it's a per-image model, so running it frame by frame on a video produces flicker - the depth of a static wall shimmers because each frame is estimated in isolation. The community's usual answer was a video-native model like DepthCrafter. Depth Anything 3's answer is different and kind of clever: it was trained for any-view depth and pose, so it has genuine multi-view attention built into the main model. Feed it a batch of related images and it reasons about them jointly. That's what this node exposes. The README is blunt about it - "use the multi-view node to use the cross attention feature of the main class of models... to have a more consistent depth across frames of a video."

The catch, and it's important: this only pays off on models that actually have cross-view attention - the main series (Small/Base/Large/Giant) or Nested. On the Mono and Metric variants the images get processed independently anyway, so you lose the whole benefit. If you're using this node, load a main-series or Nested model in the loader.

Inputs and outputs that matter

  • da3_model (required) - a main-series or Nested model, per above.
  • normalization_mode (default V2-Style) - same rule as the single-image node. V2-Style for ControlNet-style depth output, Raw if you're feeding the results into 3D reconstruction.
  • images - your batch of views or video frames. This is where the batch goes in.
  • invert_depth, resize_method, keep_model_size - the same optional knobs as the main node; leave them at defaults unless the depth comes out inverted (then flip invert_depth).

Outputs mirror the single-image node but as batches: depth (the consistent per-frame depth - this is the one you want for video ControlNet or a depth-driven Wan/Qwen workflow), plus confidence, sky_mask, resized_rgb_image, the ray maps (ray_origin/ray_direction), and extrinsics/intrinsics as strings for downstream multi-view fusion. gaussian_ply_path is the Gaussian export, meaningful only on fine-tuned weights.

How you'd actually use it

Two real workflows. Smooth video depth: frames in, depth out, into a video ControlNet or a depth-aware video model - you get temporally stable depth without the frame-to-frame shimmer. Multi-view 3D: several photos of one object/scene in, then take the batched depth, confidence, sky_mask, and the extrinsics/intrinsics strings and hand them to DA3_MultiViewPointCloud to fuse them into one point cloud that's aware of where each camera was.

Common issues

If the depth still flickers, check your model - you almost certainly loaded a Mono or Metric variant, which don't get the cross-view benefit. Switch to Large or Nested. If you're running a long video and hitting VRAM limits, cross-view attention over a big batch is memory-hungry; for long clips, DepthAnythingV3_Streaming chunks the video and aligns the pieces instead, which is the better tool past a certain length. And the usual inverted-depth surprise applies here too - one toggle of invert_depth fixes it.

CategoryDepthAnythingV3

Inputs (6)

NameTypeDefaultDescription
da3_modelDA3MODEL
normalization_modeCOMBOV2-Style3 options: Standard, V2-Style, Raw
imagesoptIMAGEBatch of images [N, H, W, 3]
resize_methodoptCOMBOresizeModel requires dimensions to be multiples of 14.
invert_depthoptBOOLEANfalseOFF (default): close=bright, far=dark. ON: far=bright, close=dark.
keep_model_sizeoptBOOLEANfalseKeep model's native patch-aligned output size instead of resizing back to original dimensions

Outputs (9)

NameTypeDescription
depthIMAGE
confidenceIMAGE
ray_originIMAGE
ray_directionIMAGE
extrinsicsSTRING
intrinsicsSTRING
sky_maskMASK
resized_rgb_imageIMAGE
gaussian_ply_pathSTRING