360 → 6×90° Strip
Flatten a 360° photo into 6 flat views so models can actually work on it
- image
- strip
- order
- flip_sides
If you've ever tried to inpaint, upscale, or run person detection on an equirectangular 360° image, you already know the problem: diffusion models and detectors are trained on upright perspective photos, and an equirect projection is nobody's idea of an upright photo. Straight lines bend, the poles get smeared into a mush, and the model happily "fixes" things that weren't broken. That's the problem EquirectToStrip90 solves. It cuts your 360° panorama into the six faces of a cube - each a normal-looking 90° perspective view - and lays them side by side in one horizontal strip. You do your actual work on that strip, then feed it to the pack's other node, Strip90ToEquirect, to get a seamless equirect back out.
This is the same trick behind the 360° ERP outpainting LoRAs floating around: process the world as flat cube faces, not as one warped ball. It's a small, dependency-free idea, and it's the right one.
How it works
Under the hood each face is a perspective projection. The node takes the equirectangular image, picks a yaw/pitch for each of the six views (front, left, back, right, top, bottom - all at 90° FOV), and uses cv2.remap to resample that view out of the source. The six results are concatenated horizontally, so the output strip is face_size × 6 wide and face_size tall. It's pure geometry - no models, no weights, no inference. It runs in a few hundred milliseconds and takes no VRAM beyond the image itself.
The inputs that matter
You'll touch two of the four inputs on a normal run:
face_size- the resolution of each face, 128 to 2048, default 512. 512 is the sweet spot for feeding faces to an inpaint pass. Going to 1024 or higher buys sharpness for straight lines at the seams but costs time and VRAM in whatever you run after.order- which face sits where in the strip, as comma-separated indices where0=front, 1=left, 2=back, 3=right, 4=top, 5=bottom. The node defaults to3,2,1,0,4,5, which places the four side faces in wrap-around order so the strip reads like an unfolded cube net. You'll rarely edit this yourself.flip_sides- defaults to on. It vertically flips the four horizontal faces so they read like ordinary upright camera photos in the strip, which is what makes them usable for face/person detection. The author says exactly that in the README, and it's accurate.
The important detail: the node echoes order and flip_sides back out as outputs. Wire those straight into Strip90ToEquirect's matching inputs. If you let the two nodes use their own defaults you'll quietly mismatch them (the encode node defaults to flip_sides=true, the decode node to false), and your round-trip comes back scrambled. The pass-throughs exist precisely so you never have to remember the setting.
Installing it
No model downloads, no extra pip packages - the code only needs cv2, numpy, and torch, which a stock ComfyUI install already has. The README literally says "copy this folder to custom_nodes." The easy way is ComfyUI Manager → Install Custom Nodes → search for Equirectangular. Or the manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/migero/ComfyUI-Equirectangular-Strip
Restart ComfyUI. It'll show up under the 360 category.
Gotchas
Two things will bite you. First, only the first image in a batch is processed - the node grabs image[0] and silently ignores the rest, so don't feed it batched outputs and expect six panoramas. Second, the seams: adjacent faces share an edge, and if you inpaint each face independently you'll get visible creases at the boundaries. Process the whole strip in one pass (or inpaint across face borders) and the reconstruction will thank you. Keep order/flip_sides wired through, and this is a genuinely painless part of a 360 pipeline.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| face_size | INT | 512128–2048 | — |
| order | STRING | 3,2,1,0,4,5 | — |
| flip_sides | BOOLEAN | true | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| strip | IMAGE | — |
| order | STRING | — |
| flip_sides | BOOLEAN | — |