Nodes/ComfyUI Sokes Nodes 🦬/Street View Loader 🦬
ComfyUI Node

Street View Loader 🦬

Pull real street-level photos into ComfyUI — geocoding included

By m-sokes·Created 3 years ago·Updated 16 days ago· 4
Street View Loader 🦬
    • IMAGE
    ◄resolution▾►
    ◄location_mode▾►
    â—„addressEiffel Tower, Paris, Franceâ–º
    â—„latitude48.8583â–º
    â—„longitude2.2945â–º
    â—„fov90â–º
    â—„heading235.000â–º
    â—„pitch10.000â–º
    ◄google_source▾►
    â—„point_at_addressfalseâ–º

    Want actual street-level reference photos in your graph? Street View Loader hits the Google Street View Image API and pulls a real photo of a real place into ComfyUI. Type "Eiffel Tower, Paris" or drop in coordinates, and out comes an IMAGE tensor you can feed to img2img, ControlNet, IP-Adapter, or a reference pipeline. For cityscapes, storefronts, and "what does this neighborhood actually look like" reference work, it's a shortcut that beats scraping images by hand.

    It comes from Sokes Nodes 🦬, and it's the one node in the pack that needs real-world setup - a Google API key.

    How it works

    Two modes, switched by location_mode:

    • Address - it geocodes your text through Nominatim (the free OpenStreetMap geocoder, no key needed) to get coordinates, then calls the Street View API.
    • Latitude/Longitude - straight to the API with your numbers.

    The Street View call passes your resolution (640×640, 640×480, or 512×512), fov (field of view, 10–120), heading (which direction the camera faces, 0–360), and pitch (tilt). The optional point_at_address toggle is the clever bit: it asks Google for the nearest panorama, then computes the heading toward your target so the camera automatically points at the place you asked about, and resets pitch to 0. Perfect when you don't want to guess a bearing.

    Inputs & outputs

    • address - default "Eiffel Tower, Paris, France". Used when location_mode is Address.
    • latitude / longitude - defaults already point at the Eiffel Tower; handy defaults if you just want to test.
    • google_source - "default" or "outdoor" (outdoor imagery).
    • heading / pitch / fov - camera controls.

    Single output: IMAGE.

    Install & setup

    Sokes Nodes 🦬 installs like any pack - ComfyUI Manager, search "ComfyUI Sokes Nodes", Install, restart:

    cd ComfyUI/custom_nodes
    git clone https://github.com/m-sokes/ComfyUI-Sokes-Nodes.git
    pip install -r requirements.txt
    

    Then the key. You need a Google API key with the Street View Static API enabled (from Google Cloud Console), and the environment variable set before ComfyUI starts:

    export GOOGLE_STREET_VIEW_API_KEY="your_key_here"
    

    Common issues

    • Missing key - you don't get an exception, you get a red error image with instructions baked into it. Obvious and honestly a good design.
    • No imagery at a location - rural spots and some countries simply have no Street View coverage. You get a black image and a console warning.
    • Cost - the Street View Static API isn't free forever. It has a monthly free tier, then it's per-request. For a hobbyist pulling a handful of reference shots a day it's fine; for automation runs it adds up. Keep an eye on the billing page.
    • Address geocoding is best-effort - Nominatim is free and rate-limited, so a typo or an obscure address can fail. When it does, the node returns a black image rather than crashing.

    The one you'll reach for: set location_mode to Address, type a famous spot, flip point_at_address on, and you get a properly oriented shot of the place - which is 90% of what anyone actually wants from a street view node.

    CategorySokes 🦬/Loaders

    Inputs (10)

    NameTypeDefaultDescription
    resolutionCOMBO3 options: 640x640 (1:1), 640x480 (4:3), 512x512 (1:1)
    location_modeCOMBO2 options: Address, Latitude/Longitude
    addressSTRINGEiffel Tower, Paris, France—
    latitudeFLOAT48.8583-90–90—
    longitudeFLOAT2.2945-180–180—
    fovINT9010–120—
    headingFLOAT235.0000–360—
    pitchFLOAT10.000-90–90—
    google_sourceCOMBO2 options: default, outdoor
    point_at_addressoptBOOLEANfalse—

    Outputs (1)

    NameTypeDescription
    IMAGEIMAGE—