IronStratum

Depth Anything 3 vs 2: what changed, and which one to run

Depth Anything 3 does not replace Depth Anything 2. It changes the job. V2 reads one image and returns a relative depth map, and it is still the sharper single-image tool on some scenes. DA3 reads any number of images, with or without camera poses, and returns depth, confidence, and camera geometry in one pass. The DA3 paper's own table has DA3 ahead of V2 on three of five monocular benchmarks and behind on two. This page prints that table, the license split, the output flip that breaks migrated code, and the one depth row this platform serves.

Last verified: 2026-10-28

The short answer

Three sentences carry the verdict.

Pick V2 for one image at a time. Choose it for the most battle-tested weights. Mind the license first, though. Only the Small tier is Apache 2.0. The Base, Large, and Giant weights carry CC BY-NC 4.0, a non-commercial license. V2 shipped in June 2024. Its smallest tier still runs in browsers and phones through user-made ports.

Pick DA3 when the job is geometry, not just a depth picture. Feed it one image or fifty. Poses are optional. You get depth, a confidence map, camera intrinsics and extrinsics, and mesh or Gaussian exports. The paper puts it ahead of V2 in overall mono rank. It is far ahead on multi-view tasks that V2 cannot attempt at all.

Pick the DA3 mono tier for single-image depth at DA3 quality. That model, the mono student, beats V2 on all five standard mono sets in the paper's table. The tier is DA3MONO-LARGE. It is Apache 2.0.

What changed from Version 2 to Depth Anything 3

The gap between the two releases is a change of target, not a bigger copy of the same model. Both facts come from the two papers.

V2 predicts disparity. The DA3 paper says it plainly: DA2 predicts scale-shift-invariant disparity. Disparity is inverse depth. It is kind to near objects, and it made the sharp V2 single-image maps possible. The V2 repo ships one python call, infer_image. It returns one raw depth map, height by width, from one image. The default input size is 518.

DA3 predicts depth plus rays. The same paper: the teacher outputs scale-shift-invariant depth in exponential form, so near regions stay separate. Each pixel also gets a ray origin and direction. A small camera head reads out global camera params. The backbone is a plain DINOv2 transformer, with no depth-specific surgery. Cross-view attention ties many views into one scene.

Depth Anything V2Depth Anything 3
ReleasedJune 2024, NeurIPS 2024November 2025, ICLR 2026 Oral
Readsone image per callany number of views, with or without poses
Predictsrelative disparity (inverse depth)depth, ray maps, camera parameters
Per-view extrasnoneconfidence map, intrinsics, extrinsics
Exportsthe depth mapglb, npz, ply, Gaussian ply, Gaussian video
Tasksmonocular depthmono depth, multi-view depth, pose estimation, pose-conditioned depth, 3D Gaussians

The output list is the practical story. A V2 call gives you a picture of depth. A DA3 call gives you a scene. You get geometry you can fuse across cameras, camera poses for navigation, and exports that drop into 3D tools. The DA3 project page shows the same model driving multi-camera vehicle perception. There the views do not even need to overlap. A SLAM variant beats a COLMAP run that took more than 48 hours, the authors say.

Training data

Both releases are teacher-student systems. Both train on synthetic labels plus pseudo-labeled real images. The scale moved.

V2, from its own paper: five synthetic datasets totaling 595K images, plus eight real datasets totaling 62M unlabeled images. The teacher pseudo-labels the real set. The abstract names three practices that made V2 sharper than V1. Replace labeled real images with synthetic ones. Scale up the teacher. Bridge to real images through pseudo-labels.

DA3, from its paper: the synthetic corpus grew again. The named sets, verbatim:

  • Hypersim, TartanAir, IRS, Virtual KITTI 2, BlendedMVS, SPRING, MVSSynth
  • UnrealStereo4K, GTA-SfM, TauAgent, KenBurns, MatrixCity, EDEN
  • ReplicaGSO, UrbanSyn, PointOdyssey, WildRGBD

Training ran on 128 H100 GPUs for 200K steps. Every model trains only on public academic data. That matters if your lawyers ask where the data came from.

Resolution handling

The two releases treat image shape differently. This shows up first in ported code.

