Downloads · 30 days
8
10% of all-time downloads
OzLabs/siad-wm-medium
siad-wm-medium is a image-to-image model from OzLabs. Use it when you need one image transformed into another. It is set up for transformers. The card lists the license as apache-2.0.
Satellite Imagery Anticipatory Dynamics - A transformer-based world model for predicting future satellite observations.
Downloads · 30 days
8
10% of all-time downloads
All-time downloads
77
Public
Parameters
379M
3 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors1.5 GB · 100%
From the Hugging Face model README
Satellite Imagery Anticipatory Dynamics - A transformer-based world model for predicting future satellite observations.
This model predicts future satellite imagery based on:
Uses JEPA (Joint Embedding Predictive Architecture) with token-based spatial representations.
from transformers import AutoModel
import torch
# Load model from HuggingFace Hub
model = AutoModel.from_pretrained("ozlabs/siad-wm-medium", trust_remote_code=True)
model.inference_mode()
# Prepare inputs
obs_context = torch.randn(1, 8, 256, 256) # Current observation
actions = torch.randn(1, 6, 2) # 6-month climate actions
# Run prediction (with decoder for pixel-space output)
with torch.no_grad():
z0 = model.encode(obs_context)
z_pred = model.rollout(z0, actions, H=6)
x_pred = model.decode(z_pred) # [1, 6, 8, 256, 256] - Decode to pixels
print(f"Predicted 6 months (pixels): {{x_pred.shape}}")
import numpy as np
import matplotlib.pyplot as plt
def create_rgb(bands: np.ndarray) -> np.ndarray:
"""Create RGB composite from 8-band satellite image"""
rgb = bands[[2, 1, 0]].transpose(1, 2, 0) # [H, W, 3]
for i in range(3):
channel = rgb[:, :, i]
vmin, vmax = np.percentile(channel, [2, 98])
rgb[:, :, i] = np.clip((channel - vmin) / (vmax - vmin + 1e-8), 0, 1)
return rgb
# Visualize first prediction
x_first = x_pred[0, 0].cpu().numpy() # [8, 256, 256]
rgb = create_rgb(x_first)
plt.imshow(rgb)
plt.axis("off")
plt.show()
# Full forward pass with loss computation
outputs = model(
obs_context=obs_context,
actions_rollout=actions,
obs_targets=targets, # Ground truth for loss
return_dict=True
)
print(f"Loss: {outputs.loss}")
print(f"Predictions: {outputs.predictions.shape}")
print(f"Metrics: {outputs.metrics}")
This is the medium configuration:
latent_dim: 1024
encoder_blocks: 8
encoder_heads: 16
encoder_mlp_dim: 4096
transition_blocks: 12
transition_heads: 16
transition_mlp_dim: 4096
dropout: 0.1
@misc{siad_world_model,
title={SIAD: Satellite Imagery Anticipatory Dynamics},
author={OzLabs.ai},
year={2025},
howpublished={\url{https://huggingface.co/ozlabs/siad-wm-medium}},
}