4.32 TB
161 files
Updated about 1 month ago
Name
Size
UD-IQ1_M
UD-IQ2_M
UD-IQ2_XXS
UD-IQ3_S
UD-IQ4_XS
UD-Q2_K_XL
UD-Q3_K_M
UD-Q3_K_XL
UD-Q4_K_XL
UD-Q8_K_XL
assets
coreml
.gitattributes1.56 kB
xet
LICENSE11.5 kB
xet
Qwen3.5-0.8B-BF16.gguf1.52 GB
xet
Qwen3.5-0.8B-IQ4_NL.gguf507 MB
xet
Qwen3.5-0.8B-IQ4_XS.gguf493 MB
xet
Qwen3.5-0.8B-Q3_K_M.gguf470 MB
xet
Qwen3.5-0.8B-Q3_K_S.gguf441 MB
xet
Qwen3.5-0.8B-Q4_0.gguf507 MB
xet
Qwen3.5-0.8B-Q4_1.gguf535 MB
xet
Qwen3.5-0.8B-Q4_K_M.gguf533 MB
xet
Qwen3.5-0.8B-Q4_K_S.gguf508 MB
xet
Qwen3.5-0.8B-Q5_K_M.gguf590 MB
xet
Qwen3.5-0.8B-Q5_K_S.gguf569 MB
xet
Qwen3.5-0.8B-Q6_K.gguf639 MB
xet
Qwen3.5-0.8B-Q8_0.gguf812 MB
xet
Qwen3.5-0.8B-UD-IQ2_M.gguf372 MB
xet
Qwen3.5-0.8B-UD-IQ2_XXS.gguf338 MB
xet
Qwen3.5-0.8B-UD-IQ3_XXS.gguf398 MB
xet
Qwen3.5-0.8B-UD-Q2_K_XL.gguf418 MB
xet
Qwen3.5-0.8B-UD-Q3_K_XL.gguf492 MB
xet
Qwen3.5-0.8B-UD-Q4_K_XL.gguf559 MB
xet
Qwen3.5-0.8B-UD-Q5_K_XL.gguf607 MB
xet
Qwen3.5-0.8B-UD-Q6_K_XL.gguf771 MB
xet
Qwen3.5-0.8B-UD-Q8_K_XL.gguf1.19 GB
xet
README.md8.14 kB
xet
TerraMind_v1_tiny.pt212 MB
xet
added_tokens.json904 Bytes
xet
chat_template.jinja7.99 kB
xet
config.json2.55 kB
xet
flax_model.msgpack438 MB
xet
imatrix_unsloth.gguf_file1.13 MB
xet
merges.txt3.35 MB
xet
mmproj-BF16.gguf207 MB
xet
mmproj-F16.gguf205 MB
xet
mmproj-F32.gguf402 MB
xet
model.onnx532 MB
xet
model.safetensors440 MB
xet
model.safetensors-00001-of-00001.safetensors4.55 GB
xet
model.safetensors.index.json64.5 kB
xet
preprocessor_config.json781 Bytes
xet
processor_config.json1.3 kB
xet
pytorch_model.bin440 MB
xet
rust_model.ot534 MB
xet
special_tokens_map.json876 Bytes
xet
tf_model.h5536 MB
xet
tokenizer.json20 MB
xet
tokenizer_config.json15.7 kB
xet
video_preprocessor_config.json817 Bytes
xet
vocab.json5.23 MB
xet
vocab.txt232 kB
xet
README.md

Website arXiv Docs Examples Code ESAblog IBMblog

TerraMind 1.0 tiny

TerraMind is the first multimodal any-to-any generative foundation model for Earth Observation jointly developed by IBM, ESA, and Forschungszentrum Jülich.

terramind_architecture.png

Architecture

TerraMind uses a dual-scale transformer-based encoder-decoder architecture, simultaneously processing pixel-level and token-level data. The model was pre-trained on 500B tokens from 9M spatiotemporally aligned multimodal samples from the TerraMesh dataset.

Modality-specific patch embeddings allow direct processing of raw inputs, while modality-specific FSQ-VAEs are used for image tokenization. For sequence-like modalities such as coordinates, an adapted WordPiece tokenizer is employed. During pre-training, TerraMind leverages masked token reconstruction, learning complex cross-modal correlations to generate high-quality latent representations.

Evaluation

terramind_tiny_radar.png

We benchmarked TerraMind against other geospatial foundation models using the PANGAEA benchmark. TerraMind base and large consistently achieved state-of-the-art performance, surpassing existing models in various downstream tasks such as land use segmentation, water body mapping, and vegetation assessments. The evaluation highlights its effectiveness in handling diverse Earth Observation scenarios. We present additional experiments in our paper.

GFLOPs.png

While TerraMind (TM) base and large versions provide SOTA performance, our tiny and small version perform competitive with much smaller and faster backbones. The diagram above compares the computational requirements (GFLOPs), model parameters (marker size), and downstream task performance. Tiny can run easily on edge devices such as satellites or smartphones.

