DA3Mono-LARGE · CoreAI (.aimodel)
DA3Mono-LARGE monocular depth estimation, converted to Apple's CoreAI .aimodel format (macOS 27 / iOS 27+, device only — no simulator).
Converted with coreai_torch 0.4.2 / torch 2.14 via torch.export → run_decompositions → TorchConverter → optimize → save_asset. fp32, unquantized, 1.2 GB.
IO contract
- Function:
main - Input:
image— float32[1, 3, 504, 504], ImageNet-normalized planar RGB (normalization is caller-side) - Outputs:
depthfloat32[504, 504](relative z-depth, larger = farther),skyfloat32[504, 504](sky activation)
Validation
- Parity vs CoreML fp32 reference (same weights, same input): max abs err 1.25e-05, median relative err 1.46e-07
- Latency (M-series Mac, 504², p50): CoreAI fp32 96–263 ms vs CoreML fp32 100 ms / int8 297 ms depending on app integration overhead
- Zero missing operators (21 aten op kinds / 957 nodes accepted)
Usage (Swift)
import CoreAI
let model = try await AIModel(
contentsOf: url,
options: SpecializationOptions(preferredComputeUnitKind: .neuralEngine) // or .gpu / .default
)
guard let f = try model.loadFunction(named: "main") else { … }
let input = NDArray(scalars: pixels, shape: [1, 3, 504, 504])
var outputs = try await f.run(inputs: ["image": input])
let depth = outputs.remove("depth")?.ndArray
Note: with the fp32 build, preferredComputeUnitKind is a preference — benchmarked auto / .gpu / .neuralEngine all land within noise of each other (the model runs on GPU). An fp16/quantized export is needed to actually benefit from ANE.
Files
da3mono.aimodel/— the model bundle (main.mlirb+main.hash+metadata.json)recipe.toml— full conversion recipe (sources, versions, validation)
Consumers
- psamathe-ray-relight-ndi — real-time NDI relighting (
--depth-model coreai [--compute-unit auto|ane|gpu])
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support