VectorSynth-GiT10M is a ControlNet-based pipeline that generates satellite imagery from OpenStreetMap (OSM) vector data, fine-tuned on the GiT10M dataset of paired OSM + satellite tiles. Like
VectorSynth-COSA, it conditions
Stable Diffusion 2.1 Base on rendered OSM text using the COSA (Contrastive OSM-Satellite Alignment) embedding space.
1import sys
2import torch
3from diffusers import StableDiffusionControlNetPipeline, DDIMScheduler
4from huggingface_hub import snapshot_download
5
6device = "cuda"
7
8# Load pipeline (GiT10M-finetuned UNet + ControlNet, plus base SD 2.1 VAE/text encoder)
9local_dir = snapshot_download("MVRL/VectorSynth-GiT10M")
10pipe = StableDiffusionControlNetPipeline.from_pretrained(
11 local_dir,
12 torch_dtype=torch.float16
13)
14pipe.scheduler = DDIMScheduler.from_config(pipe.scheduler.config)
15pipe = pipe.to(device)
16
17# Load RenderEncoder
18sys.path.insert(0, local_dir)
19from render import RenderEncoder
20checkpoint = torch.load(
21 f"{local_dir}/render_encoder/cosa-render_encoder.pth",
22 map_location=device, weights_only=False,
23)
24render_encoder = RenderEncoder(**checkpoint['config']).to(device).eval()
25render_encoder.load_state_dict(checkpoint['state_dict'])
26
27# Your hint tensor should be (H, W, 768) - per-pixel COSA embeddings
28# hint = torch.load("your_hint.pt").to(device)
29# hint = hint.unsqueeze(0).permute(0, 3, 1, 2) # (1, 768, H, W)
30
31# with torch.no_grad():
32# control_image = render_encoder(hint)
33
34# Generate
35# output = pipe(
36# prompt="An aerial image of a residential neighborhood",
37# image=control_image,
38# num_inference_steps=40,
39# guidance_scale=7.5
40# ).images[0]
Fine-tuned on
GiT10M, a curated collection of paired OpenStreetMap vector data and Google satellite tiles (zoom 17, ~1m/pix). The dataset is split into a training set and two held-out test splits (random and spatial) for evaluation. See
GeoDiT: Point Conditioned Diffusion Transformer for Satellite Image Synthesis for more details on the data.
1@inproceedings{cher2025vectorsynth,
2 title={VectorSynth: Fine-Grained Satellite Image Synthesis with Structured Semantics},
3 author={Cher, Daniel and Wei, Brian and Sastry, Srikumar and Jacobs, Nathan},
4 year={2025},
5 eprint={arXiv:2511.07744},
6 note={arXiv preprint}
7}