☁️BizyAir Zoe Depth Map
BizyAir Zoe Depth Map — ComfyUI Node Guide
- image
- IMAGE
Honest take up front: if you've got a choice of depth preprocessors in your ComfyUI setup, ZoeDepth probably isn't the one you want for ControlNet work - and there's an actual community test backing that up, not just vibes. Here's the story.
Why ZoeDepth exists, and why it's not the ControlNet default
ZoeDepth was Microsoft Research's contribution to depth estimation, and its headline feature is genuinely useful in the abstract: it's a metric depth estimator, trained on indoor (NYUDepth v2) and outdoor (KITTI) data to predict real-world distances in meters, not just "this is closer than that." For robotics, measurement, or photogrammetry work, that's exactly what you want.
For ControlNet conditioning, it turns out to be the wrong trade-off. A well-known community A/B comparison put ZoeDepth head-to-head against the older MiDaS estimator specifically for ControlNet use, and the conclusion was blunt: use MiDaS. The reasoning holds up - ControlNet conditioning cares about sharp edges and clear relative relationships between near and far objects, not scientifically accurate distances in meters. ZoeDepth's precision on absolute scale comes at the cost of softer, less defined edges, and ControlNet has a harder time following a soft gradient than a crisp one. This lesson generalizes beyond ZoeDepth specifically: for ControlNet preprocessing, optimize for edge clarity, not geometric accuracy.
Depth Anything (v1 and especially v2) has since become the actual community default for ControlNet depth conditioning, largely for this same reason - sharper, more usable maps. If this pack, or another one you have installed, offers a Depth Anything preprocessor alongside this ZoeDepth node, that's very likely the better default for a ControlNet workflow. This node still has its place - metric-flavored depth output is genuinely different in character from MiDaS/Depth Anything's relative maps - but go in knowing it's not the sharpest tool in the depth drawer.
Inputs and outputs
Kept simple, same shape as the pack's other preprocessors:
- image - required.
- resolution - optional, default 512, range 64–1024 in steps of 64. Processing resolution for the depth pass; doesn't resize your final output.
Output: a single IMAGE, the grayscale depth map (white close, black far, in the usual ControlNet depth convention), ready to feed into a depth-trained ControlNet Apply node.
How to install it
Ships with the full BizyAir pack.
ComfyUI Manager: search "BizyAir," Install, restart.
git clone:
cd ComfyUI/custom_nodes
git clone https://github.com/siliconflow/BizyAir.git
Requires a BizyAir API key set before use, like every node in this pack.
Common issues
Edges look soft or the ControlNet result feels underdefined. This is the exact failure mode described above - try a sharper depth estimator if one's available to you, or fall back to a canny/lineart preprocessor if you specifically need crisp structural adherence and can live without depth's near/far spatial logic.
Weight guidance is the same as any depth ControlNet. 0.4–0.7 for loose guidance that preserves creative freedom in the final generation, 0.8–1.1 for strict spatial adherence when you need the composition locked to the depth map. Ending the ControlNet's influence early (around 0.4–0.6 of the sampling steps) and letting the model finish detail on its own tends to give cleaner results than holding it through the whole run.
Metric output isn't always visually intuitive. Because ZoeDepth is scaled toward real-world distances rather than a normalized relative range, the visual contrast of the output map can look different from what you're used to with a relative-depth preprocessor - that's expected behavior, not a bug, but it can throw off your intuition for what weight setting will produce a given effect.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| resolutionopt | INT | 51264–1024 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |