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.

  • Input: (1, 3, 504, 504) float32, ImageNet-normalized ((x/255 - mean) / std)
  • Outputs: depth (504, 504) = exp(logits), sky (504, 504) = relu(logits)
  • Precision: fp32 weights (see DA3Mono-LARGE-MLX-fp16 for the fp16 variant)

Use with MLX

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)

Accuracy vs. PyTorch reference

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

License & citation

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}
}
Downloads last month
26
Safetensors
Model size
0.3B params
Tensor type
F32
·
MLX
Hardware compatibility
Log In to add your hardware

Quantized

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for mlx-community/DA3Mono-LARGE-MLX

Finetuned
(2)
this model

Paper for mlx-community/DA3Mono-LARGE-MLX