Download README.md from SaeedRazavi/RECON: direct link, hf CLI and curl.
- Browser
- Download file 4.73 kB
-
https://huggingface.co/SaeedRazavi/RECON/resolve/main/README.md
- Command line
-
hf download hf://SaeedRazavi/RECON/README.md
-
curl -L -o README.md https://huggingface.co/SaeedRazavi/RECON/resolve/main/README.md
license: mit
tags:
- diffusion
- image-generation
- text-to-image
- representation-alignment
RECON checkpoints
Checkpoints trained with the RECON code (saeidrazavi/RECON).
RECON trains diffusion transformers with REPA-style representation alignment and semantic tokens:
at block encoder_depth the model predicts the features of a frozen vision encoder (the teacher),
pools them into K tokens and appends them to the sequence for the remaining blocks. Sampling pools
the tokens from the model's own prediction, so no teacher is needed at inference.
| File | Task | Model | Data | Training |
|---|---|---|---|---|
c2i/ep-00080.pt |
Class-to-image | SiT-XL/2 | ImageNet 256×256 | 80 epochs |
c2i/ep-00020.pt |
Class-to-image (weak model for autoguidance) | SiT-XL/2 | ImageNet 256×256 | 20 epochs |
c2i/ep-00480.pt |
Class-to-image | SiT-XL/2 | ImageNet 256×256 | 480 epochs |
c2i/ep-00025.pt |
Class-to-image (weak model for autoguidance) | SiT-XL/2 | ImageNet 256×256 | 25 epochs |
t2i-mscoco/0150000.pt |
Text-to-image | MMDiT | MS-COCO 256×256 | 150,000 steps |
Each file is a full training checkpoint with the keys model, ema, opt, args and steps.
The evaluation scripts use the EMA weights and read the model configuration from args, so no
configuration flags are needed. Training can resume from these files.
The 480-epoch model was trained without label dropout, so it has no null class: use autoguidance, not CFG.
Results
Class-to-image (c2i/ep-00080.pt): 50k samples, SDE sampler with 250 steps, no guidance,
--seed 0, ADM reference batch.
| FID | IS | Precision | Recall |
|---|---|---|---|
| 3.2349 | 203.02 | 0.8168 | 0.5632 |
Class-to-image with autoguidance: 50k samples, SDE sampler, --seed 0, ADM reference batch.
"Improved" is projected autoguidance with Semantic Token Extrapolation (--ag-projected --ste-lambda).
| Model | Weak model | Steps | Guidance | w | Interval | λ | FID |
|---|---|---|---|---|---|---|---|
ep-00080.pt |
ep-00020.pt |
50 | Autoguidance | 2 | (0, 0.7) | - | 2.26 |
ep-00080.pt |
ep-00020.pt |
50 | Improved | 2.5 | (0, 0.7) | 0.05 | 2.10 |
ep-00480.pt |
ep-00025.pt |
100 | Autoguidance | 1.4 | (0, 0.85) | - | 1.80 |
ep-00480.pt |
ep-00025.pt |
100 | Improved | 2 | (0, 0.85) | 0.05 | 1.50 |
Text-to-image (t2i-mscoco/0150000.pt): 40,192 MS-COCO val captions, ODE sampler (Heun) with
50 steps, U-ViT FID reference.
| CFG scale | FID | CLIP score |
|---|---|---|
| 1.0 | 8.2671 | 0.2311 |
| 2.0 | 4.5077 | 0.2465 |
Training settings
| Setting | Class-to-image (80 epochs) | Text-to-image |
|---|---|---|
| Model | SiT-XL/2 | MMDiT |
| VAE (latents) | sdvae-ft-mse-f8d4 |
sdvae-ft-ema-f8d4 |
| Text condition | — | CLIP ViT-L/14 features (U-ViT preprocessing) |
| Teacher | dinov2-vit-b |
dinov2-vit-b |
| Batch size / learning rate | 256 / 1e-4 | 256 / 1e-4 |
| Mixed precision | bf16 | fp16 |
| EMA decay | 0.9999 | 0.9999 |
--proj-coeff |
1.5 | 1.5 |
--encoder-depth |
8 | 8 |
| Semantic tokens | K=1, zeropad head, visible for t ≤ 0.5 |
K=1, zeropad head, visible for t ≤ 0.5 |
Caption dropout (--cfg-prob) |
— | 0.1 |
Usage
Set up the code and data as in the code repository's README. Then download the checkpoints
(to download only some of them, give their file names after SaeedRazavi/RECON):
uv run hf download SaeedRazavi/RECON --local-dir checkpoints/recon
Evaluate them:
# Class-to-image
REFERENCE_NPZ=data/imagenet/VIRTUAL_imagenet256_labeled.npz \
uv run accelerate launch --num_processes 4 --mixed_precision bf16 c2i_eval.py \
--ckpt checkpoints/recon/c2i/ep-00080.pt
# Class-to-image, improved autoguidance (80 epochs)
REFERENCE_NPZ=data/imagenet/VIRTUAL_imagenet256_labeled.npz \
uv run accelerate launch --num_processes 4 --mixed_precision bf16 c2i_eval.py \
--ckpt checkpoints/recon/c2i/ep-00080.pt \
--weak-ckpt checkpoints/recon/c2i/ep-00020.pt \
--num-steps 50 --ag-scale 2.5 --ag-projected --ste-lambda 0.05 --guidance-high 0.7
# Class-to-image, improved autoguidance (480 epochs)
REFERENCE_NPZ=data/imagenet/VIRTUAL_imagenet256_labeled.npz \
uv run accelerate launch --num_processes 4 --mixed_precision bf16 c2i_eval.py \
--ckpt checkpoints/recon/c2i/ep-00480.pt \
--weak-ckpt checkpoints/recon/c2i/ep-00025.pt \
--num-steps 100 --ag-scale 2 --ag-projected --ste-lambda 0.05 --guidance-high 0.85
# Text-to-image at CFG 2.0 (reads data/mscoco256 as in training; without --cfg-scale, no guidance)
uv run accelerate launch --num_processes 4 t2i_eval.py --ckpt checkpoints/recon/t2i-mscoco/0150000.pt --cfg-scale 2.0