Easy Video Output Node
The ComfyUI output node that floats your live preview over everything else
- images
Easy Video Output Node is the display half of a real-time painting setup. Its sibling in the same pack, Easy Capture Node, pulls a window from your screen into the graph; this one pushes your generated frames back out into a small video player that can detach into a floating "Picture in Picture" window. Wire one at the end of a fast LCM workflow and you get a live view of what the model is doing without alt-tabbing back to the ComfyUI tab.
The pitch in the pack README is honest and short: "output images in a video player, and can play in Picture in Picture mode, useful for showing the image result in other window." That's the whole product. It's not trying to be a video encoder.
How it works
It's an output node, so it has no output sockets - it ends a branch. You feed it an IMAGE batch. The Python side converts every frame to JPEG, base64-encodes it, and sends the list to the frontend as a UI payload. The JavaScript then does something clever: it draws the frame onto a canvas, captures that canvas as a live MediaStream, and plays it in a <video> element. The Picture in Picture button uses the documentPictureInPicture API to pop that video out into a separate, always-on-top window you can drag to another monitor.
One honest limitation: for each run it only draws the first frame of the batch (images_[0]). So a single batch of 16 frames doesn't play back as a clip - it displays frame one. What makes it feel like a video is the capture loop: run your workflow over and over (which is exactly what real-time LCM painting does) and the player updates live. If you actually want a saved mp4, this isn't it - use a proper video output node that writes files to disk.
Inputs
Just one:
- images (required, IMAGE) - the batch of frames to show. Wire the output of your sampler, a video-frame sequence, or in a loop, whatever your workflow emits.
That's it. No settings, no knobs, no file path. It is gloriously minimal.
Installing it
Same pack as Easy Capture Node, same zero-dependency story: no requirements.txt exists, so PIL, torch, and numpy from ComfyUI's own environment cover everything. Install via ComfyUI Manager (search EasyVideoOutputNode or ComfyUI-EasyNode), or the manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/zhuanqianfish/ComfyUI-EasyNode
Restart ComfyUI and it appears under Easy Nodes.
Where people get burned
- Picture in Picture needs a secure context. Like the capture node's
getDisplayMedia,documentPictureInPictureonly works onhttps://orlocalhost. Serving ComfyUI over a LAN IP kills the floating window. - It's a live preview, not a video recorder. Beginners reach for it expecting an mp4 output and find a slideshow-ish player. If that's your goal, you're in the wrong node.
- Same stale-frontend gotcha as its sibling. The pack's installer copies JS into
ComfyUI/web/extensions/FISH_EasyCaptureat startup, and a ComfyUI update can wipe that folder. Buttons go missing → restart ComfyUI to re-copy the files.
This is a niche, 2023-era node, and it shows its age. But as the display end of a real-time painting loop - capture on one side, floating preview on the other - it's a small, dependency-free, no-key solution that still does the job today.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — |
Outputs (0)
No outputs