MiDaS Depth Approximation
The OG depth map node, and when it's still the right call
This node turns a single flat image into a depth map - a grayscale image where bright means close and dark means far. It runs MiDaS, Intel's depth estimator, the model that shipped with SD 2.0's depth2img and was the default ControlNet depth preprocessor for most of 2022–2023. WAS baked it into the suite so you can get a depth map without pulling in a separate preprocessor pack.
Here's the honest positioning up front, because it matters: MiDaS is the old guard. The community has largely moved to Depth Anything v2 for ControlNet work - better generalization, sharper edges, the current default. So why would you still reach for the WAS MiDaS node? Because it's already in a pack you probably have, it's dead simple, and MiDaS genuinely holds up. There's a well-known r/StableDiffusion test - "Zoe Depth vs MiDaS Depth. Spoiler alert: Use MiDaS" - where MiDaS's sharper edges beat the theoretically-more-accurate ZoeDepth for ControlNet. Sharp relative depth is what conditioning wants, not metric precision.
How it works
MiDaS produces relative depth: it tells you what's nearer and farther, not distances in meters. From that grayscale map you can do two very different things. One, feed it to a depth ControlNet to constrain a new generation to the same spatial layout - redraw a room in a new style while keeping the geometry. Two, use the raw map as geometry for downstream effects: 3D parallax, displacement, stereo/VR pairs, even a bas-relief 3D print. One photo in, usable depth out, no camera rig required.
WAS ships a companion MiDaS Model Loader so you can load a MiDaS model once and feed it in as an optional input, which matters if you're calling depth repeatedly and don't want to reload the model every time.
The inputs and outputs that matter
- The image in - the picture you want a depth map of.
- An optional MiDaS model - from the MiDaS Model Loader, if you'd rather manage loading yourself.
- The depth map out - a grayscale image. Wire it into a depth ControlNet's preprocessing, or into a displacement/parallax node.
I'm describing these from the README and the depth-estimation context rather than a formal schema, so I won't invent exact toggle names.
How to install it
Part of the WAS Node Suite:
- ComfyUI Manager: search was-node-suite-comfyui, install, restart.
- Manually:
cd ComfyUI/custom_nodes && git clone https://github.com/WASasquatch/was-node-suite-comfyui/, thenpip install -r requirements.txtagainst your ComfyUI Python, and restart.
Unlike the pack's plain pixel nodes, this one downloads a model - the MiDaS weights - on first run, and needs the ML dependencies (torch is already there for ComfyUI). First execution will be slow while it fetches; after that it's cached.
Common issues
The big one: don't expect miracles from an aging model. If your depth map looks mushy, backgrounds blur into foregrounds, or a ControlNet won't hold the composition, that's MiDaS showing its age - swap to a Depth Anything v2 node from comfyui_controlnet_aux or Kijai's pack. The KB's whole depth-model rundown exists because the newer models are genuinely better for most work; MiDaS is the compatibility choice, not the quality ceiling.
Also remember MiDaS is relative depth - the values aren't real-world scale. If you're doing measurement or metric work you want ZoeDepth or Metric3D instead; for ControlNet and creative displacement, relative is exactly right and metric would actually be worse.
And the pack caveat: WAS Node Suite has been retired since December 2023. If a ComfyUI update makes every WAS node vanish with an "Import Failed" - a very common report - that's dependency drift across the whole suite (WAS pins older packages like BLIP, and updates break the import). Re-run requirements.txt against the correct Python environment, or use the bundled install.bat, then restart.
Inputs (0)
No inputs
Outputs (0)
No outputs