This leaderboard tracks tiny text-to-image models trained from scratch.
The goal is to push the frontier of efficient generative models — not to recycle existing ones.
Every submission is manually reviewed by maintainers before appearing on the board.
✅ Allowed
Pre-trained VAEs are fully allowed (e.g. Stability-AI VAE, sd-vae-ft-mse). The VAE is an autoencoder — training your own from scratch for a tiny model is impractical and not the focus of this benchmark.
Pre-trained text encoders are allowed (e.g. CLIP-ViT-L/14, T5-XXL, Gemma). Text encoders are frozen feature extractors; re-training them is orthogonal to diffusion research at small scale.
Pre-trained tokenizers are allowed — these are lookup tables, not learned parameters.
Any diffusion architecture — DiT, U-ViT, UNet, MDT, etc. Novelty in the denoising backbone is encouraged.
Any training dataset — as long as the model is trained from scratch on it.
🚫 Not Allowed
Fine-tuning — You cannot start from SDXL, SD 1.5/2.1, Flux, PixArt, DALL·E, or any other pre-trained diffusion model and continue training. The denoising backbone (UNet/DiT) must be randomly initialized.
LoRA / Adapters — No LoRA, DoRA, adapter layers, or side-tuning on top of a frozen pre-trained diffusion model. This is just fine-tuning in disguise.
Distillation — No distilling a large teacher model (e.g. SDXL, Flux) into a smaller student. The model must be trained on real pixels, not teacher outputs.
Re-uploading existing models — Don't just convert SDXL weights to .safetensors and submit. The architecture and weights must be your own work.
Pre-trained diffusion backbones — If the denoising network was pre-trained on any image generation task, it's ineligible. This includes models pre-trained on unrelated datasets and then "continued" on a new one.
Merged models — No weight-merging of existing checkpoints (e.g. no SDXL+Flux merges).
📏 Technical Requirements
Parameter cap: ≤1.5B total — this is the sum of everything: text encoder + VAE + denoising backbone + any other learned parameters. You must report the full combined parameter count, not just the backbone.
Weights format: Must be saved as a single file named exactly model.safetensors so parameter count and metadata can be verified programmatically. No .pt, .ckpt, or .bin files. No multi-file shards.
FID: Computed via torchmetrics.image.fid (preferred) or clean-fid. Report the dataset used (e.g. COCO-30K, MS-COCO 256×256).
CLIP Score: Computed via torchmetrics.image.clip_score with openai/clip-vit-base-patch32 (the default).
Resolution: Report the native generation resolution used for evaluation.
🔍 How We Verify
We inspect .safetensors metadata for parameter count and key naming patterns.
We check for telltale signs of fine-tuning: key names matching known models (e.g. model.diffusion_model.* from SDXL), unexpected weight distributions, or identical keys to public checkpoints.
We may request training logs, config files, or a brief training narrative.
Submissions that appear to violate rules will be rejected with an explanation. Repeat offenders will be banned.
❓ FAQ
Q: Can I use a pre-trained VAE? A: Yes. The VAE is a frozen autoencoder — training a tiny VAE alongside a tiny diffusion model is a separate research problem. Using a standard pre-trained VAE is encouraged.
Q: What if my model has the same architecture as SDXL but trained from scratch? A: Allowed, provided you trained every weight from random initialization. The key names in your .safetensors must not match SDXL's exact keys (which would indicate copying).
Q: Can I use pre-trained image embeddings? A: No. The denoising backbone must learn from pixels, not from a pre-trained image encoder's latent space (beyond the frozen VAE).
×
Agree to Terms
Before submitting your model, confirm:
FID via torchmetrics.image.fid or clean-fid, CLIP Score via torchmetrics.image.clip_score
Total model parameters ≤1.5B (including text encoder, VAE, and UNet)
Model is pre-trained from scratch by you — not a fine-tune, LoRA, adapter, or distillation of an existing SOTA model
Pre-trained VAEs and text encoders are allowed; the denoising backbone must be trained from scratch
Weights saved as model.safetensors — a single file with the full combined parameter count (backbone + VAE + text encoder + all)