OpenCV fastAtan2_0
The OpenCV node that isn't even about images — and the (y, x) trap that waits in it
- float
Every node in the opencv-comfyui pack is auto-generated from OpenCV's own type definitions, and this one is the pack's most honest "these are just OpenCV functions, not ComfyUI nodes" moment. fastAtan2_0 doesn't touch an image, a tensor, or even an nparray. It computes the angle of a 2D vector and hands you back a number.
Specifically, it calls cv2.fastAtan2(y, x) and returns the angle in degrees, in the range 0–360, with the quadrant handled correctly. That's the whole job. Where math.atan2 gives you radians in a -π..π range, this gives you the compass-style 0–360 degrees, which is what OpenCV's drawing and rotation routines actually want.
Why you'd ever reach for it
Honestly? Not often, and the pack author would agree - the README explicitly warns that "not every function is useful within ComfyUI without further processing." fastAtan2_0 is a scalar helper in a pack of image operators. You grab it when you're building a vector-math mini-pipeline: find the angle of a detected line so you can rotate the image to straighten it, compute the heading of a motion vector, or derive a rotation angle to feed into one of the pack's geometry nodes. If your workflow already leans on a Python-script node, you'd just write math.degrees(math.atan2(y, x)) there and never install this pack. The node exists because the generator wrapped everything top-level in cv2 - 635 functions, useful and otherwise.
The inputs and the trap
Two inputs, both required:
y(FLOAT) - the y component of your vector.x(FLOAT) - the x component.
The trap is the ordering. This is atan2(y, x), not atan2(x, y). Swap them and everything in the 0–45° and 270–360° quadrants comes out wrong in ways that are annoying to spot. Get into the habit of reading the y port as "first" here. The output is a single float FLOAT.
Installing it
This is one of ~600 nodes in geroldmeisinger/opencv-comfyui, so install the pack once and you get them all. In ComfyUI Manager, search opencv-comfyui, or:
cd ComfyUI/custom_nodes
git clone https://github.com/geroldmeisinger/opencv-comfyui
then restart ComfyUI. The pack needs opencv-contrib-python, numpy and torch; most installs already have OpenCV, but if ComfyUI dies on startup with Cannot import name 'guidedFilter' from 'cv2.ximgproc', two conflicting OpenCV installs are fighting - sort that out and it clears.
The honest take
This is the node you use once to check "does this pack work?" and then never again, because feeding scalar numbers through a node graph is more ceremony than just writing the math. It's a neat proof that the generator wrapped everything - but for angles, a one-line Python helper will beat this node every time. Reach for the denoising or filter2D siblings if you actually want OpenCV on images in ComfyUI.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| y | FLOAT | — | |
| x | FLOAT | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| float | FLOAT | — |