Nodes/ComfyUI-DepthAnythingV3/DA3_MultiViewPointCloud
ComfyUI Node

DA3_MultiViewPointCloud

Fuse multiple views into one point cloud

By PozzettiAndrea·Created 9 months ago·Updated 2 months ago· 434
DA3_MultiViewPointCloud
  • depths
  • images
  • confidence
  • sky_mask
  • pointcloud
extrinsics
intrinsics
confidence_threshold0.30
downsample4
use_icpfalse
allow_around_1false
filter_outliersfalse
outlier_percentage5.0

This is the node that takes depth from several views of the same scene and fuses them into a single, more complete point cloud. One photo gives you the surface facing the camera and nothing behind it. Shoot the same object from a few angles, run them through Depth Anything 3, and this node stitches all those partial clouds into one - filling in the sides a single view could never see. It's the closest this pack gets to real scene reconstruction.

Why multi-view is a bigger deal than it sounds

The fundamental limit of single-image depth is that it only knows the front. The KB's depth notes hammer this: a depth map describes one camera view, so anything occluded simply has no data. The workaround for parallax is to inpaint the gaps; the workaround for geometry is to actually capture the other angles. Depth Anything 3 is built for exactly this - it predicts camera pose alongside depth, so it knows roughly where each shot was taken, and that's what lets multiple clouds be placed into a shared coordinate space instead of floating around independently.

Inputs and outputs

The required inputs come as batches from DepthAnythingV3_MultiView:

  • depths - the batched depth maps (Raw mode, as always for 3D).
  • images - the matching RGB views, so points get real color.
  • extrinsics and intrinsics - the camera pose and lens data as JSON strings, straight from the multi-view node's extrinsics/intrinsics outputs. This is the geometry that lets the views line up.

The optional knobs that matter:

  • use_icp (default off) - this is the key decision. With it off, the node trusts DA3's predicted camera positions to place each view. Turn it on and it runs ICP (iterative closest point) to refine the alignment by actually matching overlapping geometry. ICP gives tighter registration when the views share enough overlap; the predicted poses are faster and fine when they're already good. The README calls out both paths - match them with ICP or leave them on the predicted positions.
  • confidence + confidence_threshold (default 0.3, higher than the single-view node) - cull uncertain points; multi-view fusion benefits from being stricter.
  • sky_mask - drop sky so it doesn't fuse into a mess.
  • downsample (default 4), filter_outliers + outlier_percentage - density and cleanup, same idea as the single-view point cloud node.

Output is one fused pointcloud, ready for DA3_PreviewPointCloud or DA3_SavePointCloud.

A nice touch the README mentions: the fused cloud can carry a per-point field showing which view each point came from. Set DA3_PreviewPointCloud's color_mode accordingly and you can literally see the coverage of each camera - invaluable for spotting where you're missing angles.

Common issues

Views not lining up - clouds ghosting or doubled? That's alignment. First try turning on use_icp for geometry-based refinement. If ICP makes it worse, your views probably don't overlap enough for it to lock on, so fall back to the predicted poses. Sky fusing into a smeared backdrop means no sky_mask (or a model that doesn't produce one - load Mono/Metric/Nested). A noisy fused result usually wants a higher confidence_threshold and filter_outliers on. And remember the Raw-depth rule threads through here too: the depth going into the multi-view node must be Raw, or the geometry is wrong before fusion even starts.

CategoryDepthAnythingV3

Inputs (12)

NameTypeDefaultDescription
depthsIMAGE
imagesIMAGE
extrinsicsSTRING
intrinsicsSTRING
confidenceoptIMAGE
sky_maskoptMASK
confidence_thresholdoptFLOAT0.300–1
downsampleoptINT41–32
use_icpoptBOOLEANfalse
allow_around_1optBOOLEANfalseAllow images with max depth value around 1
filter_outliersoptBOOLEANfalseRemove points far from point cloud center BEFORE ICP
outlier_percentageoptFLOAT5.00–50Percent of furthest points to remove from center of each view

Outputs (1)

NameTypeDescription
pointcloudPOINTCLOUD