MapEquirectangular
Project any image onto a 360° equirectangular canvas
- image
- IMAGE
Most of the "panorama" work people do in ComfyUI starts from a model that already knows how to make a 2:1 image. But sometimes you want to build one yourself: paste a normal perspective render or photo into a 360° canvas, so a specific scene sits at a specific spot in the skybox. That's MapEquirectangular's entire job - it takes a flat perspective image plus camera parameters and projects it onto an equirectangular output.
How it works
Picture a pinhole camera sitting in the middle of a sphere. The node treats your input image as what that camera sees, and for every pixel of the output equirectangular canvas it figures out which direction that pixel points, rotates it by the yaw/pitch/roll you set, and samples the source image there. The vertical field of view is derived from hfov and the image's aspect ratio, so hfov behaves like a real lens focal length. Output width is what you specify and height is always exactly half - the 2:1 rule is enforced for you.
Unmapped areas stay black with zero alpha. That RGBA output is deliberate: the node hands you a texture plus a ready-made mask, so you can split the alpha out and use it to inpaint the empty regions of your skybox.
The inputs that matter
image- the perspective shot you're projecting.equirectangular_width- output width in pixels (2048 default → 1024 tall). Higher is sharper, but every output pixel gets sampled, so it slows down fast.hfov- horizontal field of view in degrees, 0–180, 60 default. The main creative dial.yaw,pitch,roll- orientation of the source camera inside the sphere.
The output is a single IMAGE (RGBA). One output, one image - you'll usually want to split the channels or feed the alpha to a mask.
The yaw-180 trick
Set yaw to 180 and the projection lands split across the horizontal edges of the output - the same content on both sides of the seam. The author notes this can help when you're assembling a seamless wrap-around panorama, since what appears at the join is duplicated for continuity. Slightly counterintuitive, and worth keeping in your back pocket.
Where this sits in the pack
It's the builder; EnvironmentVisualizer is the payoff. Project one or several perspective views onto an equirect canvas, use the alpha to inpaint the gaps (or let a panorama LoRA finish the scene - the 2:1 format is exactly what those models expect), then hand the finished texture and a depth map to the visualizer to walk around in.
The traps
- The output is 4-channel. Feeding an RGBA image into a node that assumes opaque RGB can surprise you - split it or mask it first.
- Big widths are genuinely slow; don't crank 8192 unless you enjoy waiting.
hfovis the knob that decides how much of the world the image covers. Crank it toward 180 and you get a wide, fisheye-ish spread covering huge swaths of the sphere; leave it at 60 and you get a tight window.
Install
Same pack as the other two nodes, one-time setup:
cd ComfyUI/custom_nodes
git clone https://github.com/willchil/ComfyUI-Environment-Visualizer
Restart ComfyUI, or find "ComfyUI-Environment-Visualizer" in the Manager's install search. No model downloads, no pip dependencies - pure PyTorch remapping of an image you already have.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| equirectangular_width | INT | 2048 | — |
| hfov | FLOAT | 600–180 | — |
| yaw | FLOAT | 0-180–180 | — |
| pitch | FLOAT | 0-90–90 | — |
| roll | FLOAT | 0-180–180 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |