Nodes/Jovimetrix/πŸŽ‡ Extend (jov)
ComfyUI Node

πŸŽ‡ Extend (jov)

The old 'put two images side by side' node β€” and what replaced it

By AmoranoΒ·Created 3 years agoΒ·Updated 12 months agoΒ· 397
πŸŽ‡ Extend (jov)
  • pixelA
  • pixelB
  • image
  • mask
β—„axisHORIZONTALβ–Ί
β—„flipfalseβ–Ί
β—„width256β–Ί
β—„height256β–Ί
β—„modeNONEβ–Ί

Extend (jov) πŸŽ‡ was Jovimetrix's "staple two images together" node: take one image, take another, and place them adjacent on a shared canvas - side by side or stacked - with a flip and a sizing mode thrown in. It's the pre-2.0 ancestor of the compositing tools that followed, and the lower-case "(jov)" in the name is your first clue it's old: modern Jovimetrix names read "ADJUST: EDGE (JOV)" and "STACK (JOV) βž•," all caps.

If that's confusing, blame the 2.0 rework - that's exactly what the README's "don't update past 1.7.48" warning is about. Extend was one of the many legacy names that got folded into the current pack's cleaner set. The job it did - arrange two images next to each other - is handled today by STACK (JOV) βž•, which takes any number of images and lays them out horizontally, vertically, or in a grid, with stride, scaling modes, width/height, and interpolation. For the two-image side-by-side case, STACK with axis set to HORIZONTAL is a drop-in.

How it worked

The inputs were all about canvas math:

  • pixelA / pixelB - the two images (or masks; anything image-like). Both were required.
  • axis - HORIZONTAL (left-to-right) or VERTICAL (top-to-bottom).
  • flip - mirror one side so the two images face each other correctly (the classic trick for making a seamless mirrored texture).
  • width / height - the shared canvas size.
  • mode - how each input is fit to the canvas: NONE, FIT, CROP, or ASPECT.

Outputs were image and mask - the composite and its alpha/matte, ready to feed onward.

That "flip + axis" combo was the genuinely useful bit: it was the standard way to build a mirrored, seamless tile out of two images before transform nodes got good. If that's the workflow you're rebuilding, TRANSFORM (JOV) 🏝️ is also worth knowing - it handles the mirroring half with proper pivot control, and STACK handles the arrangement half.

Installing it

It ships in Jovimetrix (in the versions that still carry it):

# 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 to 2.x removes the legacy name; pinning at/below 1.7.48 keeps it.

Troubleshooting

  • Node missing after a pack update - expected. Use STACK (JOV) βž• (arrangement) and TRANSFORM (JOV) 🏝️ (flip/mirror) to rebuild the effect.
  • Images overlap or get cropped weirdly - that's the sizing mode fighting you. FIT letterboxes, CROP fills, ASPECT keeps proportions; pick the one that matches the look you want.
  • The seam is obvious when mirroring - the pivot wasn't at the canvas edge. TRANSFORM's pivot control handles this more precisely than the old Extend did.

Extend was a small, focused tool, and its two real ideas - adjacency and mirrored seams - are both covered, better, by current nodes. If a saved workflow still loads it, enjoy it; if not, the port is quick.

CategoryJOVIMETRIX πŸ”ΊπŸŸ©πŸ”΅

Inputs (7)

NameTypeDefaultDescription
pixelA*β€”
pixelB*β€”
axisCOMBOHORIZONTAL2 options: HORIZONTAL, VERTICAL
flipoptBOOLEANfalseβ€”
widthoptINT25632–8192β€”
heightoptINT25632–8192β€”
modeoptCOMBONONE4 options: NONE, FIT, CROP, ASPECT

Outputs (2)

NameTypeDescription
imageIMAGEβ€”
maskMASKβ€”