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

IMAGE Fallback @ vrch.ai

Never let a dead frame blank out your realtime pipeline

By VrchStudio·Created 2 years ago·Updated 18 days ago· 356
IMAGE Fallback @ vrch.ai
  • image
  • default_image
  • IMAGE
fallback_optionplaceholder_image
placeholder_width512
placeholder_height512
placeholder_color#000000
debugfalse

Realtime workflows drop frames. That's just physics: a channel loader has nothing to load yet, a WebSocket input hasn't delivered its first image, an upstream node choked for one tick. The problem is what happens downstream - a null or empty image usually kills whatever's waiting on it, and in an interactive setup that means a black screen or a crashed pass right in front of an audience. The IMAGE Fallback node exists to make that impossible.

What it is

Its job is to guarantee that its IMAGE output is always a real image, no matter what's coming in. The fallback_option picker decides what you get when the input is empty or missing:

  • default_image - fall back to a specific image you feed into the optional default_image input. Best when there's a logo, a static title card, or a "loading" frame you want on screen.
  • placeholder_image - generate a solid-color rectangle using placeholder_width, placeholder_height, and placeholder_color (a hex string like #000000). Zero extra wiring, just a colored block to keep the pipeline alive.
  • last_valid_image - hold onto the last good frame it received and keep emitting that until something new arrives. This is the one for smooth realtime: the display never blanks, it just freezes briefly.

The inputs that matter for a beginner are the three fallback choices and the placeholder dimensions - placeholder_width and placeholder_height default to 512×512, which is a fine neutral size, and placeholder_color defaults to black. The optional image input is what you're protecting: wire your live source in there, and the node only steps in when that input goes empty. debug prints which path it took, which is genuinely useful the first time you're not sure whether you're seeing the real image or the fallback.

Where you'll actually want this: right after anything that reads a live source. An IMAGE Web Viewer Channel Loader before the first frame has been displayed. A WebSocket channel loader while the network is connecting. Any node in an instant-queue graph that can legitimately produce nothing on a given tick. Slap a fallback between the unreliable source and the downstream sampler, and your whole pipeline stops being one dead frame away from a blank.

How to install

Install is the shared pack story:

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 involved.

Common issues

One honest note: last_valid_image is the trap option in disguise. It gives the smoothest output, but it can also mask a dead upstream signal indefinitely - your "live" display might be showing a ten-second-old frame and you'd never know. If you're debugging a realtime setup, run with placeholder_image and debug on first, get the pipeline truly live, then switch to last_valid_image for the final look. That order has saved me from a whole evening of chasing ghosts.

Categoryvrch.ai/image

Inputs (7)

NameTypeDefaultDescription
fallback_optionCOMBOplaceholder_image3 options: default_image, placeholder_image, last_valid_image
placeholder_widthINT5121–4096
placeholder_heightINT5121–4096
placeholder_colorSTRING#000000
debugBOOLEANfalse
imageoptIMAGE
default_imageoptIMAGE

Outputs (1)

NameTypeDescription
IMAGEIMAGE