Playbook Depth Render Pass
Ground-truth depth, not an estimator's guess
- default_value
- Image
Playbook Depth pulls the depth pass of a cloud-rendered 3D scene into ComfyUI as a grayscale image. If you've ever used a depth ControlNet with a MiDaS or Depth Anything preprocessor, you know the deal: white is near, black is far, and the map constrains a new generation to the same spatial structure. This node gives you that map, except it's not estimated from pixels - it's measured by an actual 3D renderer.
That difference is the whole point, and it's worth sitting with for a second. Depth estimators like Depth Anything are impressive, but they're guessing: they infer distance from a 2D image, and they hallucinate structure on ambiguous inputs - flat walls with wallpaper can read as geometry, mirrors and glass throw them off. A render pass comes straight out of the camera's z-buffer. It's ground truth for your scene, pixel for pixel. When you feed that into a ControlNet, you get structure adherence without the preprocessor's errors baked in.
How it works
Playbook3D is the cloud render service behind this pack. This node does three things:
- Turns your api_key into a user token via
accounts.playbook3d.com/token-wrapper/get-tokens/<key>. - Requests download URLs, with or without an optional run_id.
- Fetches the
depthimage from that response and returns it as anImagetensor.
The run_id selects a specific render run; leave it blank to pull your current/latest render. There's also a default_value image input, and this is the one to actually use: if the API call fails for any reason - bad key, render not finished, server hiccup - the node silently returns default_value instead of raising. No fallback wired means a quiet None flows downstream and breaks whatever's waiting on it. The node logs its failure to the console, but it won't show you an error box. That quiet-degradation design is a recurring theme in this pack; plan around it.
Like the other render-pass nodes, it re-fetches on every queue execution (a time-based IS_CHANGED), so every run is a live network round trip. That's correct behavior for a node pulling fresh renders, just be aware you're not getting caching.
Install
Standard for the pack - ComfyUI Manager, search for Playbook Nodes, or:
cd ComfyUI/custom_nodes
git clone https://github.com/playbook3d/playbook3d-comfyui-nodes
Restart ComfyUI. No model downloads, no extra dependencies (requests, PIL, numpy, torch are all in ComfyUI already). The one prerequisite is a Playbook3D API key from beta.playbook3d.com - without it, this node is just a fancy way to output your fallback image.
Troubleshooting
Same failure pattern as Playbook Beauty: check your console for "Could not retrieve user_token" or "No api_key provided." The depth pass will also come back empty if the render hasn't completed or the scene doesn't have a depth pass enabled on their side. And keep the depth map's color semantics in mind when you wire it into a depth ControlNet - the renderer's near/far convention should match what your ControlNet expects, and if the result looks inverted, flip the map rather than fighting the node.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | — | |
| run_idopt | STRING | — | |
| default_valueopt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| Image | IMAGE | — |