Preview 3D & Animation
The zero-effort way to actually see your model
- model_file
- camera_info
- bg_image
Preview 3D is the "just let me look at it" node. One input, one job: you hand it a 3D model - either as a file object from another node or as a plain path string - and it opens that model in the interactive 3D viewer so you can orbit it, zoom it, and inspect it before you save anything. It's the equivalent of a Preview Image node, but for meshes, and it does exactly what its search aliases promise: "view mesh", "3d viewer".
It ships with ComfyUI core in the "3d" category, no install. It's the oldest of the preview nodes - it landed back in December 2024, right alongside the original Load 3D - and it's the one with the simplest wiring.
What makes it different from the other previews
There are actually three preview nodes now, and it's worth knowing which is which. Preview 3D (Advanced) takes a model_3d file from an upstream 3D node and passes it back out, so it slots in the middle of a graph. Preview Splat and Preview Point Cloud are specialized for those formats. This one, the plain Preview 3D, is the beginner's version: it accepts a model file or a bare path string (just type a path, or wire one in), and it has no outputs at all. It's a terminal node. It sits at the end of your graph and says "here's the model, admire it."
That path-string flexibility is quietly useful. If a loader somewhere upstream hands you a mesh_path string - like Load 3D's output - you can wire that string straight in here and get a preview without any file-object plumbing.
The optional inputs worth knowing
- camera_info - a
LOAD3D_CAMERAobject (from Create Camera Info, or from a loader's camera output). Wire one in and the viewer opens at that camera instead of a default angle. Useful if you want to verify a specific framing before rendering. - bg_image - an IMAGE to use as the backdrop. This one's underrated: drop in the source photo you generated the model from and you can eyeball whether the mesh actually lines up with the reference.
Where it shows the file
Two paths, depending on what you feed it. Give it a real file object and it copies the model to a scratch file and points the viewer at it. Give it a path string and it points the viewer straight at that path. Either way you're not committing anything to your output folder permanently - this is a look, not an export. When you're happy, the actual save is Save 3D Model's job.
The gotcha
The gotcha is scope. Because this node takes any mesh format ComfyUI knows - GLB, GLTF, OBJ, FBX, STL, USDZ, and raw 3D files - it won't catch a wrong-format file for you. Feed it a gaussian splat and you'll get a blank or broken viewer, because splats need the dedicated Preview Splat node (and point clouds need Preview Point Cloud). The node can't hold your hand on that one, and neither can I: check the file extension before you assume the viewer is broken.
Otherwise, there's not much to break here. That's the point. It's the lowest-friction node in the whole 3D category, and honestly the one you'll reach for when you just want to confirm the thing you generated isn't a nightmare before you export it.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model_file | STRING,FILE_3D_GLB,FILE_3D_GLTF,FILE_3D_FBX,FILE_3D_OBJ,FILE_3D_STL,FILE_3D_USDZ,FILE_3D | 3D model file or path string | |
| camera_infoopt | LOAD3D_CAMERA | — | |
| bg_imageopt | IMAGE | — |
Outputs (0)
No outputs