Pano Roll Horizontal
Roll a pano left or right without re-entering pixel numbers
- image
- image
A panorama rolls. That's the whole job of this node: shift an equirectangular image horizontally so content wraps around, with the seam landing wherever you tell it. It sounds trivial, and it is - but it replaces a fiddly chain of two ImageCrop nodes plus an ImageStitch that every pano workflow used to build by hand.
Why it beats the crop chain
The old way required the shift amount as a literal pixel number sitting in the graph. Change the canvas from 1408 wide to 2048 and that number is now wrong, and nothing tells you - you just get a seam in the wrong place and wonder why. Pano Roll Horizontal takes the shift as a fraction of the image width and reads the width from the image itself, so there's nothing to keep in sync. That's the entire selling point, and for a workflow you'll tune repeatedly it's a real one.
How to use it
image- the pano.fraction- fraction of the image width to roll, from -1 to 1.0.5pushes the seam exactly to the center;-0.5goes the other way; a smaller value nudges the seam partway.
Output is a single image, rolled. Because canvas widths are multiples of 16 (hence even), applying it twice with the same settings returns the original - so this is also your cheap "undo" if you roll something and don't like it.
Where it fits
The classic use is seam work: roll the wrap seam to the center, mask and inpaint it, roll back. Pano Seam Roll bakes that whole prep/undo loop into one node if that's your goal. This one is the flexible version - use it when you want the seam at some position other than dead center, or when you just want to re-frame an existing pano for a video model that crops to a window.
Install
It's part of Mickmumpitz-Nodes (MIT, deps: numpy, Pillow, opencv-python - nothing else, no models). ComfyUI Manager, search "Mickmumpitz", or:
cd ComfyUI/custom_nodes && git clone https://github.com/mickmumpitz/ComfyUI-Mickmumpitz-Nodes.git
Restart, then look under Mickmumpitz/Panorama for "Pano Roll Horizontal". It's a utility, not a headline feature - but it's the kind of small, correct node that keeps a pano workflow from turning into a spreadsheet.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| fraction | FLOAT | 0.50-1–1 | Fraction of the image width. 0.5 pushes the seam exactly to the centre. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |