Adv3DViewer JK๐
A real 3D viewer in ComfyUI, not a screenshot
- info
Most "3D nodes" in ComfyUI hand you a file and call it a day. Adv3DViewer_JK actually lets you look at the mesh - a full three.js viewer inside the ComfyUI UI where you can orbit, zoom, switch shading modes, scrub a camera animation, and export the result as GLB. It's the payoff node for JakeUpgrade's img2mesh workflows: you generate a mesh, and instead of trusting that it's not a blob, you inspect it properly.
How it works
You give it one thing: a file_path string pointing at a 3D file on disk. It supports GLB, FBX, SMPL bin, OBJ, and PLY, plus zipped variants (obj.zip and fbx.zip, which bundle the mesh with its textures and material files). It copies the file into an output staging folder (Adv3DViewer_JK_tmp under your ComfyUI output directory) and serves it to an interactive viewer panel.
Inside the viewer you can:
- Orbit, pan, zoom, and center/focus the object or a selected mesh.
- Switch material display modes - original material, wireframe, normal, depth, lineart, canny, edge, contour, SSAO, and GTAO shading. The render-style outputs (lineart/canny/edge) are handy for seeing topology or extracting a 2D view.
- Play a camera animation if the file has one, with a custom camera track, and export the whole thing as GLB.
- Select a mesh and edit its material (a multi-sub material editor), get its 3D data, take screenshots.
It's an output node, so it also returns an info string - a status message you can route to a text viewer or log.
Inputs and outputs
file_path- optional STRING. The path to your 3D file. Wire it from a mesh-save node's output or type it directly. If empty or the file is missing, the node returns an error string instead of crashing.info- STRING, the status result.
Installing it
Ships in ComfyUI-JakeUpgrade:
- ComfyUI Manager โ search "JakeUpgrade" โ install โ restart.
- Or:
cd ComfyUI/custom_nodes
git clone https://github.com/jakechai/ComfyUI-JakeUpgrade
cd ComfyUI-JakeUpgrade
pip install -r requirements.txt
Windows portable: run install.bat or ../../../python_embeded/python.exe -s -m pip install -r requirements.txt. No model downloads - it's a viewer, not a generator.
Common issues
- Only one file at a time. The README is explicit: one file import per view, and no scene editing. It's a viewer, not Blender.
- Camera animation quirks. Attribute animations on cameras/lights aren't imported. The recommended workflow is to bake all animation into a single global frame-by-frame clip so the viewer can scrub it with consistent start/end frames. If you export from Max or Maya, use a vertical FOV and set Aperture Width to 35mm so the aspect ratio matches the viewer.
- Your mesh comes from SAM3D body tracking? The path string from
SAM3D From Video JK(a.binfile) is exactly the kind of input this node eats - it's the natural inspection step after that node. - The viewer window is empty. Check that the path resolves and the file is a supported format.
obj.zip/fbx.zipmust be zip archives of the mesh plus its textures.
This is the node that makes ComfyUI feel like a 3D tool rather than a batch script. If you're running any img2mesh or motion-capture workflow, it's the difference between generating blind and actually checking your output.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| file_pathopt | STRING | โ |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| info | STRING | โ |