Catalyst Diffusion Transformer (CatDiT)

arXiv Code Weights Open in Colab

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.

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

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.

Training Data

CatDiT is trained on the OC20 and OC22 datasets.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Paper for doouv/catalyst-diffusion-transformer