File size: 2,658 Bytes
25f6570 721909b 25f6570 721909b 98ed01b 721909b 2ac3182 721909b bc2033a 721909b e7e0d5e 721909b e7e0d5e 721909b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | ---
license: mit
tags:
- catalyst
- materials-science
- diffusion
- inverse-design
- heterogeneous-catalysts
language:
- en
---
# Catalyst Diffusion Transformer (CatDiT)
[](https://arxiv.org/abs/2607.24272)
[](https://github.com/doouv/CatDiT.git)
[](https://huggingface.co/doouv/catalyst-diffusion-transformer)
[](https://colab.research.google.com/github/doouv/CatDiT/blob/main/notebooks/catdit_demo.ipynb)
**CatDiT** is an SE(3)-equivariant latent diffusion transformer for heterogeneous catalyst inverse design, built upon [ADiT](https://github.com/facebookresearch/all-atom-diffusion-transformer). It jointly generates slab and adsorbate structures, and supports multi-conditional generation over adsorbate identity, adsorption energy, and catalyst class via classifier-free guidance.
## Model Variants
CatDiT comes in several variants depending on the supported material scope and conditioning:
| Model | Metal alloy | Oxides | Adsorbate type | Binding energy | Catalyst class |
|-------|:-----------:|:------:|:--------------:|:--------------:|:--------------:|
| **CatDiT** | β | | | | β |
| **CatDiT-plus** (base) | β | β | | β | |
| **CatDiT-A** | β | | β | β | |
| **CatDiT-B** | β | | | β | |
| **CatDiT-C** | β | β | | β | β |
| **CatDiT-AB** | β | | β | β | |
## Usage
```python
from huggingface_hub import hf_hub_download
from omegaconf import OmegaConf
from src.models.ldm_module import LatentDiffusionLitModule
REPO = "doouv/catalyst-diffusion-transformer"
ckpt = hf_hub_download(REPO, "ldm/CatDiT.ckpt") # CatDiT-A, CatDiT-B, CatDiT-C, CatDiT-AB
vae = hf_hub_download(REPO, "vae/VAE-S.ckpt") # VAE-L for other pretrained models
cg = OmegaConf.create({
"ads_id": {"use": True, "value": 77}, # see ads_id mappings
"binding_energy": {"use": True, "value": -1.24}, # eV
"cat_class": {"use": False, "value": None},
})
model = LatentDiffusionLitModule.load_from_checkpoint(
ckpt, autoencoder_ckpt=vae, conditional_generation=cg,
map_location="cuda", strict=False)
model.eval()
```
See the [GitHub repository](https://github.com/doouv/CatDiT) for the full generation pipeline and evaluation scripts.
## Training Data
CatDiT is trained on the [OC20](https://github.com/Open-Catalyst-Project/ocp) and [OC22](https://github.com/Open-Catalyst-Project/ocp/blob/main/DATASET.md) datasets.
|