Extensions/comfyui_cv
ComfyUI Extension

comfyui_cv

OpenCV wrapper nodes for ComfyUI + Curated high level complementary nodes

By bmad4ever·Created 3 months ago·Updated 2 days ago· 0
bmad4ever/comfyui_cv
Nodes763
On cloudLocal install
Categoryimage/CV/low-level/cv2 A, image/CV/low-level/aruco
Stars0
Updated2 days ago

Nodes (763)

cv2.absdiff
image/CV/low-level/cv2 A
cv2.accumulate
image/CV/low-level/cv2 A
cv2.accumulateProduct
image/CV/low-level/cv2 A
cv2.accumulateSquare
image/CV/low-level/cv2 A
cv2.accumulateWeighted
image/CV/low-level/cv2 A
cv2.adaptiveThreshold
image/CV/low-level/cv2 A
cv2.add
image/CV/low-level/cv2 A
cv2.addWeighted
image/CV/low-level/cv2 A
cv2.applyColorMap (1/2)
image/CV/low-level/cv2 A
cv2.applyColorMap (2/2)
image/CV/low-level/cv2 A
cv2.approxPolyDP
image/CV/low-level/cv2 A
cv2.approxPolyN
image/CV/low-level/cv2 A
cv2.arcLength
image/CV/low-level/cv2 A
cv2.arrowedLine
image/CV/low-level/cv2 A
cv2.aruco.drawDetectedCornersCharuco
image/CV/low-level/aruco
cv2.batchDistance
image/CV/low-level/cv2 B
cv2.bilateralFilter
image/CV/low-level/cv2 B
cv2.bitwise_and
image/CV/low-level/cv2 B
cv2.bitwise_not
image/CV/low-level/cv2 B
cv2.bitwise_or
image/CV/low-level/cv2 B
cv2.bitwise_xor
image/CV/low-level/cv2 B
cv2.blendLinear
image/CV/low-level/cv2 B
cv2.blur
image/CV/low-level/cv2 B
cv2.borderInterpolate
image/CV/low-level/cv2 B
cv2.boundingRect
image/CV/low-level/cv2 B
cv2.boxFilter
image/CV/low-level/cv2 B
cv2.boxPoints
image/CV/low-level/cv2 B
cv2.broadcast
image/CV/low-level/cv2 B
cv2.calcCovarMatrix
image/CV/low-level/cv2 C
cv2.calcOpticalFlowFarneback
image/CV/low-level/cv2 C
cv2.calcOpticalFlowPyrLK
image/CV/low-level/cv2 C
cv2.calibrationMatrixValues
image/CV/low-level/cv2 C
cv2.CamShift
image/CV/low-level/cv2 C
cv2.Canny (1/2)
image/CV/low-level/cv2 C
cv2.Canny (2/2)
image/CV/low-level/cv2 C
cv2.cartToPolar
image/CV/low-level/cv2 C
cv2.ccm.gammaCorrection
image/CV/low-level/ccm
cv2.checkChessboard
image/CV/low-level/cv2 C
cv2.checkHardwareSupport
image/CV/low-level/cv2 C
cv2.checkRange
image/CV/low-level/cv2 C
cv2.circle
image/CV/low-level/cv2 C
cv2.clipLine
image/CV/low-level/cv2 C
cv2.colorChange
image/CV/low-level/cv2 C
cv2.compare
image/CV/low-level/cv2 C
cv2.compareHist
image/CV/low-level/cv2 C
cv2.completeSymm
image/CV/low-level/cv2 C
cv2.composeRT
image/CV/low-level/cv2 C
cv2.computeCorrespondEpilines
image/CV/low-level/cv2 C
cv2.computeECC
image/CV/low-level/cv2 C
cv2.connectedComponents
image/CV/low-level/cv2 C
cv2.connectedComponentsWithAlgorithm
image/CV/low-level/cv2 C
cv2.connectedComponentsWithStats
image/CV/low-level/cv2 C
cv2.connectedComponentsWithStatsWithAlgorithm
image/CV/low-level/cv2 C
cv2.contourArea
image/CV/low-level/cv2 C
cv2.convertMaps
image/CV/low-level/cv2 C
cv2.convertPointsFromHomogeneous
image/CV/low-level/cv2 C
cv2.convertPointsToHomogeneous
image/CV/low-level/cv2 C
cv2.convertScaleAbs
image/CV/low-level/cv2 C
cv2.convexHull
image/CV/low-level/cv2 C
cv2.convexityDefects
image/CV/low-level/cv2 C
cv2.copyMakeBorder
image/CV/low-level/cv2 C
cv2.copyTo
image/CV/low-level/cv2 C
cv2.cornerEigenValsAndVecs
image/CV/low-level/cv2 C
cv2.cornerHarris
image/CV/low-level/cv2 C
cv2.cornerMinEigenVal
image/CV/low-level/cv2 C
cv2.cornerSubPix
image/CV/low-level/cv2 C
cv2.correctChromaticAberration
image/CV/low-level/cv2 C
cv2.correctMatches
image/CV/low-level/cv2 C
cv2.countNonZero
image/CV/low-level/cv2 C
cv2.createHanningWindow
image/CV/low-level/cv2 C
cv2.cubeRoot
image/CV/low-level/cv2 C
cv2.currentUIFramework
image/CV/low-level/cv2 C
cv2.CV_16FC
image/CV/low-level/cv2 C
cv2.CV_16SC
image/CV/low-level/cv2 C
cv2.CV_16UC
image/CV/low-level/cv2 C
cv2.CV_32FC
image/CV/low-level/cv2 C
cv2.CV_32SC
image/CV/low-level/cv2 C
cv2.CV_32UC
image/CV/low-level/cv2 C
cv2.CV_64FC
image/CV/low-level/cv2 C
cv2.CV_64SC
image/CV/low-level/cv2 C
cv2.CV_64UC
image/CV/low-level/cv2 C
cv2.CV_8SC
image/CV/low-level/cv2 C
cv2.CV_8UC
image/CV/low-level/cv2 C
cv2.CV_MAKETYPE
image/CV/low-level/cv2 C
cv2.cvtColor
image/CV/low-level/cv2 C
cv2.cvtColorTwoPlane
image/CV/low-level/cv2 C
cv2.dct
image/CV/low-level/cv2 D
cv2.decolor
image/CV/low-level/cv2 D
cv2.decomposeEssentialMat
image/CV/low-level/cv2 D
cv2.decomposeProjectionMatrix
image/CV/low-level/cv2 D
cv2.demosaicing
image/CV/low-level/cv2 D
cv2.depthTo3d
image/CV/low-level/cv2 D
cv2.depthTo3dSparse
image/CV/low-level/cv2 D
cv2.detail.createWeightMap
image/CV/low-level/detail
cv2.detailEnhance
image/CV/low-level/cv2 D
cv2.detail.normalizeUsingWeightMap
image/CV/low-level/detail
cv2.detail.overlapRoi
image/CV/low-level/detail
cv2.detail.stitchingLogLevel
image/CV/low-level/detail
cv2.determinant
image/CV/low-level/cv2 D
cv2.dft
image/CV/low-level/cv2 D
cv2.dilate
image/CV/low-level/cv2 D
cv2.distanceTransform
image/CV/low-level/cv2 D
cv2.distanceTransformWithLabels
image/CV/low-level/cv2 D
cv2.divide (1/2)
image/CV/low-level/cv2 D
cv2.divide (2/2)
image/CV/low-level/cv2 D
cv2.divSpectrums
image/CV/low-level/cv2 D
cv2.dnn.blobFromImage
image/CV/low-level/dnn
cv2.dnn.getInferenceEngineBackendType
image/CV/low-level/dnn
cv2.dnn.getInferenceEngineCPUType
image/CV/low-level/dnn
cv2.dnn.getInferenceEngineVPUType
image/CV/low-level/dnn
cv2.dnn.readTensorFromONNX
image/CV/low-level/dnn
cv2.dnn.setInferenceEngineBackendType
image/CV/low-level/dnn
cv2.drawChessboardCorners
image/CV/low-level/cv2 D
cv2.drawFrameAxes
image/CV/low-level/cv2 D
cv2.drawMarker
image/CV/low-level/cv2 D
cv2.edgePreservingFilter
image/CV/low-level/cv2 E
cv2.eigen
image/CV/low-level/cv2 E
cv2.eigenNonSymmetric
image/CV/low-level/cv2 E
cv2.ellipse (1/2)
image/CV/low-level/cv2 E
cv2.ellipse (2/2)
image/CV/low-level/cv2 E
cv2.EMD
image/CV/low-level/cv2 E
cv2.equalizeHist
image/CV/low-level/cv2 E
cv2.erode
image/CV/low-level/cv2 E
cv2.estimateAffine2D
image/CV/low-level/cv2 E
cv2.estimateAffine3D (1/2)
image/CV/low-level/cv2 E
cv2.estimateAffine3D (2/2)
image/CV/low-level/cv2 E
cv2.estimateAffinePartial2D
image/CV/low-level/cv2 E
cv2.estimateChessboardSharpness
image/CV/low-level/cv2 E
cv2.estimateTranslation3D
image/CV/low-level/cv2 E
cv2.exp
image/CV/low-level/cv2 E
cv2.extractChannel
image/CV/low-level/cv2 E
cv2.face.drawFacemarks
image/CV/low-level/face
cv2.face.getFacesHAAR
image/CV/low-level/face
cv2.face.loadFacePoints
image/CV/low-level/face
cv2.fastAtan2
image/CV/low-level/cv2 F
cv2.fastNlMeansDenoising
image/CV/low-level/cv2 F
cv2.fastNlMeansDenoisingColored
image/CV/low-level/cv2 F
cv2.fillConvexPoly
image/CV/low-level/cv2 F
cv2.filter2D
image/CV/low-level/cv2 F
cv2.filter2Dp
image/CV/low-level/cv2 F
cv2.filterSpeckles
image/CV/low-level/cv2 F
cv2.find4QuadCornerSubpix
image/CV/low-level/cv2 F
cv2.findChessboardCorners
image/CV/low-level/cv2 F
cv2.findChessboardCornersSB
image/CV/low-level/cv2 F
cv2.findChessboardCornersSBWithMeta
image/CV/low-level/cv2 F
cv2.findEssentialMat (1/3)
image/CV/low-level/cv2 F
cv2.findEssentialMat (2/3)
image/CV/low-level/cv2 F
cv2.findEssentialMat (3/3)
image/CV/low-level/cv2 F
cv2.findFundamentalMat (1/2)
image/CV/low-level/cv2 F
cv2.findFundamentalMat (2/2)
image/CV/low-level/cv2 F
cv2.findHomography
image/CV/low-level/cv2 F
cv2.findNonZero
image/CV/low-level/cv2 F
cv2.findTransformECC (1/2)
image/CV/low-level/cv2 F
cv2.findTransformECC (2/2)
image/CV/low-level/cv2 F
cv2.findTransformECCWithMask
image/CV/low-level/cv2 F
cv2.finiteMask
image/CV/low-level/cv2 F
cv2.fisheye.distortPoints (1/2)
image/CV/low-level/fisheye
cv2.fisheye.distortPoints (2/2)
image/CV/low-level/fisheye
cv2.fisheye.estimateNewCameraMatrixForUndistortRectify
image/CV/low-level/fisheye
cv2.fisheye.initUndistortRectifyMap
image/CV/low-level/fisheye
cv2.fisheye.projectPoints
image/CV/low-level/fisheye
cv2.fisheye.solvePnP
image/CV/low-level/fisheye
cv2.fisheye.solvePnPRansac
image/CV/low-level/fisheye
cv2.fisheye.stereoRectify
image/CV/low-level/fisheye
cv2.fisheye.undistortImage
image/CV/low-level/fisheye
cv2.fisheye.undistortPoints
image/CV/low-level/fisheye
cv2.fitEllipse
image/CV/low-level/cv2 F
cv2.fitEllipseAMS
image/CV/low-level/cv2 F
cv2.fitEllipseDirect
image/CV/low-level/cv2 F
cv2.fitLine
image/CV/low-level/cv2 F
cv2.flip
image/CV/low-level/cv2 F
cv2.flipND
image/CV/low-level/cv2 F
cv2.floodFill
image/CV/low-level/cv2 F
cv2.ft.createKernel
image/CV/low-level/ft
cv2.ft.createKernel1
image/CV/low-level/ft
cv2.ft.filter
image/CV/low-level/ft
cv2.ft.FT02D_components
image/CV/low-level/ft
cv2.ft.FT02D_FL_process
image/CV/low-level/ft
cv2.ft.FT02D_FL_process_float
image/CV/low-level/ft
cv2.ft.FT02D_inverseFT
image/CV/low-level/ft
cv2.ft.FT02D_iteration
image/CV/low-level/ft
cv2.ft.FT02D_process
image/CV/low-level/ft
cv2.ft.FT12D_components
image/CV/low-level/ft
cv2.ft.FT12D_createPolynomMatrixHorizontal
image/CV/low-level/ft
cv2.ft.FT12D_createPolynomMatrixVertical
image/CV/low-level/ft
cv2.ft.FT12D_inverseFT
image/CV/low-level/ft
cv2.ft.FT12D_polynomial
image/CV/low-level/ft
cv2.ft.FT12D_process
image/CV/low-level/ft
cv2.ft.inpaint
image/CV/low-level/ft
cv2.GaussianBlur
image/CV/low-level/cv2 G
cv2.gemm
image/CV/low-level/cv2 G
cv2.getAffineTransform
image/CV/low-level/cv2 G
cv2.getClosestEllipsePoints
image/CV/low-level/cv2 G
cv2.getCPUFeaturesLine
image/CV/low-level/cv2 G
cv2.getCPUTickCount
image/CV/low-level/cv2 G
cv2.getDefaultAlgorithmHint
image/CV/low-level/cv2 G
cv2.getDefaultNewCameraMatrix
image/CV/low-level/cv2 G
cv2.getDerivKernels
image/CV/low-level/cv2 G
cv2.getFontScaleFromHeight
image/CV/low-level/cv2 G
cv2.getGaborKernel
image/CV/low-level/cv2 G
cv2.getGaussianKernel
image/CV/low-level/cv2 G
cv2.getHardwareFeatureName
image/CV/low-level/cv2 G
cv2.getNumberOfCPUs
image/CV/low-level/cv2 G
cv2.getNumThreads
image/CV/low-level/cv2 G
cv2.getOptimalDFTSize
image/CV/low-level/cv2 G
cv2.getOptimalNewCameraMatrix
image/CV/low-level/cv2 G
cv2.getPerspectiveTransform
image/CV/low-level/cv2 G
cv2.getRectSubPix
image/CV/low-level/cv2 G
cv2.getRotationMatrix2D
image/CV/low-level/cv2 G
cv2.getStructuringElement
image/CV/low-level/cv2 G
cv2.getTextSize
image/CV/low-level/cv2 G
cv2.getThreadNum
image/CV/low-level/cv2 G
cv2.getTickCount
image/CV/low-level/cv2 G
cv2.getTickFrequency
image/CV/low-level/cv2 G
cv2.getValidDisparityROI
image/CV/low-level/cv2 G
cv2.getVersionMajor
image/CV/low-level/cv2 G
cv2.getVersionMinor
image/CV/low-level/cv2 G
cv2.getVersionRevision
image/CV/low-level/cv2 G
cv2.getVersionString
image/CV/low-level/cv2 G
cv2.goodFeaturesToTrack (1/2)
image/CV/low-level/cv2 G
cv2.goodFeaturesToTrack (2/2)
image/CV/low-level/cv2 G
cv2.goodFeaturesToTrackWithQuality
image/CV/low-level/cv2 G
cv2.grabCut
image/CV/low-level/cv2 G
cv2.hasNonZero
image/CV/low-level/cv2 H
cv2.HoughCircles
image/CV/low-level/cv2 H
cv2.HoughCirclesWithAccumulator
image/CV/low-level/cv2 H
cv2.HoughLines
image/CV/low-level/cv2 H
cv2.HoughLinesP
image/CV/low-level/cv2 H
cv2.HoughLinesPointSet
image/CV/low-level/cv2 H
cv2.HoughLinesWithAccumulator
image/CV/low-level/cv2 H
cv2.HuMoments
image/CV/low-level/cv2 H
cv2.idct
image/CV/low-level/cv2 I
cv2.idft
image/CV/low-level/cv2 I
cv2.illuminationChange
image/CV/low-level/cv2 I
cv2.imdecode
image/CV/low-level/cv2 I
cv2.img_hash.averageHash
image/CV/low-level/img_hash
cv2.img_hash.blockMeanHash
image/CV/low-level/img_hash
cv2.img_hash.colorMomentHash
image/CV/low-level/img_hash
cv2.img_hash.marrHildrethHash
image/CV/low-level/img_hash
cv2.img_hash.pHash
image/CV/low-level/img_hash
cv2.img_hash.radialVarianceHash
image/CV/low-level/img_hash
cv2.initInverseRectificationMap
image/CV/low-level/cv2 I
cv2.initUndistortRectifyMap
image/CV/low-level/cv2 I
cv2.inpaint
image/CV/low-level/cv2 I
cv2.inRange
image/CV/low-level/cv2 I
cv2.insertChannel
image/CV/low-level/cv2 I
cv2.integral
image/CV/low-level/cv2 I
cv2.integral2
image/CV/low-level/cv2 I
cv2.integral3
image/CV/low-level/cv2 I
cv2.intensity_transform.autoscaling
image/CV/low-level/intensity_transform
cv2.intensity_transform.BIMEF
image/CV/low-level/intensity_transform
cv2.intensity_transform.BIMEF2
image/CV/low-level/intensity_transform
cv2.intensity_transform.contrastStretching
image/CV/low-level/intensity_transform
cv2.intensity_transform.gammaCorrection
image/CV/low-level/intensity_transform
cv2.intensity_transform.logTransform
image/CV/low-level/intensity_transform
cv2.intersectConvexConvex
image/CV/low-level/cv2 I
cv2.invert
image/CV/low-level/cv2 I
cv2.invertAffineTransform
image/CV/low-level/cv2 I
cv2.isContourConvex
image/CV/low-level/cv2 I
cv2.kmeans
image/CV/low-level/cv2 K
cv2.Laplacian
image/CV/low-level/cv2 L
cv2.line
image/CV/low-level/cv2 L
cv2.linemod.colormap
image/CV/low-level/linemod
cv2.log
image/CV/low-level/cv2 L
cv2.LUT
image/CV/low-level/cv2 L
cv2.magnitude
image/CV/low-level/cv2 M
cv2.Mahalanobis
image/CV/low-level/cv2 M
cv2.matchShapes
image/CV/low-level/cv2 M
cv2.matchTemplate
image/CV/low-level/cv2 M
cv2.matMulDeriv
image/CV/low-level/cv2 M
cv2.max
image/CV/low-level/cv2 M
cv2.mean
image/CV/low-level/cv2 M
cv2.meanShift
image/CV/low-level/cv2 M
cv2.meanStdDev
image/CV/low-level/cv2 M
cv2.medianBlur
image/CV/low-level/cv2 M
cv2.min
image/CV/low-level/cv2 M
cv2.minAreaRect
image/CV/low-level/cv2 M
cv2.minEnclosingCircle
image/CV/low-level/cv2 M
cv2.minEnclosingConvexPolygon
image/CV/low-level/cv2 M
cv2.minEnclosingTriangle
image/CV/low-level/cv2 M
cv2.minMaxLoc
image/CV/low-level/cv2 M
cv2.moments
image/CV/low-level/cv2 M
cv2.morphologyEx
image/CV/low-level/cv2 M
cv2.motempl.calcGlobalOrientation
image/CV/low-level/motempl
cv2.motempl.calcMotionGradient
image/CV/low-level/motempl
cv2.motempl.updateMotionHistory
image/CV/low-level/motempl
cv2.mulSpectrums
image/CV/low-level/cv2 M
cv2.multiply
image/CV/low-level/cv2 M
cv2.mulTransposed
image/CV/low-level/cv2 M
cv2.norm (1/2)
image/CV/low-level/cv2 N
cv2.norm (2/2)
image/CV/low-level/cv2 N
cv2.normalize
image/CV/low-level/cv2 N
cv2.ocl.haveAmdBlas
image/CV/low-level/ocl
cv2.ocl.haveAmdFft
image/CV/low-level/ocl
cv2.ocl.haveOpenCL
image/CV/low-level/ocl
cv2.ocl.useOpenCL
image/CV/low-level/ocl
cv2.omnidir.initUndistortRectifyMap
image/CV/low-level/omnidir
cv2.omnidir.projectPoints
image/CV/low-level/omnidir
cv2.omnidir.stereoReconstruct
image/CV/low-level/omnidir
cv2.omnidir.stereoRectify
image/CV/low-level/omnidir
cv2.omnidir.undistortImage
image/CV/low-level/omnidir
cv2.omnidir.undistortPoints
image/CV/low-level/omnidir
cv2.optflow.calcOpticalFlowSF (1/2)
image/CV/low-level/optflow
cv2.optflow.calcOpticalFlowSF (2/2)
image/CV/low-level/optflow
cv2.optflow.calcOpticalFlowSparseToDense
image/CV/low-level/optflow
cv2.parallel.setParallelForBackend
image/CV/low-level/parallel
cv2.patchNaNs
image/CV/low-level/cv2 P
cv2.PCABackProject
image/CV/low-level/cv2 P
cv2.PCACompute (1/2)
image/CV/low-level/cv2 P
cv2.PCACompute (2/2)
image/CV/low-level/cv2 P
cv2.PCACompute2 (1/2)
image/CV/low-level/cv2 P
cv2.PCACompute2 (2/2)
image/CV/low-level/cv2 P
cv2.PCAProject
image/CV/low-level/cv2 P
cv2.pencilSketch
image/CV/low-level/cv2 P
cv2.perspectiveTransform
image/CV/low-level/cv2 P
cv2.phase
image/CV/low-level/cv2 P
cv2.phaseCorrelate
image/CV/low-level/cv2 P
cv2.phaseCorrelateIterative
image/CV/low-level/cv2 P
cv2.pointPolygonTest
image/CV/low-level/cv2 P
cv2.polarToCart
image/CV/low-level/cv2 P
cv2.pow
image/CV/low-level/cv2 P
cv2.ppf_match_3d.addNoisePC
image/CV/low-level/ppf_match_3d
cv2.ppf_match_3d.loadPLYSimple
image/CV/low-level/ppf_match_3d
cv2.preCornerDetect
image/CV/low-level/cv2 P
cv2.projectPoints
image/CV/low-level/cv2 P
cv2.projectPointsSepJ
image/CV/low-level/cv2 P
cv2.PSNR
image/CV/low-level/cv2 P
cv2.putText
image/CV/low-level/cv2 P
cv2.pyrDown
image/CV/low-level/cv2 P
cv2.pyrMeanShiftFiltering
image/CV/low-level/cv2 P
cv2.pyrUp
image/CV/low-level/cv2 P
cv2.randn
image/CV/low-level/cv2 R
cv2.randShuffle
image/CV/low-level/cv2 R
cv2.randu
image/CV/low-level/cv2 R
cv2.rapid.convertCorrespondencies
image/CV/low-level/rapid
cv2.rapid.drawCorrespondencies
image/CV/low-level/rapid
cv2.rapid.drawSearchLines
image/CV/low-level/rapid
cv2.rapid.drawWireframe
image/CV/low-level/rapid
cv2.rapid.extractControlPoints
image/CV/low-level/rapid
cv2.rapid.extractLineBundle
image/CV/low-level/rapid
cv2.rapid.findCorrespondencies
image/CV/low-level/rapid
cv2.rapid.rapid
image/CV/low-level/rapid
cv2.recoverPose (1/4)
image/CV/low-level/cv2 R
cv2.recoverPose (2/4)
image/CV/low-level/cv2 R
cv2.recoverPose (3/4)
image/CV/low-level/cv2 R
cv2.recoverPose (4/4)
image/CV/low-level/cv2 R
cv2.rectangle (1/2)
image/CV/low-level/cv2 R
cv2.rectangle (2/2)
image/CV/low-level/cv2 R
cv2.rectangleIntersectionArea
image/CV/low-level/cv2 R
cv2.reduce
image/CV/low-level/cv2 R
cv2.reduceArgMax
image/CV/low-level/cv2 R
cv2.reduceArgMin
image/CV/low-level/cv2 R
cv2.registerDepth
image/CV/low-level/cv2 R
cv2.remap
image/CV/low-level/cv2 R
cv2.repeat
image/CV/low-level/cv2 R
cv2.reprojectImageTo3D
image/CV/low-level/cv2 R
cv2.rescaleDepth
image/CV/low-level/cv2 R
cv2.resize
image/CV/low-level/cv2 R
cv2.Rodrigues
image/CV/low-level/cv2 R
cv2.rotate
image/CV/low-level/cv2 R
cv2.rotatedRectangleIntersection
image/CV/low-level/cv2 R
cv2.sampsonDistance
image/CV/low-level/cv2 S
cv2.scaleAdd
image/CV/low-level/cv2 S
cv2.Scharr
image/CV/low-level/cv2 S
cv2.seamlessClone
image/CV/low-level/cv2 S
cv2.sepFilter2D
image/CV/low-level/cv2 S
cv2.setIdentity
image/CV/low-level/cv2 S
cv2.signal.resampleSignal
image/CV/low-level/signal
cv2.Sobel
image/CV/low-level/cv2 S
cv2.solve
image/CV/low-level/cv2 S
cv2.solveCubic
image/CV/low-level/cv2 S
cv2.solveLP (1/2)
image/CV/low-level/cv2 S
cv2.solveLP (2/2)
image/CV/low-level/cv2 S
cv2.solvePnP
image/CV/low-level/cv2 S
cv2.solvePnPRansac
image/CV/low-level/cv2 S
cv2.solvePnPRefineLM
image/CV/low-level/cv2 S
cv2.solvePnPRefineVVS
image/CV/low-level/cv2 S
cv2.solvePoly
image/CV/low-level/cv2 S
cv2.sort
image/CV/low-level/cv2 S
cv2.sortIdx
image/CV/low-level/cv2 S
cv2.spatialGradient
image/CV/low-level/cv2 S
cv2.sqrBoxFilter
image/CV/low-level/cv2 S
cv2.sqrt
image/CV/low-level/cv2 S
cv2.stackBlur
image/CV/low-level/cv2 S
cv2.stereoRectify
image/CV/low-level/cv2 S
cv2.stereoRectifyUncalibrated
image/CV/low-level/cv2 S
cv2.stylization
image/CV/low-level/cv2 S
cv2.subtract
image/CV/low-level/cv2 S
cv2.sumElems
image/CV/low-level/cv2 S
cv2.SVBackSubst
image/CV/low-level/cv2 S
cv2.SVDecomp
image/CV/low-level/cv2 S
cv2.textureFlattening
image/CV/low-level/cv2 T
cv2.threshold
image/CV/low-level/cv2 T
cv2.thresholdWithMask
image/CV/low-level/cv2 T
cv2.trace
image/CV/low-level/cv2 T
cv2.transform
image/CV/low-level/cv2 T
cv2.transpose
image/CV/low-level/cv2 T
cv2.triangulatePoints
image/CV/low-level/cv2 T
cv2.undistort
image/CV/low-level/cv2 U
cv2.undistortImagePoints
image/CV/low-level/cv2 U
cv2.undistortPoints
image/CV/low-level/cv2 U
cv2.useOptimized
image/CV/low-level/cv2 U
cv2.validateDisparity
image/CV/low-level/cv2 V
cv2.warpAffine
image/CV/low-level/cv2 W
cv2.warpFrame
image/CV/low-level/cv2 W
cv2.warpPerspective
image/CV/low-level/cv2 W
cv2.warpPolar
image/CV/low-level/cv2 W
cv2.watershed
image/CV/low-level/cv2 W
cv2.ximgproc.amFilter
image/CV/low-level/ximgproc
cv2.ximgproc.anisotropicDiffusion
image/CV/low-level/ximgproc
cv2.ximgproc.bilateralTextureFilter
image/CV/low-level/ximgproc
cv2.ximgproc.colorMatchTemplate
image/CV/low-level/ximgproc
cv2.ximgproc.computeBadPixelPercent
image/CV/low-level/ximgproc
cv2.ximgproc.computeMSE
image/CV/low-level/ximgproc
cv2.ximgproc.contourSampling
image/CV/low-level/ximgproc
cv2.ximgproc.covarianceEstimation
image/CV/low-level/ximgproc
cv2.ximgproc.createQuaternionImage
image/CV/low-level/ximgproc
cv2.ximgproc.dtFilter
image/CV/low-level/ximgproc
cv2.ximgproc.edgePreservingFilter
image/CV/low-level/ximgproc
cv2.ximgproc.fastBilateralSolverFilter
image/CV/low-level/ximgproc
cv2.ximgproc.fastGlobalSmootherFilter
image/CV/low-level/ximgproc
cv2.ximgproc.FastHoughTransform
image/CV/low-level/ximgproc
cv2.ximgproc.findEllipses
image/CV/low-level/ximgproc
cv2.ximgproc.fourierDescriptor
image/CV/low-level/ximgproc
cv2.ximgproc.getDisparityVis
image/CV/low-level/ximgproc
cv2.ximgproc.GradientDericheX
image/CV/low-level/ximgproc
cv2.ximgproc.GradientDericheY
image/CV/low-level/ximgproc
cv2.ximgproc.guidedFilter
image/CV/low-level/ximgproc
cv2.ximgproc.jointBilateralFilter
image/CV/low-level/ximgproc
cv2.ximgproc.l0Smooth
image/CV/low-level/ximgproc
cv2.ximgproc.niBlackThreshold
image/CV/low-level/ximgproc
cv2.ximgproc.PeiLinNormalization
image/CV/low-level/ximgproc
cv2.ximgproc.qconj
image/CV/low-level/ximgproc
cv2.ximgproc.qdft
image/CV/low-level/ximgproc
cv2.ximgproc.qmultiply
image/CV/low-level/ximgproc
cv2.ximgproc.qunitary
image/CV/low-level/ximgproc
cv2.ximgproc.RadonTransform
image/CV/low-level/ximgproc
cv2.ximgproc.rollingGuidanceFilter
image/CV/low-level/ximgproc
cv2.ximgproc.thinning
image/CV/low-level/ximgproc
cv2.ximgproc.transformFD
image/CV/low-level/ximgproc
cv2.ximgproc.weightedMedianFilter
image/CV/low-level/ximgproc
cv2.xphoto.applyChannelGains
image/CV/low-level/xphoto
cv2.xphoto.dctDenoising
image/CV/low-level/xphoto
cv2.xphoto.inpaint
image/CV/low-level/xphoto
cv2.xphoto.oilPainting (1/2)
image/CV/low-level/xphoto
cv2.xphoto.oilPainting (2/2)
image/CV/low-level/xphoto
CV Find Absent Color (Lab)
image/CV
CV Affine Shape Warp
image/CV/features
CV Align MTB
image/CV/hdr
CV Align MTB To Reference
image/CV/hdr
CV Annotate Correspondences
image/CV/points
CV Annotate Points On Model
image/CV/low-level
CV Annotate Points
image/CV/points
* → CV Array
image/CV/low-level
CV Apply Chromatic Aberration
image/CV
CV Apply Color Correction
image/CV/ccm
CV Array Statistic
image/CV/low-level
CV Array To BBoxes
image/CV
CV Array To Numbers
image/CV/low-level
CV Array To Text
image/CV/low-level
CV ArUco Board Image
image/CV/features
CV ArUco Board Pose (Average)
image/CV/features
CV ArUco Detect Markers
image/CV/features
CV ArUco Draw Markers
image/CV/features
CV Background Model (Update)
image/CV/segmentation
CV Background Subtract (Batch)
image/CV/contrib
CV Barcode Detect
image/CV/codes
CV BBoxes To Array
image/CV
CV BBoxes to Masks
image/CV
CV Box IoU Matrix
image/CV
CV Build Information
image/CV/low-level
CV Back Project
image/CV/segmentation
CV Histogram
image/CV/segmentation
CV Calibrate Camera (Chessboard)
image/CV/features
CV Calibrate Camera (ChArUco)
image/CV/features
CV Calibrate Camera (Circle Grid)
image/CV/features
CV Camera Matrix
image/CV/low-level
CV Camera Pose To 3D View
image/CV/low-level
CV Cascade Detect
image/CV/ml
CV Cast Array
image/CV/low-level
CV Chart Matrix
image/CV/plots
CV Chart Scatter
image/CV/plots
CV Chart Series
image/CV/plots
CV ChArUco Detect
image/CV/features
CV Chessboard Flags
image/CV/low-level
CV Chromatic Aberration Correction
image/CV
CV Class Scores Decode
image/CV/dnn
CV Color From Hex
image/CV/low-level
CV Colorize Model
image/CV/dnn
Colorize Superpixels (FLANN)
image/CV/colorize
CV Color Map
image/CV
CV Color Range
image/CV/segmentation
CV Color Range From Sample
image/CV/segmentation
CV Components Touching Border
image/CV/contours
CV Compose Pose (Trajectory)
image/CV/features
CV Compute Descriptors
image/CV/features
CV Concat Arrays
image/CV/low-level
CV Connected Components (Split Mask)
image/CV
CV Constant Like
image/CV/features
CV Contour To Points
image/CV/contours
CV Contrast (CLAHE/Equalize)
image/CV
CV Convert Axis Convention (3D)
image/CV/low-level
CV Coordinate Grid
image/CV/ml
Create CA Calibration
image/CV
CV Create CCM Model
image/CV/ccm
CV Crop by BBoxes
image/CV
CV Crop by Masks
image/CV
CV Array Shape
image/CV/low-level
CV Batch → Image Batch
image/CV/low-level
CV DType
image/CV/low-level
Inspect CV Data
image/CV/low-level
Preview CV Array
image/CV/low-level
CV Roll (FFT Shift)
image/CV/low-level
CV Array Size
image/CV/features
CV Array → Image
image/CV/low-level
CV Array → Latent
image/CV/low-level
CV Array → Mask
image/CV/low-level
CV Cylinder Map
image/CV/remap
CV DCT Flags
image/CV/low-level
CV Decompose Homography
image/CV/features
CV Decompose Projection Matrix (RQ)
image/CV/features
CV Deep Features
image/CV/ml
CV Delaunay / Voronoi
image/CV/points
CV Depth to 3D Points
image/CV/low-level
CV Detect Blobs
image/CV/features
CV Detect Circle Grid
image/CV/features
CV Detect Color Checker
image/CV/ccm
CV Detect Corners
image/CV/features
CV Detect Features
image/CV/features
CV Detect Lines (Hough)
image/CV
CV Detect Line Segments (LSD)
image/CV/features
CV Detect MSER Regions
image/CV/contours
CV DFT Flags
image/CV/low-level
CV Disparity Filter (WLS)
image/CV/contrib
CV Disparity Interpolate (Edge-Aware)
image/CV/contrib
CV Displacement Map
image/CV/remap
CV DNN Blob From Image
image/CV/dnn
CV DNN Forward
image/CV/dnn
CV DNN Forward All
image/CV/dnn
CV DNN Images From Blob
image/CV/dnn
CV DNN Letterbox
image/CV/dnn
CV DNN Mask Output
image/CV/dnn
CV DNN Pick Output
image/CV/dnn
CV DNN Tokenizer
image/CV/dnn
CV Downsample Point Cloud
image/CV/points
CV Draw Circles
image/CV/points
CV Draw Connections
image/CV/points
CV Draw Contours
image/CV/contours
CV Draw Ellipses
image/CV/points
CV Draw Epipolar Lines
image/CV/features
CV Draw Flow Grid
image/CV/features
CV Draw Flow Vectors
image/CV/points
CV Draw Keypoints
image/CV/features
CV Draw Labels
image/CV/points
CV Draw Matches
image/CV/features
CV Draw Path (ordered)
image/CV/points
CV Draw Plot Frame
image/CV/points
CV Draw Points
image/CV/points
CV Draw Polygon
image/CV/features
CV Draw Rays
image/CV/points
CV Draw Segments
image/CV/points
CV Draw Text
image/CV/features
CV EAST Text Detect
image/CV/dnn
CV Edge Drawing
image/CV/contrib
CV Embedding Match
image/CV/dnn
CV Enclosing Circle
image/CV/contours
CV Eye
image/CV/features
CV Detect Line Segments (FLD)
image/CV/contrib
CV Feather Blend
image/CV/features
CV Feature Extract (Model)
image/CV/dnn
CV Fill Holes
image/CV/contours
CV Filter Contours
image/CV/contours
CV Filter Contours By Shape
image/CV/contours
CV Filter Keypoints
image/CV/features
CV Filter Point Cloud
image/CV/low-level
CV Filter Points 3D By Mask
image/CV/points
CV Filter Points By Distance
image/CV/points
CV Filter Points By Mask
image/CV/points
CV Find Contours
image/CV/contours
CV Find Fundamental Matrix
image/CV/features
CV Find Homography (RANSAC)
image/CV/features
CV Find Quadrilateral
image/CV/contours
CV Find Transform (ECC)
image/CV/features
CV Fisheye Calibrate (Chessboard)
image/CV/features
CV Fisheye Undistort
image/CV/features
CV Fit Points To Box
image/CV/points
CV Flip Axis (3D)
image/CV/low-level
CV FloodFill Flags
image/CV/low-level
CV Flow Map
image/CV/remap
CV Flow To Color
image/CV/features
CV GEMM Flags
image/CV/low-level
CV Generalized Hough (Shape Template)
image/CV/features
CV Get CCM Loss
image/CV/ccm
CV Get CCM Matrix
image/CV/ccm
CV GrabCut
image/CV/segmentation
CV Grid Points
image/CV/low-level
CV HDR Exposure Fusion (Mertens)
image/CV/hdr
CV HDR Merge to Radiance
image/CV/hdr
CV HDR Tonemap
image/CV/hdr
CV HFS Segmentation (hierarchical feature selection)
image/CV/contrib
CV HOG Features
image/CV/ml
CV Homography Map
image/CV/remap
CV ICP Register (Point Clouds)
image/CV/contrib
CV Identity Map
image/CV/remap
Image Batch → CV Batch
image/CV/low-level
CV Image Corners
image/CV/features
CV Image Hash Compare
image/CV/contrib
CV Image Moments
image/CV/moments
CV Quality Compare (cv2.quality)
image/CV/quality
Image → CV Array
image/CV/low-level
CV Index Batch
image/CV/low-level
CV Install Example Inputs
image/CV
CV Kalman Filter Step
image/CV/features
CV Keep Largest Component
image/CV/contours
CV Labels to Masks (full size)
image/CV
Latent → CV Array
image/CV/low-level
CV LLM Generate
image/CV/dnn
CV Load Camera Params (JSON)
image/CV/low-level
CV Load Labels
image/CV/dnn
CV Local Linear Fit (per pixel)
image/CV
CV Masks to BBoxes
image/CV
Mask → CV Array
image/CV/low-level
CV Match Features
image/CV/features
CV Match Features (Model)
image/CV/dnn
CV Match Image Moments
image/CV/moments
CV Match Template Multi-Scale
image/CV
CV Matrix Multiply
image/CV/features
CV Matrix To Pose
image/CV/features
CV Merge Contours
image/CV/contours
CV Merge Point Clouds
image/CV/points
CV Mesh From 3D Model
image/CV/low-level
CV Mesh Split Long Edges
image/CV/low-level
CV Mesh Vertex Normals
image/CV/low-level
CV Mosaic (RGB -> Bayer CFA)
image/CV/low-level
CV MediaPipe Hand Pose
image/CV/dnn
CV MediaPipe Palm Detect
image/CV/dnn
CV NMS Boxes
image/CV
CV Numbers To Array
image/CV/low-level
CV 3D Object Transform
image/CV/low-level
CV Omnidir Calibrate (Chessboard)
image/CV/features
CV Omnidir Stereo Reconstruct
image/CV/features
CV Omnidir Undistort
image/CV/features
CV Optical Flow Flags
image/CV/low-level
CV Optical Flow (DeepFlow / PCAFlow)
image/CV/contrib
CV Optical Flow (DIS)
image/CV/features
CV Optical Flow (Farneback)
image/CV/features
CV Optical Flow (RLOF, Dense)
image/CV/contrib
CV Optical Flow (TV-L1)
image/CV/contrib
CV Overlay Masks
image/CV
Parse Matrix
image/CV/low-level
CV Parse Object Transform
image/CV/low-level
CV Paste by BBox
image/CV
CV Paste Through Warp
image/CV/features
CV Permute Axes
image/CV/low-level
CV Phase Correlate (Translation)
image/CV/features
CV Photometric Align (Gain/Bias)
image/CV
CV Pick Value (sorted)
image/CV/points
CV Pinch/Stretch Map
image/CV/remap
CV Plot 2D (cv2.plot)
image/CV/plots
CV Point Cloud Nearest Distance
image/CV/points
CV Point Cloud Normals
image/CV/points
CV Points
image/CV/low-level
CV Points To Contour
image/CV/contours
CV Points To Polar
image/CV/points
CV Polar To Points
image/CV/points
CV Polynomial Radial Map
image/CV/remap
CV Pose To Matrix
image/CV/features
CV PPF Pose Estimation
image/CV/contrib
CV Predict Classifier
image/CV/ml
CV Preview 3D (Calibrated Camera)
image/CV/low-level
CV Project Points (Sequence)
image/CV/low-level
CV Project To Plane
image/CV/points
CV QR Decode At Points
image/CV/codes
CV QR Detect
image/CV/codes
CV QR Encode
image/CV/codes
CV Quad To Rectangle
image/CV/contours
CV Quad Warp
image/CV/contours
CV Quality BRISQUE (no-reference)
image/CV/quality
CV Quality BRISQUE Features
image/CV/quality
CV Quality Compare Batch (cv2.quality)
image/CV/quality
CV Quasi-Dense Stereo
image/CV/features
CV Radial Lens Map
image/CV/remap
CV Random Points
image/CV/ml
CV Rapid Track (Sequence)
image/CV/contrib
CV Rasterize Mesh
image/CV/low-level
CV Recover Pose (Essential Matrix)
image/CV/features
CV Reduce Array By Label
image/CV/low-level
CV Reduce Points By Label
image/CV/points
CV Reduce Values By Label
image/CV/points
CV Refine Flow (Variational)
image/CV/features
CV Region Properties
image/CV/contours
CV Region Property Flags
image/CV/contours
CV Register Point Clouds (3D)
image/CV/features
CV Relative Identity Map
image/CV/remap
CV Reshape Array
image/CV/low-level
CV Saliency
image/CV/contrib
CV Sample Array At Points
image/CV/points
CV Save Camera Params (JSON)
image/CV/low-level
CV Save Classifier
image/CV/ml
CV Scalar
image/CV/low-level
CV Scale BBoxes
image/CV
CV Scale Homography
image/CV/features
CV Scale Points
image/CV/points
CV Select Component At Point
image/CV/contours
CV Select Contour
image/CV/contours
CV Seq2Seq Generate
image/CV/dnn
CV Random Seed
image/CV/low-level
CV SFace Embeddings
image/CV/dnn
CV Shape Distance
image/CV/contours
CV Shape Moments
image/CV/contours
CV Skeletonize
image/CV/contours
CV Slice Array
image/CV/low-level
CV Snap BBoxes (Crop Policy)
image/CV
CV Solve PnP (Pose)
image/CV/features
CV Solve PnP (All Poses)
image/CV/features
CV Split Point
image/CV/low-level
CV Split Tuple
image/CV/low-level
CV Stack Batch
image/CV/low-level
CV Stack Feature Classes
image/CV/ml
CV Stack Images
image/CV/features
CV Stereo Calibrate (Chessboard)
image/CV/features
CV Stereo Calibrate (Circle Grid)
image/CV/features
CV Stereo Calibration From CSV
image/CV/features
CV Stereo Disparity (SGBM)
image/CV/features
CV Stereo Disparity (BM)
image/CV/features
CV Stereo Disparity (WLS filtered)
image/CV/contrib
CV Stereo Rectify (Uncalibrated)
image/CV/features
CV Stitch
image/CV/features
CV Stitch (Advanced)
image/CV/features
CV Stitch (Advanced List)
image/CV/features
CV Stitch Canvas
image/CV/features
CV Stitch (List)
image/CV/features
CV Superpixels
image/CV/contrib
CV SVD Flags
image/CV/low-level
CV Take By Index
image/CV/low-level
CV Temporal Reduce (Background Plate)
image/CV/segmentation
CV Term Criteria
image/CV/low-level
CV Text To Array
image/CV/low-level
CV Thin Plate Spline Warp
image/CV/features
CV Threshold Flags
image/CV/low-level
CV To Blob
image/CV/low-level
CV Track Features (KLT)
image/CV/features
CV Track Window
image/CV/features
CV Train Classifier
image/CV/ml
CV Trajectory Error (ATE / RPE)
image/CV/features
CV Transform (Rotate/Scale/Shift)
image/CV
CV Transform Points 3D
image/CV/points
CV Triangulate Points (Two-View)
image/CV/features
CV Tuple
image/CV/low-level
CV Unproject Points
image/CV/low-level
CV Unstack Batch
image/CV/low-level
CV Vector Displacement Map
image/CV/remap
CV Visual Odometry (Sequence)
image/CV/features
CV VLM Generate
image/CV/dnn
CV Warp Flags
image/CV/low-level
CV Wave Map
image/CV/remap
CV WeChat QR Detect
image/CV/dnn
CV Write PLY (Point Cloud)
image/CV/low-level
CV White Balance (xphoto)
image/CV/contrib
CV YOLO Detect Decode
image/CV/dnn
CV YOLO Seg Masks
image/CV/dnn
CV YuNet Face Detect
image/CV/dnn
⚠️ CV ZeroStride Like
image/CV/features
Readme

ComfyUI CV

Computer-vision nodes for ComfyUI. The pack exposes the functions of the OpenCV library (cv2) as nodes — ~470 auto-generated raw cv2.* wrappers plus curated high-level nodes — but it is not limited to plain cv2 calls: a few nodes implement their own algorithm, and not all of cv2 is reachable. See the disclaimers below for both caveats.

This project is an independent, personal endeavor and is not affiliated with, endorsed by, or part of the official OpenCV project. It does not reflect the official roadmap or the views of the OpenCV maintainers. It is provided 'as is', without any express or implied warranties.

"OpenCV" is a registered trademark of the Open Source Vision Foundation — the name as much as the logo. This pack is therefore named ComfyUI CV, not after the library, and names OpenCV only to describe what it wraps.

<details> <summary> <b>Disclaimers</b> (that you should read) ⬅ click to expand </summary> <br>
  1. Created with heavy use of Generative AI (LLMs). The following models were used: opencode's "Big Pickle" stealth models; DeepSeek V4 family; Dots3-Note Preview; Fable 5; Kimi K3; Ling-3.0-flash; Opus family.

    Besides potential ethical concerns, it also entails the following practical risks:

    • Test‑driven overfitting: During development, some workflows were developed via a test‑driven approach with sample inputs and outputs. In some cases, the agent generating the code appears to have over‑fitted to the provided examples at the expense of broader correctness. For instance, the 5th and 6th Hu Moments were initially dropped because they were not represented in the test suite. While this specific error was later corrected, it is possible that similar undetected mistakes exist elsewhere in the codebase.

    • Exhaustive input handling: The "smart" behavior for input types and processing is implemented via exhaustive lists in lowlevel.py. This does not directly affect end‑users, but it may present a maintenance burden for future contributors or for anyone extending the library.

    • Production readiness: Given the points above, it is not recommended to use this library in production without a thorough, independent review of the used source code. You should verify that all logic aligns with your own requirements, validate with your own test cases, and consider adding additional safeguards.

  2. Updates not planned; may happen at any time. Do not expect prompt support regarding potential issues/fixes.

  3. Not all OpenCV functionality is exposed. Despite ~470 auto-generated raw cv2.* wrappers plus curated nodes, only a subset of cv2 is reachable: the generator parses top-level functions only, so class-based APIs (create* factories, detectors, matchers) and complex multi-return functions are absent unless a curated node bridges them (see docs/custom_nodes.md).

  4. Some low-level nodes cannot run on a given OpenCV distribution. The node registry is generated from whatever the installed build exposes, which can include entries whose implementation the build lacks. On the pinned reference build, for instance, ximgproc.fastBilateralSolverFilter is exposed but always raises (-213) needs to be compiled with EIGEN when executed; another build could surface more or fewer such entries.

    [!NOTE]
    NONFREE entries are not something to go hunting for: stock opencv-contrib-python(-headless) wheels are built with OPENCV_ENABLE_NONFREE=OFF.

    NO shipped workflow uses NONFREE functions.

  5. DNN support is limited, and ComfyUI often already does it better. Everything here goes through cv2.dnn on principle — that is the point of the pack — even where ComfyUI has a first-class node for the same job. Frame interpolation is the clearest example: core ships "Run Frame Interpolation Model" (FrameInterpolate) plus its loader, which run RIFE and FILM natively in PyTorch, on the GPU, in fp16, with model offloading and a 2–16× multiplier applied across a whole batch. The example workflow for RIFE does it the heretic way instead: an ONNX export, driven through the generic cv2.dnn nodes, on the CPU, one frame pair per execution, with the input padded to a multiple of 32 by hand. If you actually want to interpolate a video, use the core node. Use this one to see how the pieces fit together or to reach a model core does not support.

    The same caveat applies to the DNN examples generally. Models that run fine in PyTorch had to be converted to ONNX, because that is the format OpenCV's DNN module supports — and conversion is sometimes not sufficient: a perfectly valid export can still be unloadable here. Support for modern architectures is limited by both the DNN implementation and the pinned OpenCV version.

  6. Models are not bundled. DNN/LLM workflows need external model downloads (models/onnx), and some might require conversion into .onnx (.tflite may also work, I did not test).

    Model source URLs in the workflow notes.

  7. Raw low-level wrappers are auto-generated and uncurated — expect to handle conversions and edge cases yourself.

  8. The workflows are not production-grade. They exist mainly to showcase, plan and test the functionalities; several pipelines/heuristics are overfitted to specific datasets (e.g. the sky mask and stereo settings tuned to StereoGeo-CARLA) or may be lacking, so they are not usable in actual production contexts. Individual nodes may still be genuinely useful in real workflows.

  9. Most nodes are direct cv2.* wrappers or high-level compositions of cv2 calls, but a few are genuine exceptions that reimplement an algorithm instead. CV Photometric Align (Gain/Bias) fits a robust per-channel gain/bias via trimmed numpy least squares, and CV Local Linear Fit runs a windowed regression around every pixel; the crop/paste geometry (boxpolicy/polytype) is pure Python + numpy with no cv2 at all. They are curated like everything else, but they are not OpenCV functions in the wrapper sense (see docs/custom_nodes.md).

</details> <details> <summary> <b>Gallery</b> ⬅ click to expand </summary> <br> <table> <tr> <td><img src="docs/gifs/annotate_grabcut_gm_optimized.gif" alt="Annotate grabcut"></td> <td><img src="docs/gifs/quad_warp_extract_gm_optimized.gif" alt="Quad warp extract"></td> </tr> <tr> <td><img src="docs/gifs/quad_warp_fill_gm_optimized.gif" alt="Quad warp fill"></td> <td><img src="docs/gifs/thin_plate_warp.gif" alt="Thin plate warp"></td> </tr> <tr> <td><img src="docs/gifs/thin_plate_warp_over_bg.gif" alt="Thin plate warp over background"></td> <td><img src="docs/imgs/clean_plate_matte.jpg" alt="Clean plate matte"></td> </tr> <tr> <td colspan="2"><img src="docs/imgs/kmeans_masks.jpg" alt="K-means masks"></td> </tr> <tr> <td colspan="2"><img src="docs/imgs/lightglue.jpg" alt="Lightglue"></td> </tr> <tr> <td colspan="2"><img src="docs/imgs/neural_style_transfer_mosaic.jpg" alt="Neural style transfer mosaic"></td> </tr> <tr> <td><img src="docs/imgs/panorama_stitching.jpg" alt="Panorama stitching"></td> <td><img src="docs/imgs/scene_depth.jpg" alt="Scene depth"></td> </tr> <tr> <td colspan="2"><img src="docs/imgs/relative_remap.jpg" alt="Relative remap"></td> </tr> <tr> <td><img src="docs/imgs/yunet_face_detection.jpg" alt="YuNet face detection"></td> <td><img src="docs/imgs/qr_code_encode.jpg" alt="QR code encode"></td> </tr> </table> </details> <details> <summary> <b>Installation and Troubleshooting</b> ⬅ click to expand </summary> <br>

