Hi — sharing a community project in case it's of interest, and to ask whether you'd consider a pointer to it somewhere (this repo, a discussion, or wherever you think fits best).
depth-anything-mlx: runs the real, unmodified transformers.AutoModelForDepthEstimation (Depth-Anything-V2) on Apple Silicon via torch-mlx — a from-scratch torch-API-compatible layer backed by mlx.core — instead of a hand-written native mlx.nn reimplementation.
I want to be upfront that this takes a different approach from every example in this repo: mlx-examples' convention (e.g. clip/, segment_anything/) is a native mlx.nn model definition, with torch used only for one-time offline weight conversion. depth-anything-mlx instead runs the real PyTorch model through a compatibility shim at inference time, every call — so it isn't a fit for an inline PR into the example gallery itself, which is why I'm opening this as an issue instead rather than a pull request.
Despite the different approach, the results seemed worth sharing:
- Fully verified against real PyTorch at every stage (weights, preprocessing, model forward) — see the repo's
BENCHMARK_RESULTS.md for the full accounting, including negative results.
- After a series of fixes (fused attention/layer-norm kernels, fp16, native preprocessing, an exact conv-fold), it now beats real PyTorch's own MPS backend by a consistent ~1.4-1.5x across image sizes from 480x640 up to 108MP.
Happy to answer any questions, and no worries at all if this isn't a fit for anything here — just wanted to put it in front of the people most likely to find it interesting.
🤖 Generated with Claude Code
https://claude.ai/code/session_01HooZphcpzukceMrdArswsP
Hi — sharing a community project in case it's of interest, and to ask whether you'd consider a pointer to it somewhere (this repo, a discussion, or wherever you think fits best).
depth-anything-mlx: runs the real, unmodified
transformers.AutoModelForDepthEstimation(Depth-Anything-V2) on Apple Silicon via torch-mlx — a from-scratchtorch-API-compatible layer backed bymlx.core— instead of a hand-written nativemlx.nnreimplementation.I want to be upfront that this takes a different approach from every example in this repo:
mlx-examples' convention (e.g.clip/,segment_anything/) is a nativemlx.nnmodel definition, withtorchused only for one-time offline weight conversion.depth-anything-mlxinstead runs the real PyTorch model through a compatibility shim at inference time, every call — so it isn't a fit for an inline PR into the example gallery itself, which is why I'm opening this as an issue instead rather than a pull request.Despite the different approach, the results seemed worth sharing:
BENCHMARK_RESULTS.mdfor the full accounting, including negative results.Happy to answer any questions, and no worries at all if this isn't a fit for anything here — just wanted to put it in front of the people most likely to find it interesting.
🤖 Generated with Claude Code
https://claude.ai/code/session_01HooZphcpzukceMrdArswsP