V2 resizes to a fixed edge. The V2 repo uses input size 518 by default. Raising it buys finer detail, the repo notes. One number, every image.

DA3 trains and runs on a family of shapes. The paper fixes a base of 504 by 504. That number divides cleanly by 2, 3, 4, 6, 9, and 14. It matches common photo shapes like 2:3, 3:4, and 9:16. Training sampled eight shapes, from 280 by 504 up to 896 by 504. At inference you set the processing size yourself. Users who raise it toward 1024 for quality report the memory cost in the same breath.

What the paper's own numbers say

The DA3 paper prints a direct comparison against DA2 on the five standard mono sets that V2 itself reported. The metric is delta1 accuracy. Higher is better. This is the table the search results never print.

ModelKITTINYUSINTELETH3DDIODERank
DA294.697.977.286.595.22.60
VGGT91.797.967.997.595.33.75
DA395.397.475.598.695.42.20
DA3 teacher97.297.981.499.896.61.00
DA3 mono student97.198.082.398.896.5-

Read it honestly, because users already did.

The main DA3 model beats DA2 on KITTI, ETH3D, and DIODE. It ties or trails on NYU and SINTEL. The ETH3D gap is the wide one: 98.6 against 86.5. Nuance follows in the paper's own text. The revised depth target may not show striking gains on standard 2D metrics. It still produces cleaner 3D point clouds with fewer distortions.

The mono student is a different story. DA3MONO-LARGE, the single-image model, beats DA2 on all five sets: 97.1, 98.0, 82.3, 98.8, 96.5. The paper highlights an ETH3D gain above 10 percent and a SINTEL gain of 5.1 percent. If your pipeline wants single-image depth only, that tier is the DA3 answer. It carries Apache 2.0.

For speed and capacity, the paper's table uses one A100 and 32-image scenes. DA3-Small runs 160.5 images per second and holds about 4,000 views in memory. DA3-Giant runs 37.6 per second across 900 to 1,000 views. VGGT, the reference, sits at 34.1 across 400 to 500. On multi-view tasks the paper reports DA3 beating VGGT by an average 44.3 percent in pose accuracy and 25.1 percent in geometric accuracy. The project page prints different averages for the same claim, 35.7 and 23.6. The publisher's own two surfaces disagree. The project page says the work appears in two versions, a technical report and the academic paper (ICLR 2026), which likely explains the different averages. This page cites the arXiv figures as the paper's.

Tier map, licenses, and the installed base

The license story decides business projects. Both releases split by tier, and the split does not favor the older one. V2 offers Apache 2.0 at exactly one tier. DA3 offers it at four.

V2 splits by tier too. The repo table lists Small at 24.8M params, Base at 97.5M, and Large at 335.3M. Its LICENSE section is plain: the Small model is Apache-2.0, and the Base, Large, and Giant models are CC-BY-NC-4.0. Hub card tags agree on every released tier, both read 2026-10-28. The 1.3B Giant row was named in the paper range but never shipped. The publisher's Hub org holds 48 models as of 2026-10-28. No V2 Giant id is among them.

DA3 splits by tier. The repo table: DA3-SMALL at 0.08B and DA3-BASE at 0.12B are Apache 2.0. DA3-LARGE, DA3-GIANT, and the nested giant series, 0.35B to 1.40B, carry CC BY-NC 4.0. That license bars business use. The metric and mono large tiers are Apache 2.0. Count them: DA3 ships four Apache tiers against V2's one. Weights with a 1.1 suffix fix a training bug. The repo says to prefer them, above all for street scenes. Read the license block on the tier page on the day you download. One row already disagrees between the publisher's own pages. The repo table marks DA3-LARGE-1.1 as CC BY-NC 4.0. Its Hub card is tagged Apache 2.0. Both were read on 2026-10-28.

One number in the DA3 table is itself disputed. The README and the small tier's Hub card say 0.08B params. The paper's own table lists a 0.022B backbone plus about 0.004B of heads. That is roughly 0.026B total, and an open issue asks for the README fix. The shipped weight file is 137.2 MB. Whichever figure is right, DA3-SMALL is the light tier of the family. It is also the tier this platform serves.

