Nodes/ComfyUI/Preview 3D (Advanced)
ComfyUI Node Runs on cloud

Preview 3D (Advanced)

The preview that passes the mesh through

By Comfy-Org·Created 4 years ago·Updated 20 days ago· 121,575
Preview 3D (Advanced)
  • model_3d
  • viewport_state
  • model_3d_info
  • camera_info
  • model_3d
  • model_3d_info
  • camera_info
  • width
  • height
width1024
height1024

Preview 3D (Advanced) is the preview node that doesn't end the graph. You feed it a model_3d file, it opens that file in the interactive 3D viewer so you can inspect it, and then it hands the same file - plus its metadata, camera, and dimensions - right back out to you. Plain Preview 3D is a terminal node; this one is a checkpoint. You get to look at your mesh mid-pipeline and keep building.

It's ComfyUI core, "3d" category, nothing to install. And it's part of the new wave: the advanced 3D family (this, Preview Splat, Preview Point Cloud, Load 3D Advanced) landed around June 2026 and is still being stabilized - a crash in API mode (no UI) got patched in July 2026, so keep ComfyUI updated if you're running it headless.

How it works

The mechanism is embarrassingly simple, which is why it's pleasant to use. It takes the model_3d file you give it, writes a temporary copy to ComfyUI's temp folder (deliberately not your output folder - it's scratch, not an export), and opens that copy in the 3D viewer. Meanwhile every input becomes an output. Nothing is transformed; the file just passes through while you get to look at it.

That passthrough is the whole point. In a mesh-generation workflow you might want to preview the result of a Voxel to Mesh node before committing to a Save 3D Model export. With the plain Preview 3D you'd have to branch the graph and run both. With this node you splice it in line: mesh goes in, you glance at it, mesh comes out, continues to the save node. No branch, no re-runs.

The inputs that matter

  • model_3d - the file to preview. Accepts the mesh formats: GLB, GLTF, FBX, OBJ, STL, USDZ, plus generic 3D files. Feed it a FILE_3D output from Load 3D (Advanced) or anything else that emits one.
  • viewport_state - the same LOAD_3D viewer widget from the loaders. It's the source of the camera angle you see, and it forwards the camera onward.
  • width / height - default 1024×1024; passed through untouched.
  • model_3d_info and camera_info - optional, advanced. Wire in metadata or a specific camera (say, one from Create Camera Info) and the preview opens at that framing.

Outputs: model_3d, model_3d_info, camera_info, width, height - a straight mirror of the inputs, so downstream nodes see exactly what you put in.

The gotcha

The gotcha is format discipline, and it's shared across the preview family. This node takes meshes. A gaussian splat belongs in Preview Splat, a raw point cloud in Preview Point Cloud - and the socket types enforce it, so ComfyUI won't even let you wire a splat in here. The one real edge case is PLY files, which can be either a splat or a point cloud; the node can't tell, so you have to know which you're dealing with.

Other than that, treat this as the "checkpoint" preview: it's the one to use when you want to see your mesh and keep your pipeline linear. If you just want to eyeball a file at the end of everything and you don't care about passthrough, the plain Preview 3D is simpler and takes a bare path string. Different tools, same viewer.

Category3d

Inputs (6)

NameTypeDefaultDescription
model_3dFILE_3D_GLB,FILE_3D_GLTF,FILE_3D_FBX,FILE_3D_OBJ,FILE_3D_STL,FILE_3D_USDZ,FILE_3D3D model file from an upstream 3D node.
viewport_stateLOAD_3D
widthINT10241–4096
heightINT10241–4096
model_3d_infooptLOAD3D_MODEL_INFO
camera_infooptLOAD3D_CAMERA

Outputs (5)

NameTypeDescription
model_3dFILE_3D
model_3d_infoLOAD3D_MODEL_INFO
camera_infoLOAD3D_CAMERA
widthINT
heightINT