Nodes/JPS Custom Nodes for ComfyUI/CtrlNet ZoeDepth Settings (JPS)
ComfyUI Node

CtrlNet ZoeDepth Settings (JPS)

Dial in a metric-depth ControlNet pass

By JPS-GER·Created 3 years ago·Updated 2 years ago· 100
CtrlNet ZoeDepth Settings (JPS)
    • zoedepth_settings
    zoe_from
    zoe_strength1.0
    zoe_start0.00
    zoe_end1.00

    ZoeDepth is the odd middle child of the depth-estimation lineage. MiDaS was the original ControlNet-era default; Depth Anything v2 is what basically everyone reaches for now; ZoeDepth sits in between, and its whole reason for existing was metric depth - Microsoft Research trained it on NYUDepth v2 (indoor scenes) and KITTI (outdoor driving) so it outputs real-world distances in meters, not just "this is closer than that." Sounds like an upgrade. In practice, for ControlNet conditioning specifically, it wasn't: the community ran it head-to-head against MiDaS and the sharper edges won out, because a diffusion model conditioning on spatial layout cares more about crisp boundaries than it does about correct real-world scale. This node is the settings panel for a ZoeDepth pass regardless - pick your source image, set the strength, set the step window - it just won't do anything ZoeDepth's preprocessor node itself doesn't already do.

    The inputs that matter

    • zoe_from - "Source Image", "Support Image", or "Support Direct." Same three-way selector every ControlNet Settings node in this pack uses to pick which of your candidate reference images actually gets read.
    • zoe_strength (0–10, default 1) - ControlNet weight. The node's range goes far past anything you'd normally dial in; for depth conditioning generally, 0.4–0.7 is the loose-composition band and 0.8–1.1 is where you'd sit for strict architectural adherence - treat the default of 1 as roughly the top of what's useful, not a starting point to push past.
    • zoe_start / zoe_end (0–1, defaults 0 / 1) - the step-window percentages the condition is active for. Ending it early, around 0.4–0.6, is the standard move: lock spatial structure while the composition forms, then let the rest of sampling add detail unconstrained.

    That's it - three real knobs plus the source selector, no ZoeDepth-specific tuning parameters exposed here (unlike CtrlNet MiDaS Settings, which adds midas_a/midas_bg for the preprocessor's own math). Output is zoedepth_settings, a BASIC_PIPE - JPS's own reused label for a plain bundled tuple, not Impact Pack's object despite the shared type name - meant to feed straight into CtrlNet ZoeDepth Pipe (JPS).

    Installing it

    ComfyUI Manager: search JPS Custom Nodes for ComfyUI. Manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/JPS-GER/ComfyUI_JPS-Nodes.git
    

    Restart ComfyUI afterward, removing any earlier copy of the pack first - the README calls out stale duplicate installs as a real source of conflicts. This node holds no models itself; you'll separately need a ZoeDepth preprocessor node (from ComfyUI's ControlNet Auxiliary Preprocessors pack) to actually run the depth estimation, which downloads its own weights on first use.

    Where people get tripped up

    The honest answer, if your depth-conditioned generation looks soft or the edges don't hold: that's plausibly ZoeDepth itself, not this node's settings. The community's own side-by-side testing landed pretty firmly on MiDaS having sharper, more useful edges for ControlNet purposes despite ZoeDepth's theoretically-more-accurate real-world scale - metric precision just isn't what a diffusion model's spatial conditioning needs. If you're choosing a depth preprocessor fresh today rather than working inside an existing ZoeDepth-based graph, Depth Anything v2 is the current default most people land on, and it'd be worth checking whether swapping preprocessors (and the matching CtrlNet MiDaS or a general depth Settings/Pipe pair) solves the problem before you spend time chasing strength and step-window values here. Where ZoeDepth's metric output genuinely earns its keep is downstream of ControlNet entirely - parallax, VR conversion, or anything that needs actual distances rather than just relative ordering - this node's outputs don't help with that use case at all, since they only feed a ControlNet apply node's weight/timing, not the raw depth values. And like its sibling ControlNet Settings nodes in this pack, it's newer than the published README, so don't expect to find it in that document's node list.

    CategoryJPS Nodes/Settings

    Inputs (4)

    NameTypeDefaultDescription
    zoe_fromCOMBO3 options: Source Image, Support Image, Support Direct
    zoe_strengthFLOAT1.00–10
    zoe_startFLOAT0.000–1
    zoe_endFLOAT1.000–1

    Outputs (1)

    NameTypeDescription
    zoedepth_settingsBASIC_PIPE