Requires Python ≥ 3.12 and a recent ComfyUI built on the V3 node API.

The only required python dependency can be installed via the pyproject.toml/requirements or with the following command:

pip install "opencv-contrib-python-headless~=5.0.0.93"

Behavior is curated against 5.0.0.93; other versions may behave differently.

The headless wheel is the declared dependency because nothing in the pack uses highgui (no imshow/waitKey/trackbars — the registry generator blacklists them outright). The GUI opencv-contrib-python build is equally usable if something else already installed it.

What does matter is contrib: installing a non-contrib wheel (opencv-python / opencv-python-headless) over a contrib one silently empties the contrib submodules and contrib nodes disappear — all four distributions share one site-packages/cv2. tools/repair_opencv_contrib.py diagnoses (--check) and repairs (--apply) that, but there is no install-time guard.

Some workflows and subgraphs are dependent on other custom node packages, namely:

</details> <details> <summary> <b>Get Started</b> ⬅ click to expand </summary> <br>

Install the example inputs

The example workflows load their photos, videos and the MilkTruck.glb model from this pack's example_inputs/ folder. ComfyUI's Load Image / Load Video / Load 3D nodes are dropdowns, though: they can only offer what is already inside ComfyUI/input, so on a fresh install those nodes open red.

Run workflows/01_install_example_inputs.json once and the copy is done for you — it is a single node, CV Install Example Inputs (image/CV), with nothing to wire up:

  1. Load the workflow and press Run.
  2. Reload the ComfyUI page. The Load* dropdowns are built when the node definitions are fetched, so files copied during a session only appear after a refresh.

Details worth knowing:

  • Nothing is overwritten by default. existing_files starts on keep the file already there, so a name that already exists in your input folder wins and a second run is a no-op (everything comes back as skipped). Switch it to overwrite it with the packaged copy only to repair a sample you edited in place.
  • Look before you leap. Setting mode to list what would be copied (dry run) reports exactly what a real run would do and writes nothing — worth doing if your input folder holds work of your own.
  • 3D models go to ComfyUI/input/3d, which is the only folder core's Load 3D nodes list. Everything else — images, video, and the calibration .json/.yaml/.csv/.txt sidecars — lands in ComfyUI/input itself.
  • Nothing outside input is touched, and nothing is ever deleted. The node is failure tolerant: a missing source folder or an unwritable file leaves ok=false and names the problem in report instead of halting the run.

Copying by hand works just as well — example_inputs/ is ~33 MB of ordinary files, and example_inputs/sources.txt records where each one came from and under which license.

[!NOTE] The .onnx / cascade / LLM / VLM models are a separate matter: they are not in this repo and not part of example_inputs. See model_sources.txt at the repo root for where to get them.

Two inputs do not ship, because of size: the 48 MB driving clip for exercise_visual_odometry_video.json (its ground-truth poses do ship, under a non-commercial licence) and the flash / no-flash photo pair in 10_ximgproc_edge_aware_filters.json. Each of those workflows carries a note on the canvas explaining where to get them. Everything else a workflow loads is in example_inputs/, and the development test suite fails if that stops being true.