The installed base, from Hub records on 2026-10-28, says something the launch dates do not. The most downloaded model in the whole org last month is still a V2 artifact: the transformers-ready V2-Small at 1.53M downloads. V2-Large in the same packaging sits at 216K. On the DA3 side, DA3METRIC-LARGE leads at 445K. Then come DA3-LARGE at 252K, DA3-SMALL at 234K, and DA3MONO-LARGE at 186K. V2 is the old base, already everywhere. DA3 is where the new downloads sit, one year in.

What the community actually reports

A thread titled "Am I missing something or depth anything v2 better than v3?" has held the second slot on Google for this query on both dates this page checked, 2026-10-25 and 2026-10-28. The doubt is real. It also has a home in the official repo.

Issue 71, "Inferior results for DA3-SMALL compared to DepthAnythingV2-small", opened 2025-11-19 and still open, tests exactly this. The reporter compared the smallest tiers on indoor scenes from DIODE and NYUv2. The verdict, verbatim: "incorrect depth predictions (e.g., shadowed regions) with blurry/bleeding edges by DA3-SMALL comapred [sic] to DAv2-small". That same reporter names the trap that catches everyone first: "the colormaps are inverted between DA3 and DAv2 since they are trained to predict scale-and-shift-invariant depth and inverse depth, respectively."

Replies agree on the edge problem and find partial fixes. One user, making 3D from single images, reports "unexpected distortion on edges sometimes. DA2 has no issue." Another posts Middlebury 2014 shots and calls the difference "chalk and cheese". The workaround that emerged: use 1.0 divided by depth, turn on ray-based pose, and raise the processing size toward 1024. The memory cost comes with it. No maintainer has answered the thread.

The wider issue census on the DA3 repo, read 2026-10-28, shows where else the complaints cluster. Batch runs can return worse depth than single-image runs, issue 68. Feeding known camera poses can degrade point clouds rather than improve them, issue 169. The mono tier drew reports of spiky artifacts along object boundaries, issue 279, and of trouble in low light, issue 219. None of this says DA3 is bad. It says the first months with new geometry tooling find the rough spots. Watch the issue tracker for the fix cadence.

Moving code from V2 to DA3

Four changes break or surprise ported code.

First, the output flips. V2 gives inverse depth. DA3 gives depth. Any downstream math or colormap inverts with it. This is the number one porting bug. It is a one-line fix once named.

Second, the call shape changes. V2 loads a checkpoint and calls infer_image for one image. DA3 loads a tier by name and calls inference with a list of images. It returns depth, confidence, extrinsics, and intrinsics per view:

from depth_anything_3.api import DepthAnything3

model = DepthAnything3.from_pretrained("depth-anything/DA3MONO-LARGE").to("cuda")
prediction = model.inference(["frame_0001.jpg"])   # one image or many
prediction.depth        # [N, H, W] float32
prediction.conf         # [N, H, W] float32
prediction.extrinsics   # [N, 3, 4] camera poses

Third, the packaging gap. V2 loads through the standard transformers pipeline in one line. Caching and device handling come free. DA3 does not load there. A model id like DA3-BASE raises an unrecognized-model error in the pipeline. Issue 182 has tracked the feature request since December 2025. DA3 installs from its own repo. It wants torch 2 or newer plus xformers, and an extra package for the Gaussian exports. Plan a separate environment.

Fourth, batching differs. V2 has run in production for two years, and its failure modes are known. DA3 has an open report of batch runs returning worse depth than single-image runs on the same inputs. Check batch size against single-image output when you port.

For video, both lines have an answer, and neither is the base model. The V2 line grew Video Depth Anything in January 2025, for steady depth over long clips. DA3 grew DA3-Streaming in December 2025. It is a sliding-window variant that handles ultra-long video under 12 GB of GPU memory. Pick by which base model your pipeline already speaks.

Which one should you run

