Depth Viewer ♾️Mixlab
Turn an image and its depth map into a parallax preview
- image
- depth_map
- frames
- frames
A depth map by itself is just a grayscale image - close things bright, far things dark. What makes depth maps genuinely useful is what you can do with that information once you have it: warp the original image along the Z axis as a virtual camera moves, and you get the "living photo" parallax effect that's become a whole genre of AI-generated content. Depth Viewer is Mixlab's take on that: feed it a color image and its matching depth map, and it renders an interactive pseudo-3D preview right inside the node, part of the pack's 3D toolset alongside its TripoSR-based image-to-3D nodes.
How it works
DepthViewer doesn't estimate depth itself - it consumes one. You supply the depth map from wherever you generated it (a dedicated depth-estimation node like Depth Anything, which sits right alongside Mixlab in most node catalogs), and DepthViewer uses it as a height field to displace the color image as you interact with the viewer, simulating a moving camera. The optional frames input takes an IMAGEBASE64 payload - this is how the interactive widget's rendered output gets fed back into the graph as real image data, which then comes out as the node's frames output.
The inputs and outputs that matter
image(IMAGE, required) - the color image.depth_map(IMAGE, required) - its matching depth map. This needs to actually be a depth map - a grayscale distance image from a real depth-estimation node - not an arbitrary second picture, or the parallax warp comes out as nonsense.frames(IMAGEBASE64, optional) - the round-trip channel for the interactive viewer's captured output.
The output is frames (IMAGE) - since this is an interactive viewer rather than a pure computation, expect that output to depend on actually interacting with the widget (moving the view, capturing frames) rather than populating automatically the moment the node runs.
How to install it
Ships with the Mixlab pack.
- ComfyUI Manager: search
comfyui-mixlab-nodes, install, restart. - Manual:
cd ComfyUI/custom_nodes && git clone https://github.com/shadowcz007/comfyui-mixlab-nodes.git, install requirements (install.baton Windows, or../../../python_embeded/python.exe -s -m pip install -r requirements.txt), restart.
DepthViewer itself needs no model download - the depth estimation happens upstream, in whatever node produced your depth_map. If that's one of Mixlab's own 3D nodes, check the README's Models section: TripoSR and its DINO backbone are separate downloads that go in models/triposr, only needed if you're using the pack's image-to-3D nodes rather than an external depth estimator.
Common issues & troubleshooting
The parallax looks wrong or inverted. Double-check depth_map is actually a depth map and not, say, a segmentation mask or an unrelated image - the node has no way to tell the difference, it just reads brightness as distance.
frames output is empty. This is an interactive node, not a fire-and-forget computation - if you haven't moved or captured anything in the viewer widget, there may be nothing to output yet.
General pack setup issues. This is a large, dependency-heavy pack (LLM, TTS, screen-share, and 3D features all share one install), so if setup fails on something unrelated to 3D, it's worth running the manual pip install -r requirements.txt and reading which specific package failed rather than assuming DepthViewer itself is broken.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| depth_map | IMAGE | — | |
| framesopt | IMAGEBASE64 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| frames | IMAGE | — |