Web Viewer @ vrch.ai
Put your generations in any browser tab, live
- URL
The Web Viewer @ vrch.ai node is the front door of the whole ComfyUI Web Viewer pack, and it does exactly what the name promises: it opens a browser tab that shows whatever your workflow just made. Click its button and a separate window pops up displaying the output - and because the tab re-fetches the file on a loop, it updates on its own every time you generate. Combine that with ComfyUI's instant queue mode and you have a poor-man's realtime display, no OBS, no screen capture, no video player. The image just refreshes.
This is the node the pack's flagship tutorials lean on. The realtime gamepad avatar demos and the LTX image-to-video tutorials all end at a Web Viewer tab, often on a second device across the room. The pitch of the pack is "AI art you can interact with," and this is the display half of that bargain: you run ComfyUI on the beefy machine, and any phone, tablet, or laptop on the network watches the output.
How it works
The node is deliberately dumb, which is why it's reliable. You tell it where your ComfyUI lives (server, default 127.0.0.1:8188, plus an ssl toggle if you're on https) and which output file to show (filename, default web_viewer_image.jpeg, sitting under the folder in path, default web_viewer). When you click the button it opens http://<server>/<path>/<filename> in a new tab. The served page is the pack's own viewer page, which polls and redraws as the file updates.
The mode dropdown - image, flipbook, audio, depthmap, 3dmodel - just picks which viewer page gets served, so the same node works for a static image, a frame sequence flipbook, an audio clip, or a model. window_width / window_height size the popup. show_url puts the full URL in the title bar (handy when you're debugging from another machine). dev_mode is for poking at the viewer page itself. url lets you bypass all of that and hardcode a custom page, and extra_params appends query-string parameters to the served URL.
The one output, URL (STRING), is the address the node opened - wire it into a text display node if you want to see or log it.
Installing it
It's a single pack, so there's one install for all the vrch.ai nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/VrchStudio/comfyui-web-viewer
pip install -r comfyui-web-viewer/requirements.txt
…or just search "ComfyUI Web Viewer" in ComfyUI Manager and install it there. Either way, restart ComfyUI. On the Windows portable build, run the pip line with python_embeded\python.exe -m pip install -r ...\requirements.txt from the ComfyUI_windows_portable folder.
Where people get burned
Two README-documented gotchas bite everyone eventually:
- Blank popup in Chrome. When the viewer is served over plain http, Chrome blocks it. Add your ComfyUI server address under
chrome://flags/#unsafely-treat-insecure-origin-as-secureand relaunch. Firefox and friends generally just work. - CORS errors / "non matching host and origin" 403. If you're opening the viewer from a page hosted at
vrch.ai(or any domain that isn't your server's host), start ComfyUI withpython main.py --enable-cors-headerand the handshake stops getting rejected.
One habit worth forming: if your generation is fast enough for realtime, turn on instant queue before you open the viewer tab. Otherwise you're just watching a picture update on a timer you control.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| mode | COMBO | image | 5 options: image, flipbook, audio, depthmap, 3dmodel |
| server | STRING | 127.0.0.1:8188 | — |
| ssl | BOOLEAN | false | — |
| filename | STRING | web_viewer_image.jpeg | — |
| path | STRING | web_viewer | — |
| window_width | INT | 1280100–10240 | — |
| window_height | INT | 960100–10240 | — |
| show_url | BOOLEAN | false | — |
| dev_mode | BOOLEAN | false | — |
| extra_params | STRING | — | |
| url | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| URL | STRING | — |