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

LATENT WebSocket Channel Loader @ vrch.ai

Receiving latents from another machine, ready to sample

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

Here's the thing that makes the WebSocket nodes in this pack interesting: they don't just ship JSON around. They also ship latents - the compressed representation the diffusion model actually works in, before the VAE ever decodes it into pixels. This node is the receiving side of that: it connects to a WebSocket channel and hands you a LATENT you can wire straight into a sampler, exactly as if it came from a KSampler's own output.

What it does

The inputs are the standard pack trio:

  • server - the WebSocket server as host:port. Default 172.17.0.2:8001 is a Docker bridge address from the developers' own setup; you'll need to point it at your actual relay or peer machine.
  • channel - one of 8 numbered channels (1–8). The sender has to be on the same channel.
  • debug - visibility into what's arriving.

Plus one you won't see on the sender: default_latent, an optional fallback latent used if nothing has arrived on the channel yet, so your workflow has something to chew on while you wait for the stream. The node outputs LATENT and is an output node - the receiving end of a branch, meant to feed a sampler or a VAE decode.

Why stream a latent at all?

Because it's the efficient move, and it's the whole point of this pair of nodes. Latents are far smaller than pixels - that's the point of the latent space. Instead of decoding on one machine, shipping a video, and re-encoding, you ship the latent and decode wherever you're displaying. Think of it like the shared-VAE trick from the broader community: if both machines work in the same latent space, you can skip the lossy decode-encode round trip entirely. Practical shape: one machine runs heavy generation and streams its latents over the WebSocket; another machine - or a browser viewer - picks them up with this node and handles display or further processing. For live shows and multi-machine setups that's a genuinely useful division of labor.

Installing it

Same pack, same 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 models, no heavy deps.

Troubleshooting

If your LATENT output sits on the default_latent, you're connected but the sender isn't reaching you - verify server and channel on both ends, and check the sender's debug output to confirm it's actually transmitting. A mismatch in latent space (say, an SDXL latent arriving at a Flux pipeline) will produce garbage or noise rather than a clean failure, so confirm both machines are running models on the same VAE/channel setup before you blame the node. The pack's example_websocket_nodes_001_basic.json is the fastest way to see a sender+loader round trip working on one machine before you complicate it with a second box.

Categoryvrch.ai/viewer/websocket

Inputs (4)

NameTypeDefaultDescription
channelCOMBO18 options: 1, 2, 3, 4, 5, 6, +2
serverSTRING172.17.0.2:8001
debugBOOLEANfalse
default_latentoptLATENT

Outputs (1)

NameTypeDescription
LATENTLATENT