More reading and reference material: Documentation below.

</details> <details> <summary> <b>Documentation</b> ⬅ click to expand </summary> <br>

| Link | What it is | Open it when | | --- | --- | --- | | Custom nodes | Catalog of every hand-written node with usage notes and limits | wiring a graph and want a node's intended use | | Subgraph blueprints | 65 reusable compositions, each a one-node workflow to open and build around | a step you keep rebuilding — a blueprint may already exist | | OpenCV 5.0 documentation | Official upstream API reference | using a low-level cv2.* wrapper and want the exact signature/edge cases | | Model sources | External DNN/LLM models: download URLs, target folders, license record | a model-backed workflow opens red | | Example input sources | Provenance and licenses of the bundled sample media | planning to redistribute outputs or audit assets |

</details>

Credits

Gerold Meisinger, the maintainer of opencv-comfyui from which this project was forked.

Abhishek Gola, the maintainer of opencv_contribution which contains many of the .onnx models showcased in this project and example scripts on how to run them.

License and provenance

Copyright (C) 2026 bmad4ever. Licensed under GPL-3.0-only — every first-party source file carries an SPDX-License-Identifier: GPL-3.0-only header.

The GPL is inherited, not picked: this pack is a fork of opencv-comfyui (GPL-3.0), which is also where the pack's name, the idea of generating raw cv2.* node wrappers from the type stubs, and the NPARRAY socket come from. What ships today is a rewrite on ComfyUI's V3 node API; the handful of files whose lineage still runs back upstream — __init__.py, opencv_nodes/convert.py, opencv_nodes/lowlevel.py, the generated opencv_nodes/registry*.py, and generator/generator.py — say so in their own header.

Bundled third-party code

Not covered by the notice above; each keeps its own license.

| Where | What | License | |---|---|---| | web/lib/ | three.js, plus GLTFLoader / OrbitControls / TransformControls / BufferGeometryUtils | MIT — web/lib/LICENSE.three.txt | | web/lib/ | Apache ECharts | Apache-2.0 — web/lib/LICENSE.echarts.txt, web/lib/NOTICE.echarts.txt | | web/lib/ | KaTeX and its fonts | MIT — web/lib/LICENSE.katex.txt | | workers/dnn_tasks.py | the _MPPalmDet / _MPHandPose classes, ported from the OpenCV Zoo handpose_estimation_mediapipe reference (upstream models: Google MediaPipe Hands) | Apache-2.0 | | workers/stitch_advanced_worker.py | stage order and parameter set follow OpenCV's own samples/python/stitching_detailed.py | Apache-2.0 | | opencv_nodes/param_docs.py, opencv_nodes/return_docs.py | per-parameter tooltip text extracted from the OpenCV documentation | Apache-2.0, OpenCV contributors |

OpenCV itself is a runtime dependency, not bundled: cv2 comes from the opencv-contrib-python-headless wheel you install (Apache-2.0), and no OpenCV binaries ship here.

Image and video assets are recorded in example_inputs/sources.txt, and the screenshots and GIFs in this README — with the inputs each one derives from — in docs/sources.txt. The .onnx, cascade, LLM and VLM models are not in this repo at all; their provenance and licenses are in model_sources.txt. Read that file before redistributing anything you download through it: a few of those models carry terms stricter than this pack's (notably yolo26n-seg.onnx, AGPL-3.0 with a network clause).

One asset is not under the GPL grant. example_inputs/kitti_2011_09_26_drive_0009_poses.txt is the KITTI ground-truth pose track, CC BY-NC-SA 3.0 — non-commercial, inherited from the KITTI benchmark. It is the only non-commercial file in the repository, included for the visual-odometry example only; the GPL-3.0 grant above does not extend to it. Remove that one file if you need a uniformly commercial-safe tree.

OpenCV is a registered trademark of the Open Source Vision Foundation. This pack is an independent, unofficial wrapper, as stated at the top.