Nodes/playbook3d-comfyui-nodes/Playbook Outline Render Pass
ComfyUI Node

Playbook Outline Render Pass

Real line art from a renderer, not a Canny guess

By playbook3d·Created 2 years ago·Updated about a year ago· 21
Playbook Outline Render Pass
  • default_value
  • Image
api_key
run_id

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.

CategoryPlaybook 3D

Inputs (3)

NameTypeDefaultDescription
api_keySTRING
run_idoptSTRING
default_valueoptIMAGE

Outputs (1)

NameTypeDescription
ImageIMAGE