3D MODEL Web Viewer @ vrch.ai
Pop out a 3D model in a browser window from your workflow
- MODEL_FILE
- URL
Most ComfyUI viewers show you a flat image. This one shows you a 3D model. VrchModelWebViewerNode opens a separate browser window that loads and displays a 3D model file (think glTF/GLB) served from your ComfyUI machine - which sounds gimmicky until you remember this pack's whole identity is real-time interactive art, and being able to look at a generated or processed model from any browser on the network is exactly the live-show workflow it's built for.
What it does
The one field you have to set is model_file - the 3D model file it should display. From there, the controls break into three groups:
- Where it connects:
server(default127.0.0.1:8188, your ComfyUI address) andsslfor when you're serving over HTTPS. This is what the browser window fetches the model from, so on another device it needs to point at the machine actually running ComfyUI. - How it refreshes:
refresh_interval(1–10000 ms, default 5000) controls how often the viewer polls for a new file. Drop it low for live updates, keep it high if you don't want your browser hammering the server. - The window:
window_widthandwindow_height(defaults 1280×960), plussave_settingsto persist your window choices.show_urlreveals the address,dev_modegives you browser devtools, andextra_params/urllet you pass extra query parameters or override the URL entirely.
It outputs MODEL_FILE (the file it loaded) and URL (the address it opened), and it's an output node - it's the end of a branch, the display step. If you're feeding it from a pipeline that generates or transforms 3D assets, those two outputs let you hand the result onward or log where it's being served.
Why a separate window?
Because "any device with a browser" is the point. The pack's pitch is universal web accessibility - open the workflow on a big screen, a tablet, a client's phone - and this node is the 3D leg of that. Want to note the demo model on a phone without a GPU on it? That's what this is for. It's also why the README's troubleshooting section exists: serving from one machine into browsers on another is where the friction lives.
Installing it
Same pack install as every node in this set:
cd ComfyUI/custom_nodes
git clone https://github.com/VrchStudio/comfyui-web-viewer
pip install -r comfyui-web-viewer/requirements.txt
Or search ComfyUI Web Viewer in ComfyUI Manager and restart. No model downloads for the node itself - the 3D model files are yours.
Troubleshooting
Two problems come straight from the README and they're the ones you'll actually hit. First, if the viewer window opens blank in Chrome, add your ComfyUI server's IP to chrome://flags/#unsafely-treat-insecure-origin-as-secure - Chrome treats the http origin as insecure. Second, if you get a CORS error mentioning a host mismatch (like 127.0.0.1 != vrch.ai), start ComfyUI with --enable-cors-header. And if you want to reach the viewer from another device over HTTPS, the pack bundles a self-signed cert you can launch with python main.py --tls-keyfile ./custom_nodes/comfyui-web-viewer/https/key.pem --tls-certfile ./custom_nodes/comfyui-web-viewer/https/cert.pem --port 8189 --listen - fine for development, not for production.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| model_file | STRING | — | |
| channel | COMBO | 1 | 8 options: 1, 2, 3, 4, 5, 6, +2 |
| server | STRING | 127.0.0.1:8188 | — |
| ssl | BOOLEAN | false | — |
| refresh_interval | INT | 50001–10000 | — |
| server_messages | STRING | — | |
| save_settings | BOOLEAN | false | — |
| window_width | INT | 1280100–10240 | — |
| window_height | INT | 960100–10240 | — |
| show_url | BOOLEAN | false | — |
| dev_mode | BOOLEAN | false | — |
| extra_params | STRING | — | |
| url | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| MODEL_FILE | STRING | — |
| URL | STRING | — |