Dustin Marble Preview Thumbnail
See what Marble built without leaving ComfyUI
- image
Five minutes of waiting for Marble to generate a world, and the first thing you want is proof it worked. That's this node. It takes the asset_urls_json that every generate node in this pack spits out, extracts the thumbnail_url, downloads the thumbnail, and drops it into the ComfyUI preview panel. No more opening Marble's web viewer to check - the result shows up in your graph like a local generation would.
What it does
Under the hood it's deliberately simple: resolve the thumbnail URL from your inputs, fetch it over HTTP, convert to an IMAGE tensor, and save a temp file for the preview panel. It accepts either of two inputs - asset_urls_json from a generate node, or image_url with a direct thumbnail URL - and if you provide a direct image_url it wins over the JSON. The README's recommended wiring is:
Dustin Marble Generate World → asset_urls_json → Dustin Marble Preview Thumbnail
The output
image is a real ComfyUI IMAGE tensor, which is the sneaky-good part of this node. It's marked as an output node (so it renders the preview), but it also returns the image so you can wire it onward - into a Save Image node, a compare node, or anything else that wants an IMAGE. So it's not just a viewer; it's a "preview and pass along" node. If the thumbnail isn't in your asset_urls_json - say you fed it a hand-built JSON that only has mesh URLs - you get a clear error: "asset_urls_json does not contain 'thumbnail_url'."
When you'd use it
Honestly, every time you generate a world and want to glance at the result without a browser tab. That's the whole job. The thumbnail is a quick sanity check - a proper look at the actual environment means the panorama path instead (Preview Panorama, or the interactive Pano 360 Viewer if you want to look around). This one answers "did it work and is it roughly what I asked for," which is a surprisingly useful question to answer cheaply.
Notes and install
The download runs server-side, which sidesteps CORS entirely - the node fetches the image with requests and hands ComfyUI a local temp file, so Marble's CDN URLs don't trip browser restrictions. It needs requests (auto-installed) and no API key - this node doesn't call the API, it just downloads a public URL. So the key requirement is really that whatever asset_urls_json you feed it came from a generation that actually completed.
cd ComfyUI/custom_nodes
git clone https://github.com/zihualiu1997/dustin-comfyui-nodes
Restart ComfyUI, or install "dustin-comfyui-nodes" from ComfyUI Manager. Search "Dustin" in the node menu. No models, no key, no GPU - the whole thing is one HTTP GET and a tensor conversion.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| asset_urls_jsonopt | STRING | — | |
| image_urlopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |