Pad 180 to 360 Equirectangular
Turn a half-sphere pano into a full 360 — the blank half is your canvas, not a bug
- image
- Padded 360 Image
A 180° equirectangular image is a half-sphere flattened out, and a lot of 360 workflows generate them that way on purpose - some models and LoRAs output 180s, and 180 is a friendlier canvas to fill. The problem comes when you need a full 360° panorama and all you have is half of one. Pad 180 to 360 Equirectangular turns that half into a full 2:1 image by doubling its width, so there's now a completely empty back half waiting to be filled.
Here's the part that trips people up: it does not mirror the content, and it does not invent anything. The padded region is just a flat constant color (default black). That's not a bug - it's the design, because the intended workflow is to pad, mask the blank half, and then inpaint or outpaint the rest of the sphere. The blank canvas is the point.
How it works
Under the hood it's torch.nn.functional.pad on the width axis - it appends roughly half the width on the right side (the exact split handles odd widths). Simple enough that it runs in a millisecond.
Inputs:
- image - your 180° equirectangular image.
- fill_value - the color of the padded region, 0.0 = black by default. If you're going to outpaint, black is usually fine; if you want a neutral gray or a specific sky color, set it here.
Output is Padded 360 Image - a 2:1 image where the left half is your original 180 and the right half is flat fill_value.
The workflow it's built for
The pack pairs this with Create 180 To 360 Mask, which generates a mask of exactly the region that has real content. The full recipe: pad your 180 to 360 → create the mask so the inpaint knows what's "real" → inpaint the blank side → done, you've got a full panorama. Because the mask from Create 180 To 360 Mask is produced for the same geometry, the two nodes fit together without you counting pixels.
One thing worth flagging: since the pad is a constant fill rather than a mirror, the seam between your real content and the flat color is sharp and obvious until you inpaint across it. Feather the mask (Create 180 To 360 Mask has a feather input) so the inpaint blends instead of producing a hard boundary.
Install
Standard for this pack: ComfyUI Manager → search "ComfyUI_pytorch360convert", or git clone https://github.com/ProGamerGov/ComfyUI_pytorch360convert into ComfyUI/custom_nodes and restart. The pack's requirements.txt is empty, so python -m pip install pytorch360convert is usually required by hand. No model downloads - this is pure tensor padding.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| fill_value | FLOAT | 0.00 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| Padded 360 Image | IMAGE | — |