ComfyUI Node

Equirectangular Edge Blender

The final polish every panorama needs

By cedarconnor·Created about a year ago·Updated 7 months ago· 2
Equirectangular Edge Blender
  • image
  • blended_image
blend_width10
blend_modecosine
check_continuitytrue

Every equirectangular image has a secret fault line: the left edge and the right edge are the same line of longitude, and when they don't match perfectly, you get a visible vertical seam running through the middle of the view when the panorama wraps around. Equirectangular Edge Blender is the node that makes that seam disappear.

It's the last step in almost every serious workflow with this pack - after rotation, after inpainting, after anything that resamples the image and introduces tiny differences at the wrap point. The README positions it as "essential for eliminating visible seams in 360° viewers," and honestly it is: you can do all the geometric work right and still ship a panorama with a hairline seam because the two edges just don't line up. This node closes the loop.

How it works

The blender takes the strip at the left edge and the strip at the right edge and crossfades them across a blend region. blend_width (default 10, recommended 10–20) sets how many pixels wide that region is; a wider blend hides bigger mismatches but smears more content. The crossfade curve is what blend_mode controls:

  • cosine (default) - the smoothest transition, no visible kink at either end of the blend.
  • linear - a straight ramp; fine, but slightly harder edges.
  • smooth - a quadratic ease.

Set blend_width to 0 and the node skips blending entirely (it warns you and returns the image untouched).

The extra feature is check_continuity (on by default): after blending, it validates that the two edges now actually match - comparing the wrapped edges against a threshold - and reports seamless or not to the console. It's a cheap confidence check that the blend did its job, and it's the kind of thing you wish every node had.

Inputs and outputs

  • image (required) - equirectangular tensor (B,H,W,C) in [0,1].
  • blend_width - default 10, range 0–200.
  • blend_mode - cosine / linear / smooth, default cosine.
  • check_continuity - on by default.

Output is a single blended_image.

Installing it

Standard LatLong pack install:

cd ComfyUI/custom_nodes
git clone https://github.com/cedarconnor/comfyui-LatLong
cd comfyui-LatLong
pip install -r requirements.txt

Or ComfyUI Manager → search "LatLong" → restart. Node under LatLong. Deps: numpy, opencv-python, scipy, torch, Pillow; no models.

Gotchas

Know the difference between blending and inpainting. This node blends - it averages the two edges, so it smooths away the seam but it can't invent content. If your panorama has a genuine mismatch (a person sliced in half at the seam, or a wall that doesn't line up), blending will just soften the ghost; the right fix is the seam-mask + inpaint workflow, and you use this node after that to finish the job. Also: a big blend_width on a low-res panorama eats real content - at 1024px wide, a 20px blend is 2% of the image; on a 4096px panorama it's nothing. Scale your blend width with resolution and you'll be fine.

CategoryLatLong

Inputs (4)

NameTypeDefaultDescription
imageIMAGEEquirectangular panoramic image to blend edges.
blend_widthoptINT100–200Width of blend region in pixels. 10-20 recommended for most cases. 0 disables blending.
blend_modeoptCOMBOcosineBlending curve type. Cosine provides smoothest transition.
check_continuityoptBOOLEANtrueValidate edge continuity after blending and report status.

Outputs (1)

NameTypeDescription
blended_imageIMAGE