Nodes/ComfyUI-JakeUpgrade/Adv3DViewer JK๐Ÿ‰
ComfyUI Node

Adv3DViewer JK๐Ÿ‰

A real 3D viewer in ComfyUI, not a screenshot

By jakechaiยทCreated 2 years agoยทUpdated 3 months agoยท 147
Adv3DViewer JK๐Ÿ‰
    • info
    โ—„file_pathโ–บ

    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 .bin file) 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.zip must 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.

    Category๐Ÿ‰ JK/๐Ÿ•’ 3D

    Inputs (1)

    NameTypeDefaultDescription
    file_pathoptSTRINGโ€”

    Outputs (1)

    NameTypeDescription
    infoSTRINGโ€”