doouv's picture
Update README.md
98ed01b verified
|
Raw
History Blame Contribute Delete
2.66 kB
---
license: mit
tags:
- catalyst
- materials-science
- diffusion
- inverse-design
- heterogeneous-catalysts
language:
- en
---
# Catalyst Diffusion Transformer (CatDiT)
[![arXiv](https://img.shields.io/badge/PDF-arXiv-blue)](https://arxiv.org/abs/2607.24272)
[![Code](https://img.shields.io/badge/Code-GitHub-red)](https://github.com/doouv/CatDiT.git)
[![Weights](https://img.shields.io/badge/Weights-HuggingFace-yellow)](https://huggingface.co/doouv/catalyst-diffusion-transformer)
[![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](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.