π° Mirror (jov)
Mirror with an adjustable pivot β now folded into TRANSFORM
- pixels
- image
- mask
Mirror (jov) π° flipped an image across the X axis, the Y axis, or both - and, unusually, let you pick where the mirror line sits. Instead of always reflecting around the image center, you could set the pivot to 25% or 75% and get an off-center reflection, which is the trick behind seamless mirrored textures and kaleidoscope-ish composition. It's a small node with one genuinely nice idea.
The lowercase "(jov)" tells you it's old, and yes - it's another pre-2.0 node that didn't keep its name. In current Jovimetrix, mirroring lives inside TRANSFORM (JOV) ποΈ, which is the pack's general geometric node: translate, rotate, scale, mirror, tile, and perspective, with a mirror mode selector and a pivot control for exactly this purpose. The README's 1.7.48 warning applies here like everywhere else - update past it and "Mirror (jov)" stops loading.
How it worked
The inputs were minimal and precise:
- pixels - the image to mirror (required).
- x / y - the mirror pivot as fractions, default 0.5/0.5 (the center). 0 = left/top edge, 1 = right/bottom edge.
- mode - which axis to reflect around (X, Y, or both).
- invert - a small extra that flipped the result's polarity.
Outputs: image and mask - the mirrored result and its alpha.
The mechanism is a simple geometric reflection, but the pivot is the whole game. Mirror around the vertical center and a left-facing subject turns right; mirror around an edge and you build a continuous, seamless reflection - set x to 1.0 and your image reflects as if there's a mirror at its right edge, which is exactly the primitive you need for tiling textures that fold back on themselves.
Installing it
It ships in Jovimetrix:
# ComfyUI Manager: search "Jovimetrix" and install
cd ComfyUI/custom_nodes
git clone https://github.com/Amorano/Jovimetrix.git
cd Jovimetrix
pip install -r requirements.txt
Restart ComfyUI. Updating past 1.7.48 removes the legacy name; staying on it keeps it.
Troubleshooting
- Node missing after an update - expected. Use TRANSFORM (JOV) ποΈ, set the MIRROR mode and PIVOT, done.
- The reflection isn't where you expect - recheck your pivot. x/y are fractions of the image, and 0.5/0.5 is center. Most "why is my mirror off-center" reports are just a pivot that got dragged off 0.5.
- Mirroring both axes just looks like a rotation - yes, reflect-X then reflect-Y around the same pivot equals a 180Β° turn. That's mathematically correct, just usually not what you wanted; pick one axis.
Mirror is a one-trick node, but the trick (pivotable reflection) is still alive and well inside TRANSFORM. If an old workflow references it, the port is a two-minute job: swap the node, set mirror mode + pivot.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| pixels | * | β | |
| x | FLOAT | 0.500β1 | β |
| y | FLOAT | 0.500β1 | β |
| mode | COMBO | X | 4 options: X, Y, XY, YX |
| invertopt | FLOAT | 0.000β1 | β |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | β |
| mask | MASK | β |