Model Details
Depth Anything V2 performs monocular depth estimation: give it one photo and it returns a grayscale depth map where brighter pixels are nearer and darker pixels are farther. It needs no prompt, no camera data, and no manual tuning — a single image URL in, a single depth-map image URL out at the same dimensions. Built on the Depth Anything V2 foundation model for monocular depth (NeurIPS 2024), it produces clean, robust depth across indoor scenes, outdoor landscapes, portraits, and synthetic renders, which is why it is a go-to preprocessor for depth-conditioned image generation.\n\n## Best for\n- Generating a depth-map control image to drive ControlNet / depth-conditioned diffusion pipelines\n- Estimating per-pixel relative depth from an ordinary photo with no depth sensor\n- Building depth passes for 2.5D parallax, relighting, fog, and compositing\n- Pre-processing reference photos into depth maps for 3D reconstruction or scene understanding\n- Producing consistent depth conditioning across a batch of stills for a uniform look\n\n## Choose another model when\n- You want edge/line conditioning rather than depth — use a Canny or line-art preprocessor\n- You want to generate or edit the photo itself rather than estimate its depth — use a text-to-image or image-editing model\n- You need a textured 3D mesh as output rather than a 2D depth image — use an image-to-3D model\n- You need true metric depth in real-world units — this estimates relative depth, not calibrated distances\n\n## Tips\n- Feed the highest-resolution source you have; the depth map is returned at the input's dimensions, so detail in equals detail out.\n- Photos with clear foreground/background separation produce the most usable maps for downstream conditioning.\n- The output is a standard grayscale image you can pass straight into a depth ControlNet as the control image.\n\n## Limitations\n- Estimates relative, not metric, depth — values are comparable within one image, not across images.\n- Thin structures, reflective and transparent surfaces, and extreme close-ups can be ambiguous.\n\nTo run via the ModelRunner JavaScript client:\n```js\nimport { modelrunner } from \"@modelrunner/client\";\n\nconst result = await modelrunner.subscribe(\"depth-anything/v2\", {\n input: {\n image_url: \"https://media.modelrunner.ai/example-scene.png\",\n },\n});\n```



