π· WebCam (jov)
Your webcam as a live ComfyUI input (and why it's not here anymore)
- image
- mask
WebCam (jov) grabbed a frame from your webcam and handed it to ComfyUI as an image - the input half of a live, VJ-style workflow where your face or desk becomes the source for img2img, masking or compositing. It's the node people reached for when they wanted to pipe themselves into a diffusion pipeline in real time. And if you're on a recent Jovimetrix install, it's already gone - more on that below, because it matters before you go hunting for it.
How it worked
Under the hood it was an OpenCV video capture pointed at a camera device index. You picked cam_idx (the device number, 0β6) and an fps (1β60), and every execution it pulled a frame and pushed it out as an IMAGE plus a MASK (the frame's alpha, so you could use it as a matte). It was marked as an output node, so it displayed the live feed on the canvas, and you could chain it straight into a KSampler for a crude live-generation loop.
The useful controls: width and height (output resolution, default 256Β² - low on purpose, since live diffusion is slow), mode (NONE/FIT/CROP/ASPECT to fit the camera frame into that canvas), invert (flip the intensity), orient (NORMAL/FLIPX/FLIPY/FLIPXY - mirroring matters for cameras, since you usually want a selfie view), and hold, which froze the last captured frame so your workflow could keep running without grabbing a new one.
The big caveat: it moved
In April 2025, Jovimetrix 2.0.0 split out all its streaming and capture nodes into separate packages. Webcam capture now lives in Jovi_Capture (Amorano/Jovi_Capture) as part of the STREAM READER family - and the README is blunt about it: DO NOT UPDATE Jovimetrix past version 1.7.48 if you don't want to lose a bunch of nodes. If you update, WebCam (jov) disappears from Jovimetrix and you'll need to install Jovi_Capture (or pin Jovimetrix to an old version) to get live camera input back. The connections themselves won't migrate, either - you'll rewire by hand.
So: fresh install today? Skip Jovimetrix for this and grab Jovi_Capture. Stuck on an old workflow with this node in it? Install Jovi_Capture and swap the node.
Install (for the record)
If you're on an old Jovimetrix that still has it: git clone https://github.com/Amorano/Jovimetrix.git into ComfyUI/custom_nodes, then pip install -r requirements.txt (Windows portable: .\python_embed\python.exe -s -m pip install -r requirements.txt), or search "Jovimetrix" in ComfyUI Manager. Needs opencv-contrib-python, which the pack installs for you.
Troubleshooting
The classic failure is a black frame. The author has confirmed an intermittent capture bug on certain Macs (thread in r/comfyui, where the author himself replied to diagnose), and on Windows the usual causes are picking the wrong cam_idx (try 0, then 1 - laptop webcams often aren't 0) or another app holding the camera open; browsers, Zoom and OBS all lock it. If the feed is black everywhere, close everything else that touches the camera and restart ComfyUI. Some Windows users ultimately worked around persistent problems by capturing with plain OpenCV outside the node and feeding frames in manually. The good news is that on any modern setup, Jovi_Capture's STREAM READER is the actively maintained path and is where fixes land now.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| cam_idx | INT | 00β6 | β |
| fps | INT | 601β60 | β |
| holdopt | BOOLEAN | false | β |
| widthopt | INT | 25632β8192 | β |
| heightopt | INT | 25632β8192 | β |
| modeopt | COMBO | NONE | 4 options: NONE, FIT, CROP, ASPECT |
| invertopt | FLOAT | 0.000β1 | β |
| orientopt | COMBO | NORMAL | 4 options: NORMAL, FLIPX, FLIPY, FLIPXY |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | β |
| mask | MASK | β |