Nodes/Intensity Fake Depth Node for ComfyUI/Intensity Depth Estimation
ComfyUI Node

Intensity Depth Estimation

The depth node that doesn't actually know what depth is — and why that's the point

By zengxianyu·Created 8 months ago·Updated 8 months ago· 1
Intensity Depth Estimation
  • image
  • depth_image
methodintensity
depth_range1.0
normalizetrue
blur_radius1.0

The name is a lie, and the lie is the feature

Intensity Depth Estimation doesn't run MiDaS, Depth Anything, or any learned model. It does zero inference, downloads no weights, needs no API key - it just reads the brightness of each pixel and calls that "depth." White becomes near, black becomes far, and you're done.

So why would you reach for it? Because its home is video-to-video, specifically the Wan2.2-VideoReRender stylization workflow this pack ships with. When you're re-rendering a video in a new style, you want a depth guide that tracks every frame. A real depth model per frame is slow, and frame-by-frame estimates from image models flicker (the depth-estimation panel calls this out - video wants a video-native model like DepthCrafter, or it shimmers). Fake depth is instant, deterministic, and mathematically identical on every frame, which is exactly what a VACE or ControlNet-style condition wants from a cheap guide. It's the node you pick when the depth map is scaffolding, not content.

In the actual VideoReRender workflow, GetVideoComponents feeds frames in here, the depth_image goes straight into the control-conditioning node, and a PreviewImage lets you eyeball it. Fast, free, wired up.

How it actually works

Read the source and it's refreshingly small. The image tensor gets converted to grayscale with the classic Rec.601 weights (0.299 R + 0.587 G + 0.114 B). Then one of four method modes:

  • intensity - brightness is depth, as-is.
  • inverted_intensity - dark is near, light is far.
  • gradient - inverts the gradient magnitude, so flat regions read as near and edges become dark "far" contours.
  • sobel - same idea via a Sobel edge filter, which gives you the "detailed object boundaries" the pack advertises: crisp, slightly thicker contours than the raw gradient.

Both edge modes deliberately invert the edge map so object outlines show up as dark lines the condition can latch onto. Finally the map is scaled by depth_range, optionally normalized to 0–1, blurred if asked, and replicated across three channels so the output is a normal RGB-format IMAGE that any depth-control node will accept.

The inputs that matter

Beginners set three things:

  • method - start with intensity and flip to inverted_intensity if your near objects come out black.
  • blur_radius (optional, default 1) - smooths the map and softens noise on compression-heavy video frames. Crank it up if the depth map looks grainy.
  • normalize (default on) - rescales to full 0–1 range. Leave it on; with it on, depth_range effectively does nothing, so don't chase that slider expecting a visible change.

The output is a single depth_image (IMAGE) that wires into the conditioning node's depth input, or into any depth ControlNet you're feeding.

Install

Two clicks or one command. Via ComfyUI Manager, search "Intensity Fake Depth Node". Or:

cd ComfyUI/custom_nodes
git clone https://github.com/zengxianyu/ComfyUIIntensityDepth

Restart ComfyUI and it's in the menu under image/processing. There is no requirements.txt and no model download - it only uses torch, numpy, and PIL, all already present in ComfyUI. This is about the lightest install in the entire ecosystem.

When to be honest with yourself

The catch: brightness is not geometry. A bright sky reads as the nearest thing in the frame, a dark object in front of a lit background gets pushed back. For real scenes, a real estimator (Depth Anything V2 via Kijai's nodes) is the correct tool. But for stylized video-to-video where you need a stable, boundary-rich guide that won't cost you 10 seconds a frame, this little fake is genuinely the one you'd reach for.

Categoryimage/processing

Inputs (5)

NameTypeDefaultDescription
imageIMAGEInput image for depth estimation
methodCOMBOintensityDepth estimation method
depth_rangeFLOAT1.00.1–10Maximum depth range
normalizeBOOLEANtrueNormalize depth values to 0-1 range
blur_radiusoptFLOAT1.00–10Gaussian blur radius for smoothing

Outputs (1)

NameTypeDescription
depth_imageIMAGE