EO-VAE
Earth Observation Variational Autoencoder. Self-contained, no external eo-vae package—uses only torch, safetensors, and huggingface_hub.
Usage
from huggingface_hub import snapshot_download
import sys
import torch
model_dir = snapshot_download("BiliSakura/EO-VAE")
sys.path.insert(0, model_dir)
from eo_vae import EOVAEModel, WAVELENGTHS
vae = EOVAEModel.from_pretrained(model_dir, torch_dtype=torch.float32, device="cpu")
x = torch.randn(1, 3, 256, 256)
wvs = torch.tensor(WAVELENGTHS["S2RGB"], dtype=torch.float32)
with torch.no_grad():
recon = vae.reconstruct(x, wvs)
z = vae.encode_spatial_normalized(x, wvs) # [1, 32, 32, 32]
Model
Wavelengths (µm)
Citation
@article{eo-vae,
title={EO-VAE: Towards A Multi-sensor Tokenizer for Earth Observation Data},
author={Lehmann, Nils and Wang, Yi and Xiong, Zhitong and Zhu, Xiaoxiang},
journal={arXiv preprint arXiv:2602.12177},
year={2026}
}