Decision rules, in order of how much they change your stack.

  • Run V2 when your input is one image and your output is one depth map, when the Apache-licensed Small tier is enough for your scenes, when you need transformers-pipeline loading or a browser or phone port today, or when your scenes are the kind the community reports V2 still winning: shadowed indoor regions, thin edges, reflective surfaces.
  • Run DA3 when you feed more than one view, need camera poses, fuse depth across cameras, or export meshes and Gaussians. Those jobs did not exist in V2's interface at any quality level.
  • Run DA3MONO-LARGE when you want single-image depth at DA3 quality under Apache 2.0. It is the tier that beat V2 on all five benchmark sets in the paper's table.
  • Need metric depth in meters? V2 ships metric fine-tunes at three scales for indoor and outdoor scenes. DA3 ships one metric large tier under Apache 2.0, with a published conversion (focal length in pixels times network output divided by 300), and an open request for metric checkpoints at smaller scales.
  • On a robot, depth plus pose from cheap cameras in one call is the DA3 case. The publisher's own ecosystem already includes ROS 2 wrappers and a TensorRT node for DA3, none for a combined V2 pose stack, because V2 produces no pose.

Running depth over an API today

Neither version has an official hosted API from the publisher. It ships weights, code, and a free browser demo. If you would rather call depth than host it, the options are few. This site's sibling pages date them one by one: the provider census, the small-tier pricing walkthrough, and the alternatives guide.

On this platform, one depth row exists: da3-small, the small tier of Depth Anything 3. It rides the vision route, metered per image against a prepaid wallet. It has been on the public list since 6 October 2026. Treat it as a young shelf and test your own scenes. Version 2 is not served here, and this page will not pretend otherwise. A first call is three fields and a file:

curl -X POST "https://api.ironstratum.com/v1/vision" \
  -H "Authorization: Bearer $KEY" \
  -F "model=da3-small" \
  -F "file=@scene.jpg"

Rates render on the pricing page, never typed into pages like this one. The response carries the depth result and the billed image count. Create a key on the signup page. Confirm da3-small is listed with one call to the model list endpoint. Send one image before you batch.

The small tier's own page is da3-small. For the deeper lane context: DA3 small, the CPU tier, DA3 small API pricing, who serves DA3 today, alternatives to Depth Anything, the v4 watch, DA3 vs VGGT, and robot vision, segmentation and depth.

Frequently asked questions

What is Depth Anything 3 and what does it do?

It is a 2025 model from the ByteDance Seed team, the same team that built V2. It reads any number of images, with or without known camera poses. For every view it predicts depth, confidence, and camera geometry. The paper is arXiv 2511.10647, submitted 13 November 2025, an ICLR 2026 Oral.

What is Depth Anything V2?

The June 2024 release, arXiv 2406.09414, NeurIPS 2024. A mono depth model: one image in, one relative depth map out. It trained on 595K synthetic images plus 62M pseudo-labeled real images. Only its Small tier is Apache 2.0. The bigger tiers carry the non-commercial license.

Is Depth Anything 3 better than V2?

On multi-view geometry, yes, and V2 cannot compete there at all. On single-image depth, it depends on the tier. The paper's table has the main DA3 model ahead on three of five mono sets, behind on NYU and SINTEL, and ahead on overall rank. The mono student beats V2 on all five. User reports still favor V2 for edge sharpness on some indoor scenes. That report is open in the official repo.

How accurate is Depth Anything?

By the paper's delta1 numbers, accuracy climbs with tier: from the 95.3 KITTI of the main model to the 97.2 of the teacher. Accuracy also depends on scene class, lighting, and processing size. The honest answer is the table above plus your own test set. The paper notes the new target buys cleaner 3D structure more than 2D metric points.

Can I drop DA3 into code that uses V2?

Not directly. First, the output flips from inverse depth to depth. Second, the API changes to a multi-view inference call that returns four result sets. Third, the V2 transformers pipeline does not load DA3 models. Budget a day for the port, not an import swap.

Which Depth Anything should I use for robots?

DA3. Robot perception wants depth plus camera pose from cheap cameras, and DA3 returns both in one call. Its ecosystem already has ROS 2 wrappers and a TensorRT node. Use the Apache-licensed small, base, metric, or mono tiers unless you can accept NC terms. For the hosted route, da3-small is the served row here, metered per image.


Sources read in full on 2026-10-28: the DA3 paper, the V2 paper, the DA3 repo, the V2 repo, the DA3 project page, the V2 project page, the DA3-SMALL model card, and the publisher's Hub records.

Last verified: 2026-10-28