Nodes/ComfyUI Web Viewer/IMAGE WebSocket Web Viewer @ vrch.ai
ComfyUI Node

IMAGE WebSocket Web Viewer @ vrch.ai

The lean WebSocket viewer — display images, let a settings node do the rest

By VrchStudio·Created 2 years ago·Updated 17 days ago· 356
IMAGE WebSocket Web Viewer @ vrch.ai
  • images
  • IMAGES
  • URL
channel1
server172.17.0.2:8001
formatJPEG
number_of_images1
image_display_duration1000
fade_anim_duration200
window_width1280
window_height960
show_urlfalse
dev_modefalse
debugfalse
extra_params
url

Every viewer node in this pack ends up being "put the image in a browser," and the IMAGE WebSocket Simple Web Viewer is the stripped-down version of that idea for the WebSocket branch. It takes images, pushes them over the socket to the server you point it at, and pops a browser window showing them. No blend modes, no loop controls, no background color - those moved out to the IMAGE WebSocket Settings node. This one stays deliberately dumb, which is exactly what makes it the right default for new WebSocket workflows.

What it is

The essentials: images in, channel (1–8) to tag the display, and server for the WebSocket address - default 172.17.0.2:8001, the pack's usual Docker dev leftover that you'll change to wherever your server actually runs. format picks PNG or JPEG for the wire (JPEG is the default and the sensible one for realtime; PNG when you need lossless). The pacing knobs are the ones you'll touch: number_of_images (default 1) for how many frames the viewer juggles, image_display_duration (default 1000 ms) for how long each shows, and fade_anim_duration (default 200 ms) for the crossfade.

The window behavior is inherited from the whole viewer family: window_width and window_height (defaults 1280×960) size the popup, show_url reveals the viewer's address so you can open it on a phone or second device, dev_mode turns on the debugging harness, and debug logs what's happening. extra_params and url are escape hatches for advanced config. Two outputs: IMAGES passes your input straight through (handy for chaining), and URL gives you the viewer address as a string.

Why the simple split works: the legacy all-in-one WebSocket viewer crammed every behavior knob onto the display node itself, which made each node a wall of settings. The new architecture puts the behavior in the IMAGE WebSocket Settings node - channel, server, blend modes, loop, background, filters - and leaves this node clean. You pick the simple viewer when you want the lean path: wire images in, point it at the server, get a display. Add the settings node only when you need the fancy behavior.

How to install

Install is the pack-standard path:

cd ComfyUI/custom_nodes
git clone https://github.com/VrchStudio/comfyui-web-viewer
cd comfyui-web-viewer
pip install -r requirements.txt

restart ComfyUI. Manager users search "ComfyUI Web Viewer". Windows portable: python_embeded\python.exe -m pip install -r ComfyUI\custom_nodes\comfyui-web-viewer\requirements.txt. No models to download.

Common issues

The gotchas are the WebSocket-family ones. If the window opens but nothing shows, check that server points at a running WebSocket server and that it matches whatever the receiving side expects - a dead address just means a silent empty display. If you pair it with the settings node, keep channel and server identical on both, or the settings never reach the display. Nail those two and this is the lowest-friction way to put realtime output in a browser over a socket.

Categoryvrch.ai/viewer/websocket

Inputs (14)

NameTypeDefaultDescription
imagesIMAGE
channelCOMBO18 options: 1, 2, 3, 4, 5, 6, +2
serverSTRING172.17.0.2:8001
formatCOMBOJPEG2 options: PNG, JPEG
number_of_imagesINT11–99
image_display_durationINT10001–10000
fade_anim_durationINT2001–10000
window_widthINT1280100–10240
window_heightINT960100–10240
show_urlBOOLEANfalse
dev_modeBOOLEANfalse
debugBOOLEANfalse
extra_paramsSTRING
urlSTRING

Outputs (2)

NameTypeDescription
IMAGESIMAGE
URLSTRING