Depth Anything 3: Recovering the Visual Space from Any Views
Paper • 2511.10647 • Published • 103
How to use mlx-community/DA3Mono-LARGE-MLX with MLX:
# Download the model from the Hub pip install huggingface_hub[hf_xet] huggingface-cli download --local-dir DA3Mono-LARGE-MLX mlx-community/DA3Mono-LARGE-MLX
depth-anything/DA3MONO-LARGE (Depth Anything 3 Mono, ByteDance) converted to MLX for Apple silicon.
Single-image monocular depth: DinoV2 ViT-L/14 backbone + DPT head with an auxiliary sky-logit branch. Positional embedding is pre-baked (bicubic) for a fixed 504×504 input.
(1, 3, 504, 504) float32, ImageNet-normalized ((x/255 - mean) / std)depth (504, 504) = exp(logits), sky (504, 504) = relu(logits)import mlx.core as mx
import numpy as np
from PIL import Image
from da3mono_mlx import DA3MonoMLX # shipped in this repo
model = DA3MonoMLX().load_weights("model.safetensors")
img = Image.open("photo.jpg").convert("RGB").resize((504, 504), Image.BICUBIC)
a = np.asarray(img).astype(np.float32) / 255.0
x = (a - [0.485, 0.456, 0.406]) / [0.229, 0.224, 0.225]
x = mx.array(x.transpose(2, 0, 1)[None]) # NCHW
depth, sky = model(x)
mx.eval(depth, sky)
Validated against the official PyTorch forward on both random tensors and real images:
| metric | value |
|---|---|
| depth Pearson r | 0.9999998 |
| depth median relative error | 0.07 % |
| depth max abs error | 0.02 |
Weights are a conversion of depth-anything/DA3MONO-LARGE; the original
model is released under CC-BY-NC-4.0 (non-commercial). Please cite:
@article{depthanything3,
title={Depth Anything 3: Recovering the Visual Space from Any Views},
author={Depth Anything Team},
journal={arXiv preprint arXiv:2511.10647},
year={2025}
}
Quantized
Base model
depth-anything/DA3MONO-LARGE