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

IMAGE WebSocket Settings @ vrch.ai

The config node that controls how the WebSocket viewer behaves

By VrchStudio·Created 2 years ago·Updated 18 days ago· 356
IMAGE WebSocket Settings @ vrch.ai
  • image_filters_json
  • IMAGE_SETTINGS_JSON
channel1
server172.17.0.2:8001
send_settingstrue
number_of_images1
image_display_duration1000
fade_anim_duration200
blend_modenone
loop_playbacktrue
update_on_endfalse
background_colour_hex#222222
server_messages
incremental_updatefalse
debugfalse

The WebSocket viewer branch of the ComfyUI Web Viewer pack split into two halves: a lean viewer node that just displays images, and a separate IMAGE WebSocket Settings node that holds all the behavior knobs. This is the knobs half. It doesn't show anything itself - it emits an IMAGE_SETTINGS_JSON that tells the viewer how to behave: how many images to juggle, how long each shows, whether to loop, what blend mode to use, what the background color is. Think of it as the director and the Simple Web Viewer as the screen.

What it is

The settings that matter day to day: channel (1–8) and server (default 172.17.0.2:8001, the usual Docker dev leftover - set it to wherever your WebSocket server runs) are the connectivity pair, and they must match the viewer node you're configuring. number_of_images (default 1) says how many frames the viewer keeps in rotation, while image_display_duration (default 1000 ms) and fade_anim_duration (default 200 ms) control the pacing and crossfade. blend_mode is a list of 17 CSS blend modes - normal, multiply, screen, overlay, and friends - which is how you layer multiple images in the viewer. loop_playback (default on) decides whether that rotation loops; update_on_end (default off) waits for the loop to finish before applying updates.

Then there's the connective tissue. The optional image_filters_json input is where the IMAGE Filter Settings node plugs in - wire the filter JSON here and the viewer applies those CSS filters live. send_settings (default on) controls whether the settings JSON is actually transmitted, so you can prep the config and turn it on when ready. background_colour_hex (default #222222) sets the viewer's background. server_messages injects a message string, incremental_update sends only changed settings instead of the full blob, and debug prints the JSON. The single output is IMAGE_SETTINGS_JSON, and the node is flagged as an output node - it's a config terminal, not a data processor.

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.

Common issues

The trap with a config node like this is forgetting it's a separate component. People wire up the Simple Web Viewer, get the default behavior, and wonder why the blend mode they set on this node "isn't working" - because the two nodes were never connected. As long as the settings node's channel and server match the viewer's, and the JSON is flowing, the viewer follows its lead. That split is the whole design: keep the display node dumb and move the intelligence into a node you can swap or drive from a controller.

Categoryvrch.ai/viewer/websocket

Inputs (14)

NameTypeDefaultDescription
channelCOMBO18 options: 1, 2, 3, 4, 5, 6, +2
serverSTRING172.17.0.2:8001
send_settingsBOOLEANtrue
number_of_imagesINT11–99
image_display_durationINT10001–10000
fade_anim_durationINT2001–10000
blend_modeCOMBOnone17 options: none, normal, multiply, screen, overlay, darken, +11
loop_playbackBOOLEANtrue
update_on_endBOOLEANfalse
background_colour_hexSTRING#222222
server_messagesSTRING
incremental_updateBOOLEANfalse
debugBOOLEANfalse
image_filters_jsonoptJSON

Outputs (1)

NameTypeDescription
IMAGE_SETTINGS_JSONJSON