ComfyUI Node Runs on cloud

Three Viewer

The 3D preview that lives right on the node

By WASasquatch·Created 3 years ago·Updated 4 days ago· 1,844
Three Viewer
  • app

    After you've wired geometry, materials, lights and a camera into a Three.js scene, you want to see it. Three Viewer is the eyeball node in WAS Node Suite's Three group (43 nodes, part of the big 2026 v3 rewrite that took the suite from 220 to 457 nodes). It takes the whole assembled scene from Three App and keeps drawing it on the node's own canvas, in the browser, live. Drag to orbit, scroll to zoom, and the thing you built out of wires becomes a thing you can look around - without ever exporting a frame.

    What it isn't

    Here's the part that trips people up: Three Viewer returns nothing. Outputs: none, by design. It's an output node, so it runs even with nothing wired after it, and its entire job is to show you the scene. If you want pixels - an actual IMAGE to save, composite, or feed into img2img or a ControlNet - that's Three Render, which draws the same app descriptor and hands the frames on. Viewer is for iteration; Render is for export. Try to drag a wire out of the Viewer looking for an image and you'll come up empty, and that's the node working as intended.

    How it works

    Everything in this Three system is browser-side. The Python nodes don't render a single polygon - they build descriptors, and Three App bundles your scene, camera and renderer settings into one THREE_APP value. Three Viewer sends that to the browser, and the bundled three.js (it ships inside the pack, so nothing downloads) constructs the WebGL scene in your open ComfyUI tab and redraws it every frame. The view fills the node, so drag the node's corner to make it bigger - this is one of those WAS nodes that "shows its work."

    The node also carries a couple of in-node controls. Pause stops the animation loop without disturbing the camera. Reset Camera puts the camera back to the exact values its node holds - handy after you've orbited somewhere confusing and want to get home.

    Inputs and wiring

    One input: app, straight from Three App. That's the whole interface, and it's why this node is so easy to get wrong and so hard to debug - all the interesting settings live one node upstream.

    So if the drag-to-orbit feels dead, the knob you want isn't on the Viewer. Orbit control lives on Three App: with it on, the viewer can be dragged around the camera's target; with it off, the camera stays exactly where the camera node put it. Middle-drag (or shift-drag) pans, and the wheel zooms - all of it gated by that one App toggle.

    Installation

    It's a WAS Node Suite node, so you install the suite. In ComfyUI Manager, search WAS Node Suite and install, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/WASasquatch/was-node-suite-comfyui.git
    

    then restart ComfyUI. Requires ComfyUI 0.14.0+ and Python 3.10+. No extra packages and no model weights - the three.js library is bundled in the pack and fetched by the browser from your own server only when a scene runs.

    Where people get burned

    • Missing from the node menu? The 43 Three nodes sit behind the features.threejs gate in <user dir>/was-node-suite/config.yaml. It defaults on, but an older config that turned it off hides the whole group.
    • Can't orbit or zoom? Orbit control is off in Three App, not a Viewer problem.
    • No picture? The scene is built in the browser on a WebGL surface - nothing renders on the server. If you're driving ComfyUI purely through the API with no tab open, there's no canvas to draw on, which is a real limitation of this whole Three system (Three Render needs an open tab too).
    • Need an image out of it? You're at the wrong node. Put Three Render at the end instead.

    When you want to capture the scene rather than admire it, wire the same app into Three Render and the frames come back as real images you can save or feed straight into a sampler.

    CategoryWAS Suite/Three

    Inputs (1)

    NameTypeDefaultDescription
    appTHREE_APPThe scene, camera and renderer settings, from Three App.

    Outputs (0)

    No outputs