Nodes/KJNodes for ComfyUI/Screencap Stream
ComfyUI Node Runs on cloud

Screencap Stream

Feed your live screen into ComfyUI as an image

By kijai·Created 3 years ago·Updated 2 days ago· 3,030
Screencap Stream
    • image
    frame_data
    crop_width1
    crop_height1

    This node turns your browser's screen-share capability into a live IMAGE input for ComfyUI. Click "Start capture," pick a screen, window, or tab to share, and from then on every queued run pulls in the current frame of that share as an image - a live preview shows right in the node so you can see what you're about to feed in. Combined with auto-queue, it becomes a continuous feed: whatever's on your screen keeps flowing into your workflow frame by frame, which is the backbone for real-time or reactive setups - driving a video model off a game window, another application, or a webcam feed running through a browser tab, instead of a static file you have to keep re-uploading.

    It sits naturally alongside the audio-reactive cluster elsewhere in this pack - Sound Reactive for live mic input, this node for live visual input - if you're building something closer to a full live-visual rig than a normal batch workflow.

    The inputs and outputs that matter

    • frame_data - populated by the node's own JavaScript, not something you type or edit. It's plumbing that carries the captured frame back to the Python side; leave it alone.
    • crop_width / crop_height (default 1 each, essentially "no crop") - only meaningful once you've actually drawn a crop box on the live preview.
    • Output: image - the current captured (and optionally cropped) frame.

    The crop workflow is entirely mouse-driven on the preview itself: drag to draw a crop box, drag inside it to move it, drag an edge or corner to resize, hold shift while dragging to lock the aspect ratio, and right-click or double-click to clear the crop entirely.

    How to install it

    Standard KJNodes install: ComfyUI Manager → search "KJNodes for ComfyUI" → install, or cd ComfyUI/custom_nodes && git clone https://github.com/kijai/ComfyUI-KJNodes, then pip install -r ComfyUI-KJNodes/requirements.txt, then restart. This is browser-side JavaScript plus a thin Python bridge - no model downloads, no extra Python dependencies beyond the pack's own requirements.

    Common issues & troubleshooting

    "Start capture" does nothing. Screen/window sharing is a browser permission, same family as camera or microphone access. If your browser silently blocked the permission prompt, or you dismissed it once and it's now remembered as denied, you'll need to reset that permission for the ComfyUI site in your browser's settings before capture will work.

    Only one frame ever updates. This node needs auto-queue running to actually stream continuously - a single manual "Queue Prompt" click just grabs whatever frame happened to be current at that instant. Turn on auto-queue if you want a live feed rather than a one-off snapshot.

    Crop looks wrong or isn't applying. The crop is drawn directly on the live preview inside the node, not set through the numeric widgets - crop_width/crop_height reflect what you've drawn rather than the other way around. If nothing's cropping, you haven't actually drawn a box yet; the defaults (1, 1) are effectively "off."

    CategoryKJNodes/image

    Inputs (3)

    NameTypeDefaultDescription
    frame_dataSTRING
    crop_widthINT11–16384
    crop_heightINT11–16384

    Outputs (1)

    NameTypeDescription
    imageIMAGE