Playbook Image (External)
An image that arrives by URL (or falls back gracefully)
- default_value
- Image
Playbook Image fetches a picture from a URL and hands it to your workflow as a normal ComfyUI IMAGE. Nothing exotic - it's the "load an image from the internet" node, which is one of those things you think you'll never need until a workflow wants a reference shot that lives on somebody's server.
It's part of Playbook Nodes, the ComfyUI side of Playbook3D, the cloud 3D render service. In that world this node is an input valve: when a workflow runs on their platform, an image you've dropped into the web UI (as a URL) becomes a real ComfyUI image for IP-Adapter reference, img2img conditioning, or whatever you're doing. Locally, it's simply a URL-to-image loader with a fallback.
How it works
Two optional inputs do the real work:
- default_url - a string. If it starts with
http, the node downloads it withrequests, opens it with PIL, flips the EXIF orientation, converts to RGB, and returns the image tensor. That's the happy path. - default_value - an
IMAGE. If the URL is missing, invalid, or the download fails, the node catches the exception and returnsdefault_valueinstead. No error, just the fallback.
The required id and label strings are the platform-binding metadata you'll see on every external node in this pack - inert locally.
So the behavior is: URL wins if it's valid, otherwise whatever image you wired in as default_value comes through, and if neither is present you get None. It's the same quiet-failure philosophy as the render-pass nodes: designed to degrade, not to shout.
Install
Same as every node in this pack. ComfyUI Manager, search for Playbook Nodes, or:
cd ComfyUI/custom_nodes
git clone https://github.com/playbook3d/playbook3d-comfyui-nodes
Restart ComfyUI. No API key needed here - the node makes an outbound request to whatever URL you give it, but it doesn't talk to Playbook's servers. No models, no extra dependencies beyond what ComfyUI bundles (requests, PIL, numpy, torch).
Troubleshooting
The main thing to know is what it does not validate. It only checks that the URL starts with http - it won't verify the server responds, that the content is an image, or that the URL is reachable. A typo'd link or a dead endpoint just triggers the fallback path, so if you're getting your default_value back and expected a download, the URL is the suspect. Check your console: it prints "Exception while downloading Image" with the reason. One more gotcha - this only handles single images. If you point it at a page instead of a direct image file (a .png/.jpg endpoint), you'll get an HTML file that PIL can't open, and again, silent fallback. Give it a direct file URL and it's rock solid.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| id | STRING | Node ID | — |
| label | STRING | Node Label | — |
| default_valueopt | IMAGE | — | |
| default_urlopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| Image | IMAGE | — |