Catalyst Diffusion Transformer: Generative Inverse Design of Heterogeneous Catalysts
Paper β’ 2607.24272 β’ Published
CatDiT is an SE(3)-equivariant latent diffusion transformer for heterogeneous catalyst inverse design, built upon ADiT. It jointly generates slab and adsorbate structures, and supports multi-conditional generation over adsorbate identity, adsorption energy, and catalyst class via classifier-free guidance.
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 | β | β | β |
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 for the full generation pipeline and evaluation scripts.