DisCo-Diff: Enhancing Continuous Diffusion Models with Discrete Latents

Yilun Xu, Gabriele Corso, Tommi Jaakkola, Arash Vahdat, Karsten Kreis
7/3/2024
cs.LGcs.AIcs.CV

No official code found. Best implementation: gcorso/disco-diffdock (93 stars, MIT, last commit 2024-06-12).

Abstract

Diffusion models (DMs) have revolutionized generative learning. They utilize a diffusion process to encode data into a simple Gaussian distribution. However, encoding a complex, potentially multimodal data distribution into a single continuous Gaussian distribution arguably represents an unnecessarily challenging learning problem. We propose Discrete-Continuous Latent Variable Diffusion Models (DisCo-Diff) to simplify this task by introducing complementary discrete latent variables. We augment DMs with learnable discrete latents, inferred with an encoder, and train DM and encoder end-to-end. DisCo-Diff does not rely on pre-trained networks, making the framework universally applicable. The discrete latents significantly simplify learning the DM's complex noise-to-data mapping by reducing the curvature of the DM's generative ODE. An additional autoregressive transformer models the distribution of the discrete latents, a simple step because DisCo-Diff requires only few discrete variables with small codebooks. We validate DisCo-Diff on toy data, several image synthesis tasks as well as molecular docking, and find that introducing discrete latents consistently improves model performance. For example, DisCo-Diff achieves state-of-the-art FID scores on class-conditioned ImageNet-64/128 datasets with ODE sampler.

View on arXivView PDF

Code Implementations(1)

MIT

Code for the paper DisCo-Diff: Enhancing Continuous Diffusion Models with Discrete Latents, ICML 2024

934PythonJun 12, 20242 years agoMIT

Similar Papers

Cite this paper

@article{xu2024discodiff,
  title  = {DisCo-Diff: Enhancing Continuous Diffusion Models with Discrete Latents},
  author = {Yilun Xu and Gabriele Corso and Tommi Jaakkola and Arash Vahdat and Karsten Kreis},
  year   = {2024},
  eprint = {2407.03300},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2407.03300v1},
  journal = {ICML 2024 2024}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2407.03300.svg)](https://codeofpaper.com/paper/2407.03300)

Discussion