- X
- Y
- VEC2
- VEC2INT
VECTOR2 (JOV) does exactly one thing: bundles two numbers into a single VEC2 wire. It sounds trivial until you realize how many ComfyUI nodes want an x/y pair - offsets, sizes, pivots, coordinates - and how many of those expect the pair on one connection rather than two loose floats. Jovimetrix's own nodes are full of them: the TRANSFORM node's translate and scale inputs, the CONSTANT node's canvas size, virtually every WH input. This is the node that feeds those pairs without you hand-typing vector widgets all over the graph.
What it is
Two numeric inputs, X (1st channel value) and Y (2nd channel value), each accepting a boolean, float or int and ranging over the full signed 64-bit float range. Feed them from sliders, from a WAVE GEN output, or from a VALUE node - whatever produces a number. If you leave one unconnected it just contributes its default of 0, which makes it handy as a cheap way to build a pair from a single animated value plus a constant.
It's also compatible with the wider vector ecosystem: Jovimetrix advertises full compatibility with ComfyMath Vector nodes, so the VEC2 you build here plugs into ComfyMath's vector math (add, subtract, normalize, dot product) without conversion nodes in between.
Outputs
Two, and this is where it beats a hand-rolled pair:
- VEC2 - the pair as floats. This is the one you'll wire into 99% of things.
- VEC2INT - the same pair rounded to integers. Handy when a downstream node wants whole-pixel values (crop boxes, tile counts) but you're driving from a float source.
Install and gotchas
It ships with Jovimetrix, so it arrives with the whole pack: git clone https://github.com/Amorano/Jovimetrix.git into ComfyUI/custom_nodes, then pip install -r requirements.txt (Windows portable: .\python_embed\python.exe -s -m pip install -r requirements.txt), or search "Jovimetrix" in ComfyUI Manager. No models, no keys. Needs Python 3.10+.
There's not much to break here. The one thing people stumble on: the outputs are lists, so when you're feeding a VEC2 into a node that expects a scalar, it'll complain - that's a type mismatch, not a bug. And remember the node just bundles; it doesn't clamp or validate, so garbage in is garbage out. If you need two-float math before packaging, do it upstream with an OP BINARY node. For a "join two numbers into one wire" job, this is the right tool and it's free.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| Xopt | BOOLEAN,FLOAT,INT | 0-9223372036854776000–9223372036854776000 | 1st channel value |
| Yopt | BOOLEAN,FLOAT,INT | 0-9223372036854776000–9223372036854776000 | 2nd channel value |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| VEC2 | VEC2 | Vector2 with float values |
| VEC2INT | VEC2INT | Vector2 with integer values |