Nodes/ComfyUI-Sharp/Sample Panorama (Equirect -> Perspective)
ComfyUI Node

Sample Panorama (Equirect -> Perspective)

Cutting a 360 photo into cameras SHARP can actually see

By PozzettiAndrea·Created 8 months ago·Updated 2 months ago· 358
Sample Panorama (Equirect -> Perspective)
  • panorama
  • images
  • extrinsics
  • intrinsics
  • num_horizontal
  • num_vertical
fov_degrees65
overlap_percent10
output_size1536
skip_polestrue

SHARP expects an ordinary photo, not a 360° equirectangular panorama. If you want to reconstruct a full panoramic scene in 3D Gaussians rather than a single view, you first need to cut it into a set of normal perspective photos - and get real camera matrices for each one, so the individual predictions can later be aligned and stitched back together. That's this node's job: it samples an equirect panorama into a grid of perspective crops with proper extrinsics and intrinsics for each, which is exactly the "Panorama gaussians" workflow the README ships as its third example.

How it works

The node walks the sphere and takes perspective snapshots at a set field-of-view, spaced out with a configurable overlap so adjacent crops share enough content for depth alignment (AlignDepthMaps) to actually find correspondences between them later. It can skip the poles - straight up and straight down - since those directions tend to be low quality or outright degenerate in most captured panoramas (the camera rig itself, a tripod, sky with no texture).

The inputs and outputs that matter

  • panorama (required) - your equirectangular image.
  • fov_degrees (default 65, range 30–120) - field of view for each individual perspective cutout. Narrower gives you more, sharper crops with less distortion per crop; wider gives you fewer crops to process but each with more of a fisheye-like spread.
  • overlap_percent (default 10, range 0–50) - how much adjacent crops share, as a percentage of FOV. More overlap gives the alignment step more shared content to work with at the cost of extra redundant compute; less overlap is cheaper but risks gaps that alignment can't bridge.
  • output_size (default 1536) - resolution of each crop. Left at 1536 because that's SHARP's own native working resolution - there's little reason to change it unless you have a specific downstream need.
  • skip_poles (optional, default true) - skip the top/bottom directions.

Outputs: images (the perspective crops, as a batch), extrinsics / intrinsics (per crop - feed these straight into a Predict node alongside the matching image), and num_horizontal / num_vertical - the grid dimensions, useful if you need to reason about crop layout downstream.

Installing it

Manager: search "Sharp," install highest (nightly if it misbehaves). Or Manager → Git URL: https://github.com/PozzettiAndrea/ComfyUI-Sharp.git. Manual: clone into custom_nodes, pip install -r requirements.txt --upgrade, python install.py, restart.

Common issues

Nothing pack-specific is documented for this node beyond the pack's general growing pains - it's a young pack (first released December 2025), and the "Panorama gaussians" workflow it belongs to wasn't part of the original release; users were asking for panorama support before it existed. If your alignment or stitching results downstream look poor, the first thing to revisit is here, not further down the chain: too little overlap_percent starves AlignDepthMaps of shared content to reconcile scale against, and too wide an fov_degrees introduces more distortion per crop for SHARP to work with. If you're specifically trying to match a WorldStereo-style crop geometry rather than a generic even grid, SharpPanoramaCubeSplit is the sibling node built for that instead.

CategorySHARP

Inputs (5)

NameTypeDefaultDescription
panoramaIMAGE
fov_degreesFLOAT6530–120Field of view in degrees for each perspective cutout
overlap_percentFLOAT100–50Overlap between adjacent samples as percentage of FOV
output_sizeINT1536256–2048Output resolution for each perspective image (square). 1536 is SHARP's native resolution.
skip_polesoptBOOLEANtrueSkip samples pointing straight up/down (often low quality in panoramas)

Outputs (5)

NameTypeDescription
imagesIMAGE
extrinsicsEXTRINSICS
intrinsicsINTRINSICS
num_horizontalINT
num_verticalINT