OpenCV determinant_0
A matrix math node in an image pack — probably not yours
- mtx
- float
determinant_0 is cv2.determinant wearing a ComfyUI costume: you feed it a square matrix as an NPARRAY and it returns a single float - the matrix's determinant. No image in, no image out. This is the pack's auto-generator at its most literal, exporting a bare linear-algebra function because it's technically a top-level cv2 call. It works fine. The question is whether you'll ever have a reason to wire it.
The determinant is that number that tells you whether a matrix is invertible: zero means it isn't (singular), nonzero means it is, and the sign says something about orientation. In image work, the matrices that actually show up are the geometric ones - homographies, affine transforms, camera calibration matrices. If you're doing, say, perspective rectification and you built a 3×3 homography with numpy elsewhere, running its determinant tells you "is this transform degenerate / is it going to blow up when I invert it." That's a real debugging signal. It's also a signal almost nobody in the ComfyUI image-generation world ever reaches for, because nothing else in this pack produces a matrix for you to feed it, and the generation side of ComfyUI doesn't touch homographies.
Inputs: mtx - an NPARRAY, a square 2×2 or 3×3 array. Output: float (the schema literally names it float), the determinant. That's the whole node.
Where this gets awkward is the same pack-wide friction as everything else here. It wants an NPARRAY, and there's no node in the pack to make an arbitrary matrix - the Image2Nparray/Nparrays2Image pair only round-trips images. So to use determinant_0 you're building the matrix with a numpy node from a different pack, or doing the math in Python outside ComfyUI. If you're already at the point of writing numpy, calling cv2.determinant directly (or np.linalg.det, same thing for a 3×3) is easier than threading it through the graph. That's the honest read: this node is for someone who wants their whole pipeline in-graph, no Python, and is willing to source matrices from elsewhere.
Installing is identical to every node in the pack - it ships in geroldmeisinger/opencv-comfyui:
cd ComfyUI/custom_nodes
git clone https://github.com/geroldmeisinger/opencv-comfyui
or ComfyUI Manager → search "OpenCV", then restart. Needs opencv-contrib-python, numpy, torch; the usual conflicting-wheels guidedFilter import error blocks the whole pack if it bites.
determinant_1 is the same function under a different suffix - one node per OpenCV overload (MatLike vs UMat), both identical here.
Reality check: you'll probably never use this. But it's the kind of node that proves the pack really did sweep up everything, and it costs nothing to have installed.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| mtx | NPARRAY | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| float | FLOAT | — |