Usage

TerraMind is fully integrated into the fine-tuning package TerraTorch. This makes it easy to initialize the pre-trained model or fine-tune it via PyTorch Lightning. The weights are automatically downloaded from Hugging Face.

Fine-tuning

You can fine-tune TerraMind with a config using TerraTorch:

terratorch fit -c terramind_config.yaml

For testing the fine-tuned TerraMind model, run:

terratorch test -c terramind_config.yaml --ckpt_path path/to/your/checkpoint.ckpt

We provide config examples and notebooks with step-by-step explanations at https://github.com/IBM/terramind.

Backbone

Alternatively, you can build the backbone with the following code and use it in your custom pipeline.

from terratorch import BACKBONE_REGISTRY
model = BACKBONE_REGISTRY.build(
    'terramind_v1_tiny', 
    pretrained=True, 
    modalities=['S2L2A', 'S1GRD']    
)

The model supports the following raw inputs which you can specify in modalities: S2L2A, S2L1C, S1GRD, S1RTC, DEM, RGB. If your data does not use all bands of a modality, you can specify a subset with bands={'S2L2A': ['BLUE', 'GREEN', 'RED', 'NIR_NARROW', 'SWIR_1', 'SWIR_2']}. You can pass the inputs as in a dict to the model. If a tensor is directly passed, the model assumes it is the first defined modality. TerraMind can also handle missing input modalities.

output = model(
  {
    'S2L2A': s2l2a_tensor,  # B, 12, 224, 224
    'S1GRD': s1grd_tensor,  # B, 2, 224, 224
  }
)

output.shape  # B, 196, 768

The model outputs patch embeddings for each input modality. By default, the patch embeddings are averaged over all modalities to reduce the output size. You can specify another merge_method from 'mean', 'max', 'concat', 'dict', and None.

  • mean and max are applied per patch over all image modality embeddings.
  • concat stacks all image modalities along the embedding dimension and returns one embedding per patch.
  • dict returns all tokens split by modality in a dictionary.
  • None returns the tokens without further processing.

Thinking in Modalities

TerraMind introduces a new Thinking-in-Modalities (TiM) approach, where other modalities are predicted as an intermediate steps. Then, the fine-tuned encoder uses both raw inputs and the generated modalities.

Use TiM models in TerraTorch by adding _tim to the model name:

from terratorch import BACKBONE_REGISTRY
model = BACKBONE_REGISTRY.build(
    'terramind_v1_tiny_tim', 
    pretrained=True, 
    modalities=['S2L2A', 'S1GRD'],
    tim_modalities=['LULC']  # optional, defaults to LULC (land-use land-cover)
)

If you use TiM models, we recommend using the pre-training statistics for standardization.

Generations

TerraMind can perform any-to-any generation based on varying combinations of inputs.

terramind_generations.png

Build the full TerraMind model (including de-tokenizer steps) from the FULL_MODEL_REGISTRY:

from terratorch import FULL_MODEL_REGISTRY 

model = FULL_MODEL_REGISTRY.build(
    'terramind_v1_tiny_generate',
    pretrained=False,
    modalities=['S2L2A'],
    output_modalities=['S1GRD', 'LULC'],
    timesteps=10,  # Define diffusion steps
    standardize=True,  # Apply standardization
)

Like the backbone, pass multiple modalities as a dict or a single modality as a tensor to the model which returns the generated output_modalities as a dict of tensors. Note: These generations are not reconstructions but "mental images" representing how the model imagines the modality. You can control generation details via the number of diffusion steps (timesteps) that you can pass to the constructor or the forward function. By passing standardize=True, the pre-training standardization values are automatically applied to the input and output.

We provide an example notebook for generations at https://github.com/IBM/terramind.

Feedback

Your feedback is invaluable to us. Please share it with us by starting a discussion in this HF repository or submitting an issue to TerraMind on GitHub.

Challenge

Already working with TerraMind? Submit your use case to the TerraMind Blue-Sky Challenge, a bi-monthly award spotlighting the boldest, most imaginative ways using TerraMind.

Citation

If you use TerraMind in your research, please cite the TerraMind paper.

@article{jakubik2025terramind,
  title={TerraMind: Large-Scale Generative Multimodality for Earth Observation},
  author={Jakubik, Johannes and Yang, Felix and Blumenstiel, Benedikt and Scheurer, Erik and Sedona, Rocco and Maurogiovanni, Stefano and Bosmans, Jente and Dionelis, Nikolaos and Marsocci, Valerio and Kopp, Niklas and others},
  journal={IEEE/CVF International Conference on Computer Vision (ICCV)},
  year={2025}
}
Total size
4.32 TB
Files
161
Last updated
Jul 28
Pre-warmed CDN
US EU US EU

Contributors