[Inference.Core] Zoe Depth Map
Metric depth that the community actually recommends skipping for ControlNet
- image
- IMAGE
ZoeDepth was a genuine step forward when it shipped in 2023 - it was the first widely available metric depth estimator, meaning it predicts real-world distances in meters rather than just "this is closer than that." That's a big deal for robotics or photogrammetry. For ControlNet conditioning, though, the community ran the actual test and the honest verdict was: skip it. A well-known head-to-head comparison against MiDaS concluded that Zoe's metric precision costs it edge sharpness - and for steering a diffusion model, sharp relative edges matter a lot more than physically accurate meters.
How it works
ZoeDepth was trained on indoor scenes (NYU Depth v2) and outdoor driving footage (KITTI) to predict actual physical distance per pixel, not just relative ordering. That's genuinely more geometrically accurate than a relative-depth model like MiDaS or Depth Anything. But it comes at a cost: chasing metric precision tends to produce softer, more gradient-heavy output, which a ControlNet finds harder to lock onto than a model tuned purely for crisp relative contrast.
The inputs and outputs that matter
This is the simplest node in the whole pack - one input beyond the image, no model or mode picker:
image- required, your source image.resolution(default 512) - working resolution.
One output: IMAGE, the depth map, ready for a depth ControlNet.
How to install it
ComfyUI Manager: search ComfyUI-Inference-Core-Nodes, install, restart. By hand:
cd ComfyUI/custom_nodes
git clone https://github.com/LykosAI/ComfyUI-Inference-Core-Nodes
then run install.py, or pip install -e .[cuda12] (or .[cuda] / .[rocm] / .[directml] / .[cpu]). Restart ComfyUI. The Zoe model weights download from Hugging Face the first time you run the node.
Common issues & troubleshooting
If your ControlNet result feels loose or mushy compared to a canny or lineart pass, that's Zoe's inherent softness showing through, not a setting you're missing - there's nothing here to tune it away, since the node exposes only resolution. The straightforward fix, and the one the community landed on: swap this node for MiDaS (sharper, faster, this pack's other depth node) or Depth Anything (this pack's more modern, generally-better default) unless you specifically need Zoe's metric-scale output for something other than ControlNet conditioning - say, feeding a downstream tool that actually wants real-world distances rather than relative structure.
Otherwise the usual depth-node caveats apply: it needs a depth ControlNet model loaded to do anything, and unusual or synthetic-looking source images can still trip up any discriminative depth model, Zoe included.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| resolutionopt | INT | 51264–2048 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |