comfyui_webcamcapture

comfyui_webcamcapture
★ 15

摄像头采集img2imgControlNetcv2 参数调优
单次点击生成时从摄像头捕获单帧图像,便于 img2img 与 ControlNet 流程使用,暴露 cv2 参数以提升兼容性与画质。
💡 在 img2img/ControlNet 流程中实时拍摄单帧作为输入
🍴 4 Forks💻 Python🔄 2025-04-16
📦
网盘下载
复制链接后前往夸克网盘下载
https://pan.quark.cn/s/9671236b7e59
📦 requirements.txt
opencv-python
📄 README

Comfyui Webcam capture node

This node captures images one at a time from your webcam when you click generate.

This is particular useful for img2img or controlnet workflows.

This node will take over your webcam, so if you have another program using it, you may need to close that program first. Likewise, you may need to close Comfyui or close the workflow to release the webcam.

Why do we need another webcam node?

The other ones simply don’t work for me or are buggy, produce black images, digital noise, etc.

I’ve added extra parameters exposed by cv2 to allow you to tweak the webcam settings to (hopefully) get yours to work. There’s no gaurantee every parameter will work on every webcam, but the hope is by exposing them you can tweak them to get your webcam to work. Defaults should be sane.

Ideas for use

  • Setup an action figure in front of your webcam and use body pose estimation and a pose controlnet.
  • Point it at yourself and use a depth estimator or face pose estimator.
  • Install

    git clone this into your comfyui custom_nodes directory.

    Activate your comfyui environment and run pip install opencv-python.

    If you installed it correctly you should see something like this (don’t worry about the .git and \_\_pycache\_\_ directories if you don’t see them):

    Suggested supporting nodes/workflows

  • ControlNet Preprocessors > Faces and Poses Estimators > (DensePose, DWPose, OpenPose, etc)
  • ControlNet Preprocessors > Normal and Depth Estimators > (DepthAnything, MiDaS, etc)
  • Any controlnet workflow
  • Requirements:

  • opencv-python
  • Inputs

  • cam_id: The id of the webcam to capture from. This is likely 0 unless you have multiple webcams or other capture devices. Leave 0 unless it seems to be capturing from the wrong device.
  • The rest of the inputs are *requests* sent to the webcam API. They may or may not be respected or supported by your webcam. The defaults should work on common webcams like the Logitech C920.

  • width: the requested width to capture.
  • height: the requested height to capture.
  • Note: for width and height the webcam may not support all resolutions. If you request a resolution that is not supported, the webcam may use the closest resolution it supports or behave unexpectedly.

    Typical resolutions would be 480×320, 640×480, 1280×720, and 1920×1080.

  • brightness: 0.0-1.0, the brightness of the image. 0.5 is normal. Usually best to use exposure instead of brightness.
  • exposure: requests the webcam adjust the exposure. 0 is normal, -5 is dark, 5 is bright.
  • aperture: the aperture of the camera. 1.8 is normal. This may affect exposure/brightness.
  • autoexp: set 1 to use auto exposure (in theory means exposure is ignored).
  • autofocus: set 1 to use auto focus.
  • autowb: set 1 to use auto white balance.
  • I recommend you leave autoexp, autofocus, and autowb to 1 unless you have a specific reason to change them.

  • seed / control_after_generate:
  • This is a hack to force Comfyui to run the node and capture a new image every time you click generate. Leave control_after_generate on randomize or you won’t get a new webcam capture until you touch one of the other settings.