Playbook Outline Render Pass
Real line art from a renderer, not a Canny guess
- default_value
- Image
Playbook Outline pulls the outline pass of a cloud-rendered 3D scene into ComfyUI as a line-art image. If you've worked with edge-based ControlNets, you know the family: Canny, lineart, softedge - images of edges that guide a new generation's structure. This node gives you that from a renderer's geometry instead of an edge detector's guess.
The difference is worth spelling out. Canny is a local gradient detector: it finds where pixels change sharply, which is a decent proxy for edges and also famously picks up noise, texture, and lighting changes that have nothing to do with actual geometry. The outline pass from a 3D renderer is derived from the actual scene - object silhouettes, creases, material boundaries - so the lines you get are clean, closed, and meaningful. Feed that into a ControlNet and your generation locks onto the real structure of the scene rather than the texture of a flattened image.
Fun detail: the pack's README promises a Canny node that doesn't exist in the shipped code. If you came here looking for that, this outline node is the one that actually fulfills the intent - edges from your 3D scene, minus the noisy threshold tuning.
How it works
Inputs: api_key (required), run_id (optional), default_value (optional image). Output: Image.
The mechanism is the standard Playbook flow, identical to Playbook Beauty and Playbook Depth: exchange api_key for a user token at accounts.playbook3d.com/token-wrapper/get-tokens/<key>, request download URLs (optionally scoped by run_id), and fetch the outline key from the response. The image is decoded, EXIF-straightened, converted to RGB, and returned as a tensor.
And yes - the quiet-failure design applies here too. If the key is bad or the render isn't ready, the node logs to console and returns default_value rather than raising. Wire a fallback image into that input if you want the graph to survive a hiccup; leave it empty and a failure passes None downstream. The node also re-fetches on every queue via a time-based IS_CHANGED, so each run is a live cloud round trip.
Install
Standard pack install. ComfyUI Manager → Playbook Nodes, or:
cd ComfyUI/custom_nodes
git clone https://github.com/playbook3d/playbook3d-comfyui-nodes
Restart ComfyUI. No models, no extra dependencies - requests, PIL, numpy, torch are all already in ComfyUI. You need the Playbook3D API key from beta.playbook3d.com.
Troubleshooting
The usual suspects: empty or wrong API key (check console for "Could not retrieve user_token"), or a render that hasn't produced an outline pass yet (you'll see "No 'outline' key found"). One thing specific to edges: how the outline pass is tuned happens on the Playbook3D render side, not here - if your lines are too heavy or too faint for the ControlNet you're using, don't expect a parameter on this node to fix it; adjust the render settings, or post-process the output with a threshold or erode/dilate before it hits the ControlNet.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | — | |
| run_idopt | STRING | — | |
| default_valueopt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| Image | IMAGE | — |