Street View Cubemap Loader
Real-World Environment Maps From Street View — Six Faces of a Place, Ready for 3D
- front
- back
- left
- right
- up
- down
- merged_cubemap
- metadata
This is the node in the pack that isn't really about AI at all. StreetViewCubemapLoader fetches six Street View images - front, back, left, right, up, and down - and assembles them into a complete environment map of a real location. If you're working in Blender, Unity, or Unreal and you want a scene's reflections and lighting to be grounded in an actual place rather than a synthetic skybox, this gives you the raw material.
Real captured light has a quality generated environment maps chase and rarely reach. Drop a real-world cubemap in as a reflection probe and suddenly your 3D scene is sitting in an actual street corner. That's the pitch, and for the 3D workflow it's genuinely good.
How it works
Six API calls, one per face, all at 90° field of view (the correct geometry for a cubemap). The front/back/left/right faces are fetched at horizontal pitch; up and down face the tricky part - the Street View API often returns nothing usable at exactly ±90° pitch, so the node tries the exact angle first and falls back to ±85°, which is close enough for environment lighting. Any face that still fails becomes a gray placeholder rather than crashing the run.
Two things to keep an eye on as a result:
- Check the
metadataoutput. It reports how many of the 6 faces actually fetched (successful_fetches/6). Gray faces in a 3D scene are easy to miss and hard to debug otherwise. - Six API calls per run. Every cubemap generation counts as 6 requests against your monthly Google credit. Not a dealbreaker, but it's six times the cost of a single
Street View Loadercall.
The inputs that matter
location-"lat,lon", same as every node in this pack.face_resolution- 256, 512, 640, or 1024 per face. The one caveat: the Street View API hard-caps any request at 640x640, so treat the 1024 option as "best effort" and don't be shocked if it doesn't come back at true 1024. For real resolution, upscale the faces after the fact.output_mode- how you want the faces delivered:individual_faces- six separate image tensors, one per face, ready to route anywhere.merged_cross- the classic cross-shaped texture (4×3 layout), the format most engines import directly.merged_hstrip/merged_vstrip- all six faces in a single row or column, some pipelines prefer these.
Outputs: six per-face IMAGEs (front, back, left, right, up, down), plus merged_cubemap (the assembled texture per your mode - it's a blank tensor if you chose individual_faces) and metadata (STRING). There's also an optional historical_date_id input if you want a historical capture as your environment map.
Notes before you run it
Merged modes build one big image - the cross layout is 4×3 faces, so at 640 that's a 2560×1920 texture. Fine on any modern machine, but worth knowing before you pick the largest resolution on a laptop. Save the merged_cubemap output, load it in your engine as an environment map, and you're done.
Install
Part of ru4ls/ComfyUI_StreetView-Loader, installed like the rest of the pack: clone into custom_nodes, pip install -r requirements.txt, restart ComfyUI, and drop your Street View Static API key into the pack's .env. Found under Ru4ls/StreetView in the node menu.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| location | STRING | 46.6237597,8.0305018 | — |
| face_resolution | COMBO | 512x512 | 4 options: 256x256, 512x512, 640x640, 1024x1024 |
| output_mode | COMBO | merged_cross | 4 options: individual_faces, merged_cross, merged_hstrip, merged_vstrip |
| historical_date_idopt | STRING | Enter a panorama ID to load a historical cubemap from a specific date |
Outputs (8)
| Name | Type | Description |
|---|---|---|
| front | IMAGE | — |
| back | IMAGE | — |
| left | IMAGE | — |
| right | IMAGE | — |
| up | IMAGE | — |
| down | IMAGE | — |
| merged_cubemap | IMAGE | — |
| metadata | STRING | — |