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

IMAGE WebSocket Channel Loader @ vrch.ai

Read the image a WebSocket viewer is showing, placeholder included

By VrchStudio·Created 2 years ago·Updated 18 days ago· 356
IMAGE WebSocket Channel Loader @ vrch.ai
  • default_image
  • IMAGE
  • IS_DEFAULT_IMAGE
channel1
server172.17.0.2:8001
placeholderblack
debugfalse

The WebSocket side of the ComfyUI Web Viewer pack is the branch built for sending images over a persistent connection rather than pulling them over plain HTTP - useful when the viewer and the generator aren't on the same box, or when you want a dedicated socket for realtime display. The IMAGE WebSocket Channel Loader is the read side of that channel: it grabs the image currently displayed on a WebSocket viewer channel and hands it to your graph as a normal IMAGE.

What it is

It's the WebSocket sibling of the IMAGE Web Viewer Channel Loader, so if you've used that one the pattern is familiar. Pick a channel (1–8) that matches a WebSocket viewer node, give it the server address those viewer nodes use (the default 172.17.0.2:8001 is another Docker dev leftover - set it to wherever your WebSocket server actually runs, typically 127.0.0.1:8001 on the same machine), and the loader outputs what that channel is currently showing. The IMAGE output is the main event; there's also IS_DEFAULT_IMAGE, a boolean that tells you when you're looking at a placeholder rather than a real frame.

The placeholder setting is where this node gets its personality. When a channel has no real image yet - connection not up, first frame not delivered - the loader emits a placeholder instead of nothing, and you pick what it looks like: black, white, grey, or image. The image option uses the optional default_image input, so you can park a logo or a title card on the display until the real feed arrives. Because realtime pipelines live or die on "there is always a frame," this is a small but meaningful quality-of-life detail.

It's a terminal-but-not-terminal node in the same way the other loaders are: it outputs, and it's flagged as an output node in the schema, but you'll wire its IMAGE downstream - into a saver, a fallback, a sampler, whatever needs the current frame. The IS_DEFAULT_IMAGE output is genuinely useful for logic: when it's true, you might want to skip processing or show a loading state instead of wasting compute on a placeholder.

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 gotcha to remember: the server address has to match what the viewer nodes use, or the loader reads a dead channel and sits on its placeholder forever. If IS_DEFAULT_IMAGE stays true, check the address first, then the channel number, then confirm the WebSocket viewer has actually displayed something. Get those three in sync and this becomes a reliable tap into whatever's on your WebSocket display.

Categoryvrch.ai/viewer/websocket

Inputs (5)

NameTypeDefaultDescription
channelCOMBO18 options: 1, 2, 3, 4, 5, 6, +2
serverSTRING172.17.0.2:8001
placeholderCOMBOblack4 options: black, white, grey, image
debugBOOLEANfalse
default_imageoptIMAGE

Outputs (2)

NameTypeDescription
IMAGEIMAGE
IS_DEFAULT_IMAGEBOOLEAN