Nodes/EasyCaptureNode for ComfyUI/Easy Video Output Node
ComfyUI Node

Easy Video Output Node

The ComfyUI output node that floats your live preview over everything else

By zhuanqianfish·Created 3 years ago·Updated 18 days ago· 68
Easy Video Output Node
  • 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, documentPictureInPicture only works on https:// or localhost. 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_EasyCapture at 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.

    CategoryEasy Nodes

    Inputs (1)

    NameTypeDefaultDescription
    imagesIMAGE

    Outputs (0)

    No outputs