3D Model Batch Preview
Preview a Whole Batch of 3D Models Without Trashing Your Output Folder
- models
ComfyUI's native Preview3D shows you one model in an orbitable viewport. That's great until your generator hands you a batch - twenty Hunyuan3D or TRELLIS outputs sitting in one MESH object - and you want to eyeball all of them before committing anything to disk. Model3DBatchPreview is that eyeball: the batch version of a preview, letting you click through every model in the group right in the canvas without permanently writing a thing.
It's the cheapest node in this part of the pack, and that's its whole appeal. Think of it as the 3D equivalent of a contact sheet - or, more precisely, of PreviewImage but for meshes. No save, no naming decisions, no sidecar files. Just "show me what I got."
How it works
Model3DBatchPreview is an output node with exactly one optional input: models. The tooltip is the spec - "MESH batch, File3D, or list of either / paths." You can feed it a whole MESH batch, a single loaded File3D, a list of several, or plain paths to 3D files. Internally it flattens whatever arrives into individual models (a MESH batch is split per-model, File3D items and paths pass through), writes each one as a temporary .glb into a fresh output/preview3d_batch_<random>/ subfolder, and hands the list to the frontend's native 3D viewer through the same ui result channel that Preview3D uses. Each model becomes an item in that viewport; you orbit and click through them all.
One implementation detail that explains a lot of behavior: the node returns IS_CHANGED as the current time, which means it re-runs on every queue, every time. That's deliberate - a preview that skips a run because ComfyUI's cache thought nothing changed would show you stale models. The flip side is the standard cost of that trick: it can't be skipped, so it adds a little overhead to every run it sits in. Keep it as a final preview node, not buried mid-graph.
There are no outputs and nothing to wire downstream - it's a terminal node. models in, models eyeballed.
How it fits the workflow
This is the "look before you save" step that pairs with Model3DBatchSaver from the same pack: preview the whole batch, note which ones you like, then let the saver write the keepers to a real folder with proper names and captions. Because the preview writes to a random temp subfolder, your main output directory stays clean - which is more than you can say for the equivalent of dumping twenty GLBs into output/ and sorting it out later.
It's also a genuinely useful sanity check on generated 3D, and the honest framing matters here: the KB's verdict on this corner of the ecosystem is that generated meshes are impressive silhouettes over rough topology - fine for static props and printing, not for rigging. A batch preview is exactly how you find the two good silhouettes out of twenty before you bother saving them.
Installing it
Part of the ComfyUI-Batch-Process pack, so the usual:
- ComfyUI Manager: search "ComfyUI-Batch-Process".
- Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/Zar4X/ComfyUI-Batch-Process
Restart after. Dependencies are just Pillow and torch, no model downloads. And the one real dependency to watch: like the batch saver, this node uses ComfyUI's native 3D helpers (comfy_extras.nodes_save_3d), so it needs a recent ComfyUI. On an older build it errors with "MESH support requires comfy_extras.nodes_save_3d" - update ComfyUI, not the pack.
Common issues
- Nothing shows in the preview - an empty or unconnected
modelsinput just produces an empty preview, no error. Check what's feeding it. - "requires comfy_extras.nodes_save_3d" - stale ComfyUI. Update.
- Temp GLBs accumulating in
output/preview3d_batch_*- expected. That's scratch space; the saver is the permanent path. Purge the folders occasionally if you run a lot of previews. - It runs every single queue, even when nothing changed - by design, so you never see stale models. It's a preview; that's the job.
Small, terminal, and exactly as useful as it sounds. If you generate 3D in batches, you'll wonder how you checked them before this.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| modelsopt | * | MESH batch, File3D, or list of either / paths |
Outputs (0)
No outputs