Views
No views yet

[!NOTE] 2026-08-04 — corrected weights. The initial upload accidentally contained an EMA state that was never updated during training (pure initialization weights — see GitHub issue #2). The current files are the final 300K-step training weights, verified to load strictly and denoise correctly. If you downloaded the weights before this date, please re-download and check them againstSHA256SUMS.
| Parameters | 9.24 B |
| Weights | final training weights (non-EMA), bfloat16, sharded safetensors |
| Included | frozen Flux.2 VAE in vae/ (Apache-2.0, Black Forest Labs) |
| Architecture | Flow Matching DiT — 8 double-stream + 24 single-stream blocks, hidden 4096, 32 heads |
| Conditioning | CLIP + T5 text embeddings, GSD, latitude, longitude |
| Training data | Git-10M |
| Training | 300K steps, global batch 1024, AdamW lr 1e-4, bf16, DeepSpeed ZeRO-2, 8x B200 |
| Resolution | 256x256 |
mu = 0.5. GSA is training-only — the
teacher and projection head are not needed for inference, and the exported weights add no overhead.Flux2 architecture, so load them with the model definition from the
GitHub repository rather than a stock diffusers pipeline.1import torch
2from huggingface_hub import snapshot_download
3
4from models.flux2 import Flux2, GeoCore9BParams
5from inference import load_state_dict
6
7path = snapshot_download("JeonghyeokDo/GeoCore-9B")
8
9model = Flux2(GeoCore9BParams()).to("cuda", torch.bfloat16)
10model.load_state_dict(load_state_dict(path), strict=True)
11model.eval()inference.py:1python inference.py \
2 --ckpt /path/to/GeoCore-9B \
3 --vae /path/to/GeoCore-9B/vae \
4 --prompt "A satellite view of a highly dense urban city with towering skyscrapers" \
5 --lon 126.97 --lat 37.56 --res 0.0 \
6 --num-samples 4 --out samples/res — resolution index, defined as 17 - z for Google XYZ tile zoom z. res = 0 is roughly
1.2 m/px at the equator; each +1 doubles the GSD.lon, lat — degrees.-999.0 falls back to the model's learned null embedding for that field, so
metadata is fully optional.vae/ in this repository holds the frozen Flux.2 autoencoder that encodes and decodes the latents,
so snapshot_download gives you everything the model needs:python inference.py --ckpt /path/to/GeoCore-9B --vae /path/to/GeoCore-9B/vae ...models/vae_flux2.py reads it directly (load_autoencoder), and vae/config.json is included so
diffusers >= 0.37 can load it too:1from diffusers import AutoencoderKLFlux2
2vae = AutoencoderKLFlux2.from_pretrained("JeonghyeokDo/GeoCore-9B", subfolder="vae")[!IMPORTANT] Do not substituteae.safetensorsfromFLUX.2-dev. It holds the same autoencoder weights, but under the FLUX Non-Commercial License v2.1, whose §4(a)(iii) forbids "surveillance purposes, including all research and development related to surveillance" — a clause that Earth-observation work should not have to argue about. The copy shipped here is Apache-2.0, and the two were verified identical by pairing every tensor on value: 250 of 251 pair one-to-one with a worst deviation of 7.802e-03 (bf16 rounding); the odd one out is a BatchNorm step counter. In bf16, the precision this model runs in, latents and reconstructions are bit-identical.
model-*.safetensors (the 9.24B DiT) — Copyright 2026 Jeonghyeok Do and Munchurl Kim,
Apache-2.0. Trained from scratch on Git-10M; not derived from any FLUX checkpoint.vae/ (the frozen 84M autoencoder) — Copyright Black Forest Labs, Apache-2.0. This is an
unmodified, byte-identical redistribution of
black-forest-labs/FLUX.2-klein-base-4B
vae/diffusion_pytorch_model.safetensors and its vae/config.json, bundled here only so the model
is usable in one download. Verify it against upstream:sha256 ca70d2202afe6415bdbcb8793ba8cd99fd159cfe6192381504d6c4d3036e0f04 vae/diffusion_pytorch_model.safetensors
sha256 0d6dfb69ae95a5e2ac9836284bbb63d8b38ce67b25ba2dff380752b2a10ab948 vae/config.jsonLICENSE-FLUX2-VAE.md. Black Forest Labs neither
endorses nor is affiliated with GeoCore-9B; the attribution above is a statement of origin, not of
sponsorship.1@article{do2026geocore,
2 title = {GeoCore-9B: Towards Geo-Aware Generative Foundation Models in Earth Observation},
3 author = {Do, Jeonghyeok and Kim, Munchurl},
4 year = {2026}
5}