CV Install Example Inputs
The one node to press before anything else in the pack
- report
- copied
- would_copy
- skipped
- ok
You installed ComfyUI CV, opened one of its example workflows, and every Load Image node is red. Nothing is broken. The pack's sample photos, videos and the MilkTruck.glb model live in the pack's own example_inputs/ folder, and ComfyUI's Load Image / Load Video / Load 3D nodes are dropdowns - they can only list files that are already inside ComfyUI/input. CV Install Example Inputs copies them there, in one run, with nothing to wire up.
What it actually does
It's a single node in the image/CV category with two widgets and no inputs worth connecting. Run it and it walks the pack's example_inputs/ folder (about 33 MB of ordinary files) and copies each entry into your ComfyUI input directory. 3D models go to ComfyUI/input/3d, because that's the only folder core's Load 3D nodes look in; images, video, and the calibration .json/.yaml/.csv/.txt sidecars land directly in ComfyUI/input.
Reload the ComfyUI page after running it. The combos are built when the node definitions are fetched, so files copied mid-session don't show up until a refresh. This is the same behaviour every file-picking node in this pack has, and it catches people constantly.
The two widgets matter more than they look:
mode- copy the files writes them; list what would be copied (dry run) reports exactly what a real run would do and touches nothing. If your input folder is full of your own work, dry-run first.existing_files- keep the file already there (default) means a second run is a harmless no-op and your own edited copy of a sample always wins. overwrite it with the packaged copy is only for repairing a sample you mangled in place.
The outputs are a diagnostic set: report (a multi-line summary you can read with Preview as Text), copied, would_copy, skipped and ok. On an unchanged install, a second run comes back with everything skipped - that's how you confirm the copy took. ok=false means the source folder is missing or a single file failed; the node still finishes and names the problem instead of halting the run. Paths in the report are relative to your ComfyUI folder on purpose, so you can paste it into a bug thread without leaking your install layout.
Nothing outside input is touched, and nothing is ever deleted.
Installing the pack, since that's the real prerequisite
ComfyUI Manager: search the pack title comfyui_cv (repo bmad4ever/comfyui_cv) and install. By hand:
cd ComfyUI/custom_nodes
git clone https://github.com/bmad4ever/comfyui_cv
# then restart ComfyUI
It wants Python ≥ 3.12 and a recent ComfyUI built on the V3 node API - this pack has no NODE_CLASS_MAPPINGS dictionaries at all, it's io.ComfyNode / io.Schema throughout, which is the newer authoring style ComfyUI's own core primitives use. If you're on an old ComfyUI build, that's the failure you'll hit, not a missing dependency.
The one dependency is OpenCV, and it has to be the contrib build:
pip install "opencv-contrib-python-headless~=5.0.0.93"
That version pin is deliberate - the pack curates behaviour against it. The genuine trap is that opencv-python, opencv-python-headless, opencv-contrib-python and opencv-contrib-python-headless all share one site-packages/cv2. Installing a non-contrib wheel over a contrib one silently empties the contrib submodules and every contrib node disappears from the menu. If that happens, the pack ships tools/repair_opencv_contrib.py:
python ComfyUI/custom_nodes/comfyui_cv/tools/repair_opencv_contrib.py --check
python ComfyUI/custom_nodes/comfyui_cv/tools/repair_opencv_contrib.py --apply
Honest caveats before you commit
Read the README's disclaimers - the author wrote them, and they're unusually candid. The pack was built with heavy LLM assistance, some workflows were developed test-first against sample data (so overfitting to those examples is a stated risk), updates are unplanned and support isn't promised, and it is explicitly not recommended for production without reviewing the code yourself. It's also a fork of geroldmeisinger/opencv-comfyui under GPL-3.0, and it is not affiliated with the OpenCV project.
None of that makes it useless - quite the opposite for exploratory work - but it does mean: treat it as a lab bench, not as load-bearing infrastructure. Press this node, reload, and the examples run. From there, the individual nodes are what you actually came for.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| mode | COMBO | 'copy the files' writes them. The dry run touches nothing and reports exactly what a real run would do - use it first if the input folder is shared with other packs or holds your own work. | |
| existing_files | COMBO | What to do when a file of the same name is already in the input folder. Keeping it is safe (your own file wins, and a second run of this node is then a no-op); overwrite is for repairing a sample you edited in place. Only names that collide with a packaged file are ever considered. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| report | STRING | Multi-line summary: the counts and one line per file that failed. Wire it into core 'Preview as Text' to read it. Destinations are named RELATIVE to the ComfyUI folder and any error text is passed through the same path redaction as 'CV Build Information', so the report can go straight into a bug report. |
| copied | INT | How many files were written (always 0 in dry-run mode, where 'would_copy' carries the number instead). |
| would_copy | INT | How many files a real run would write with these settings - the dry run's answer, and equal to 'copied' after a successful real run. |
| skipped | INT | Files already present that were left alone. Everything is skipped on the second run of an unchanged install, which is how you tell the copy took. |
| ok | BOOLEAN | False when the source folder is missing or any single file failed to copy - the run still finishes and the report names what went wrong. Gate a follow-up branch on it with 'If/Else Switch'. |