Nodes/ComfyUI_depthMapOperation/Points To Image (Orthographic)
ComfyUI Node

Points To Image (Orthographic)

The 'render it back to a picture' node your depth-map pipeline needs

By chri002·Created about a year ago·Updated about a year ago· 15
Points To Image (Orthographic)
  • images
  • points
  • IMAGE
colorfalse

The Image To Points node gives you a cloud, Transform Points spins it - but neither produces anything you can look at. This is the node that closes the loop: it renders a Points3D cloud back into a flat IMAGE, using an orthographic projection. It's the "back to 2D" half of every workflow in this pack, and for such a small niche node it's the one people actually search for.

Think of it as the difference between a camera and a scanner. Orthographic projection means there's no perspective - no lens, no vanishing point, no objects growing bigger as they get closer. Everything projects straight down its axis. If you just want to see your transformed cloud as an image, or you're building a parallax flip where you re-render the same cloud from a slightly rotated angle frame by frame, this is the simpler, cheaper option. Its sibling, Points To Image (Projection), adds a real camera with FOV if you want the perspective look instead.

How it works

The node reads the dimensions (width and height) off the images input - that's the template that sets the output size - then projects the cloud's X and Y straight into pixel coordinates. Z isn't discarded: it becomes the grayscale value, with nearer points rendered brighter. Overlapping points are depth-sorted so closer ones win, which is what makes a rotated head read correctly instead of showing through itself.

The inputs that matter

  • images - not a texture; a size template. Feed it any IMAGE and the output will match its width and height. In practice that's usually the original photo, so your re-render lines up with where you started.
  • points - the Points3D cloud to draw.
  • color (default OFF) - the one that changes the output character. OFF gives you a depth-as-grayscale render (the classic "relief" look). ON colors every point with the RGB it carried from the source image.

Output: IMAGE - a normal ComfyUI image tensor. This is the nice part: unlike Points3D, a regular IMAGE wires into anything. Save it, preview it, feed it into KSampler for img2img, use it as a mask source, whatever.

Install

ComfyUI Manager → "ComfyUI_depthMapOperation", or the manual route:

cd ComfyUI/custom_nodes
git clone https://github.com/chri002/ComfyUI_depthMapOperation

Restart and you're done - no model downloads, no keys. Dependencies (torch, numpy, opencv-python, scipy, pandas) are already present in a stock ComfyUI install.

Where people get burned

The classic mistake is wiring the source image into images and expecting the node to warp it. It won't - it only borrows the dimensions. Second gotcha: the pack is batch-size-1 through and through, so a batched cloud or image set will fail; keep things to single frames.

And set expectations: this is a tiny one-maintainer pack (last touched mid-2025, README TODO admits "artifacts with some extreme values"). Sparse clouds render with holes - if yours does, either raise quality on the Image To Points side to thicken the cloud, or step up to the "advance" renderer, which has a dedicated hole-filling pass. For flat-relief renders you'll rarely need either.

CategorydepthMapOperation

Inputs (3)

NameTypeDefaultDescription
imagesIMAGE
pointsPoints3D
colorBOOLEANfalse

Outputs (1)

NameTypeDescription
IMAGEIMAGE