| image | NPARRAY,IMAGE | | Scene to search (converted to grayscale internally; edges are computed inside with the canny_* thresholds). Accepts a ComfyUI IMAGE/MASK directly (frame 0 of a batch) or an NPARRAY. Arithmetic ops (add, multiply, etc.) process the full IMAGE batch when both inputs have the same batch size. |
| template | NPARRAY,IMAGE | | Image of the shape to find. Its edges become the R-table, so a clean, tightly cropped outline works far better than a busy crop. Accepts a ComfyUI IMAGE/MASK directly (frame 0 of a batch) or an NPARRAY. Arithmetic ops (add, multiply, etc.) process the full IMAGE batch when both inputs have the same batch size. |
| method | COMBO | Ballard (position only, fast) | Ballard: translation only, one accumulator, fast. Guil: also scale and rotation, orders of magnitude slower - narrow min/max scale and angle before using it. |
| canny_low | INT | 501–255 | Lower Canny hysteresis threshold used for BOTH the template and the scene edges. Lower it if the shape's outline is faint. |
| canny_high | INT | 1001–255 | Upper Canny hysteresis threshold; roughly 2-3x the lower one. |
| min_distance | FLOAT | 101–1000 | Minimum distance in pixels between two reported detections - this is what stops one shape being reported as a cluster of near-identical hits. |
| votes_threshold | INT | 301–100000 | Ballard only: how many edge points must vote for a position before it counts. LOWER it if nothing is found, raise it if the scene is full of false hits. It scales with the template's edge-pixel count. |
| dpopt | FLOAT | 1.00.5–10 | Accumulator resolution divisor: 1.0 = same resolution as the image, 2.0 = half (coarser, faster, more tolerant). |
| levelsopt | INT | 36010–3600 | Number of gradient-direction bins in the R-table. |
| min_scaleopt | FLOAT | 0.800.05–10 | Guil only: smallest template scale to search. |
| max_scaleopt | FLOAT | 1.200.05–10 | Guil only: largest template scale to search. |
| scale_stepopt | FLOAT | 0.100.01–1 | Guil only: scale increment. Every extra step costs a full pass. |
| min_angleopt | FLOAT | 00–360 | Guil only: smallest rotation in DEGREES to search. |
| max_angleopt | FLOAT | 3600–360 | Guil only: largest rotation in degrees. |
| angle_stepopt | FLOAT | 10.00.1–90 | Guil only: rotation increment in degrees. 1 degree over the full circle is 360 passes - start coarse. |
| position_votesopt | INT | 1001–100000 | Guil only: vote threshold of the POSITION stage. |
| scale_votesopt | INT | 1001–100000 | Guil only: vote threshold of the SCALE stage. |
| angle_votesopt | INT | 100001–1000000 | Guil only: vote threshold of the ANGLE stage. |