Instructions to use BiliSakura/MAESTRO-transformers with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use BiliSakura/MAESTRO-transformers with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("feature-extraction", model="BiliSakura/MAESTRO-transformers")# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("BiliSakura/MAESTRO-transformers", dtype="auto") - Notebooks
- Google Colab
- Kaggle
MAESTRO Transformers Models
Hugging Face–compatible checkpoints converted from the official MAESTRO Lightning pretraining weights. Each subfolder is a standalone model repo (config.json, model.safetensors, processor, pipeline, and remote code) for multimodal Earth observation feature extraction.
Model Description
MAESTRO is a masked autoencoder for multimodal, multitemporal, and multispectral Earth Observation data. These checkpoints are the published base (medium) encoders pretrained on FLAIR-HUB and S2-NAIP-urban.
Developed by: IGNF / MAESTRO Authors
Converted for Hugging Face by: BiliSakura
License (weights): Apache 2.0
Original paper: Masked Autoencoders for Multimodal, Multitemporal, and Multispectral Earth Observation Data (WACV 2026)
Available checkpoints
| Folder | Pretraining dataset | Embed dim | Depth | Heads | Modalities |
|---|---|---|---|---|---|
maestro-flair-hub-base |
FLAIR-HUB | 768 | 12 | 12 | aerial, spot, dem, s2, s1_asc, s1_des |
maestro-s2-naip-urban-base |
S2-NAIP-urban | 768 | 12 | 12 | aerial, spot, s2, s1 |
Legacy source: models/raw/MAESTRO_*_base/pretrain-epoch=*.ckpt (see each folder's conversion_manifest.json).
Usage
Inputs are normalized by the processor using each modality's norm_fac from preprocessor_config.json. Time-series modalities require {modality}_dates with shape (batch, dates, 3) as [year, day_of_year, hour].
Image feature extraction pipeline
from transformers import pipeline
import numpy as np
MODEL = "/path/to/MAESTRO-transformers/maestro-flair-hub-base"
pipe = pipeline(
task="image-feature-extraction",
model=MODEL,
trust_remote_code=True,
)
# Aerial image: (B, T, C, H, W)
aerial = np.random.rand(1, 1, 4, 512, 512).astype(np.float32)
features = pipe(
aerial=aerial,
ref_date=[2020.0, 180.0, 12.0],
pool=True,
return_tensors=True,
)
print(features.shape) # torch.Size([1, 768])
Multimodal example (FLAIR-HUB)
pipe = pipeline(
task="image-feature-extraction",
model="/path/to/maestro-flair-hub-base",
trust_remote_code=True,
)
aerial = np.random.rand(1, 1, 4, 512, 512).astype(np.float32)
s2 = np.random.rand(1, 16, 10, 10, 10).astype(np.float32)
s2_dates = np.tile(np.array([[2020, 120, 10]], dtype=np.float32), (1, 16, 1))
features = pipe(
aerial=aerial,
s2=s2,
s2_dates=s2_dates,
ref_date=[2020.0, 180.0, 12.0],
pool=True,
return_tensors=True,
)