DiffusionBench: Towards Holistic Evaluation of Generative Diffusion Transformers
Summary
Introduces DiffusionBench, a unified benchmark for holistic evaluation of generative diffusion transformers, supporting multiple generation tasks and providing standardized training and evaluation.
View Cached Full Text
Cached at: 06/24/26, 04:48 AM
End2End-Diffusion/diffusion-bench
Source: https://github.com/End2End-Diffusion/diffusion-bench
diffusion-bench
##############################################################################
# #
# ____ _ __ __ _ .-----------. #
# | _ \(_)/ _|/ _|_ _ ___(_) ___ _ __ | | #
# | | | | | |_| |_| | | / __| |/ _ \| '_ \ | ░▒▓█▓▒░▒▓ | #
# | |_| | | _| _| |_| \__ \ | (_) | | | | | ▒▓█████▓▒ | #
# |____/|_|_| |_| \__,_|___/_|\___/|_| |_| | ▓███████▓ | #
# | ↓ | #
# ____ _ | █████████ | #
# | __ ) ___ _ __ ___| |__ | ▓███████▓ | #
# | _ \ / _ \ '_ \ / __| '_ \ | ▒▓█████▓▒ | #
# | |_) | __/ | | | (__| | | | | | #
# |____/ \___|_| |_|\___|_| |_| '-----------' #
# #
# Because ImageNet evaluation alone is no longer enough! #
# #
##############################################################################
📣 Announcement post: Call for DiffusionBench: A Holistic Benchmark for Diffusion Transformers. Help us grow the benchmark with new evaluation axes, new metrics, and faithful reproductions of published methods.
This repo contains the unified codebase for DiffusionBench. It supports training and evaluation across different generation tasks (ImageNet, T2I, …) through a single interface. Please see the sections below for the detailed structure. Come join us!
Text-to-image samples at 256×256 from models trained for 200K iterations using DiffusionBench.
Quickstart
Setup
# install uv project manager (if you don't already have it)
curl -LsSf https://astral.sh/uv/install.sh | sh
# install dependencies
uv sync
# prepare data
uv run python scripts/prepare.py --data {all,imagenet,t2i,eval}
# download pretrained models
uv run hf download diffusion-bench/diffusion-bench --local-dir pretrained_models --exclude .gitattributes
Training
Reproduction flow: Stage 1 → Stage 2. Set these environment variables first (used for the output directory and W&B logging):
export EXPERIMENT_NAME=<run-name>
export ENTITY=<wandb-entity>
export PROJECT=<wandb-project>
export WANDB_KEY=<key>
Stage 1. Train the RAE tokenizer:
uv run torchrun --standalone --nproc_per_node=8 \
src/train_stage1.py \
--config [STAGE1_CONFIG_PATH] \
--results-dir results/stage1 --precision bf16 --compile --wandb
Stage 2. Train the diffusion model on VAE/RAE/Pixel space:
uv run torchrun --standalone --nproc_per_node=8 \
src/train.py \
--config [STAGE2_CONFIG_PATH] \
--results-dir results/stage2 --precision bf16 --compile --wandb
Evaluation
Stage 2 training configs run online evaluation during training (the eval: block). For standalone evaluation of a released checkpoint, use the sampling/ configs — each embeds stage_2.ckpt (pointing into pretrained_models/) and the eval-time guidance, so the weights load automatically:
export EXPERIMENT_NAME=<run-name>
# stage 1 reconstruction (rFID/PSNR/SSIM/LPIPS)
uv run torchrun --nproc_per_node=8 src/offline_eval_stage1.py --config [STAGE1_CONFIG_PATH]
# stage 2 generation (FID/IS, GenEval/DPGBench/...)
uv run torchrun --nproc_per_node=8 src/offline_eval.py --config [STAGE2_CONFIG_PATH]
Available Configs
configs/
├── stage1/
└── stage2/
├── training/
│ ├── imagenet/
│ └── t2i/
└── sampling/
├── imagenet/
└── t2i/
Stage 2 spans VAE (11), RAE (6), REG (4), and Pixel (3) families, identical across ImageNet and T2I. Swap any config between tasks with a single path change. The sampling/ set mirrors training/ but adds the trained checkpoint and eval-time guidance, so it runs offline eval directly.
For ImageNet, pick the CFG-off baseline ([STAGE2_CONFIG_PATH].yaml) or the per-model best-CFG variant ([STAGE2_CONFIG_PATH]-cfg<scale>-t0.0-0.9.yaml).
Supported Methods
| Category | Methods |
|---|---|
| Latent Space | Pixel Space RAE (30+ representation encoders): DINOv2 SigLIP2 WebSSL PE LangPE and more RAEv2 (30+ representation encoders): DINOv2 SigLIP2 WebSSL PE LangPE etc VAE (10+ VAEs): FLUX.2 FLUX.1 SD3.5 VA-VAE E2E-VAE and more |
| Output Prediction | x-prediction v-prediction |
| Transport | Rectified-Flow MeanFlow Improved-MeanFlow Pixel-MeanFlow Drifting |
| Loss | Flow Matching REPA iREPA |
| Architecture | LightningDiT JiT DDT |
| Tasks | ImageNet: class-conditional generation T2I: text-to-image generation |
| Evaluation | ImageNet: FID IS T2I: GenEval DPGBench GenAIBench VQAScore |
| Training Backend | DDP FSDP [TODO] |
Compatibility
| Status | Details | |
|---|---|---|
| Coding Agents | Yes | Agent-compatible. See skills/ for setup and workflow skills. |
| AutoResearch | [TODO] | AutoResearch integration is planned (not yet available). |
Contributing
We welcome contributions! Please refer to docs/contributors.md and docs/contributing.md for further details.
Acknowledgments
The codebase is built upon some amazing projects:
We thank the authors for making their work publicly available.
Similar Articles
DiffusionBench: On Holistic Evaluation of Diffusion Transformers
Researchers introduce NanoGen, a unified framework for training and evaluating diffusion transformers, and propose DiffusionBench, a holistic benchmark combining ImageNet class-conditional and text-to-image generation to better assess progress in generative modeling.
MMDiff: Extending Diffusion Transformers for Multi-Modal Generation
MMDiff extends frozen diffusion transformers into multi-modal generative systems using lightweight decoders, achieving significant improvements in semantic segmentation and other perceptual tasks through multi-timestep feature fusion.
Diffusion Language Models: An Experimental Analysis
A systematic experimental analysis evaluating eight state-of-the-art Diffusion Language Models across multiple benchmarks, analyzing trade-offs between generation quality and computational efficiency.
UniDDT: Unifying Multimodal Understanding and Generation with Decoupled Diffusion Transformer
UniDDT proposes a decoupled diffusion transformer framework that unifies multimodal understanding and generation by leveraging a Noisy ViT encoder and LLM for semantic encoding, achieving strong performance on both tasks.
TILT: Improving Compositional Generation in Diffusion Models with a Model-Intrinsic Reward
TILT is a training-free framework that improves compositional generation in diffusion models by using a model-intrinsic reward to align sampling trajectories at test time, enhancing fidelity to complex prompts without external supervision.