Funing Fu1* · Tenghui Wang2* · Guanyu Zhou2 · Junyong Cen1 · Qichao Zhu3
1 Independent Researcher · 2 Wuhan University of Technology · 3 Hangzhou Jiyi AI
* Equal contribution
# Clone repository
git clone https://github.com/akatsuki-neo/JLT.git
cd JLT
# Create conda environment
conda env create -f environment.yaml
conda activate jit
# Install accelerate (required for distributed training)
pip install accelerate
# Install additional dependencies
pip install torch-fidelity # for FID evaluationDownload ImageNet train/val from image-net.org and extract to a directory.
Encode ImageNet to latent shards for efficient training:
python prepare_ref.py \
--data_path /path/to/imagenet \
--output_path /path/to/imagenet_latents_256 \
--img_size 256 \
--vae_type flux2 \
--vae_model_name_or_path black-forest-labs/FLUX.2-klein-4B \
--batch_size 256 \
--num_workers 8This produces safetensor latent shards in /path/to/imagenet_latents_256.
./start_latent_jit_16.sh [GPU_IDS]
# Example: use GPUs 0-3 only
./start_latent_jit_16.sh 0,1,2,3Key settings:
- Model: JiT-B/1 (patch 1, 16x16 latent grid)
- Batch size: 256 × 8 GPUs × 2 accum = 4096 effective
- Epochs: 40 (with 5 warmup)
- Learning rate: 5e-5 base LR
./start_latent_jit_32.sh [GPU_IDS]./start_latent_v_32.sh [GPU_IDS]Key difference: --flow_matching flag enables direct velocity prediction.
| Argument | Description |
|---|---|
--model |
Model variant: JiT-B/1 or JiT-B/2 |
--vae_type |
flux2 for FLUX.2 latent space |
--flow_matching |
Enable velocity prediction (DiT baseline) |
--batch_size |
Micro batch per GPU |
--blr |
Base learning rate |
--epochs |
Training epochs |
--cfg |
Classifier-free guidance scale |
--data_path |
Path to pre-encoded latents |
--use_latent_cache |
Load pre-encoded safetensor latents |
--vae_model_name_or_path |
FLUX.2 VAE path or HuggingFace repo |
Download the checkpoint from HuggingFace and run evaluation:
# Download checkpoint
huggingface-cli download dawn-neo/JLT checkpoint-last.pth
# Run evaluation (requires pre-encoded latents)
python main_jit.py \
--model JiT-B/1 \
--vae_type flux2 \
--img_size 256 \
--data_path /path/to/imagenet_latents_256 \
--use_latent_cache \
--online_eval \
--eval_freq 1 \
--gen_bsz 128 \
--num_images 50000 \
--cfg 2.9 \
--num_sampling_steps 50 \
--resume /path/to/checkpoint-last.pth \
--output_dir ./eval_outputFor FID evaluation, pre-encoded ImageNet latents and reference statistics are required. See torch-fidelity for details.
Let
The three common direct targets are:
For fixed
Local linear-Gaussian assumption:
Key insight: Velocity prediction adds the same isotropic unit floor to every clean-latent direction. If
Conditional ambiguity gap:
When
| Prediction Target | Coefficient Tends To |
|---|---|
| Clean ( |
|
| Velocity ( |
|
JLT is a Base-scale latent Transformer following JiT-B/16 for architectural comparability:
| Component | Specification |
|---|---|
| Transformer Blocks | 12 |
| Hidden Dimension | 768 |
| Attention Heads | 12 |
| Bottleneck Patch Embedding | 128-dim |
| Parameters | 130M |
| Tokenizer | FLUX.2 VAE (frozen) |
| Model | Target | Guidance | FID-50K ↓ | IS ↑ |
|---|---|---|---|---|
| JLT-B/1 |
|
w/ CFG | 2.56 | 220.74 |
| DiT-B/1 |
|
w/ CFG | 6.56 | 132.12 |
| JLT-B/2 |
|
w/ CFG | 14.81 | 107.29 |
| DiT-B/2 |
|
w/ CFG | 28.71 | 58.46 |
| JLT-B/1 (final) | w/ CFG | 2.50 | 232.51 | |
| JLT-B/1 | w/o CFG | 14.00 | -- |
Matched latent target ablation on ImageNet 256×256. The upper block is the controlled target comparison; the lower block reports the selected final JLT-B/1 evaluation.
| Model | Space | Params | Train | FID-50K ↓ | IS ↑ |
|---|---|---|---|---|---|
| JLT-B/1 | FLUX.2 | 130M | 250K/200ep | 2.50 | 232.51 |
| JiT-L/16 | pixel | 459M | 200ep | 2.79 | -- |
| LDM | latent | -- | -- | 3.60 | -- |
| JiT-B/16 | pixel | 131M | 200ep | 4.37 | -- |
Guided ImageNet 256×256 comparison with representative baselines.
Training curves for the matched target ablation. Checkpoints after initialization are evaluated every 40 epochs; clean-latent variants keep lower FID and higher Inception Score than velocity counterparts.
-
Target geometry matters in latent space: Clean-latent prediction consistently outperforms matched velocity prediction under fixed representation, architecture, and training settings.
-
Mechanism: Velocity prediction adds an isotropic covariance floor and amplifies low-variance latent directions, while clean prediction attenuates them.
-
Representation independence: The advantage is not a byproduct of using a particular patch size — it holds at both /1 and /2 VAE-grid scales.
@article{fu2026jlt,
title={{JLT}: {C}lean-{L}atent {P}rediction in {L}atent {D}iffusion {T}ransformers},
author={Fu, Funing and Wang, Tenghui and Zhou, Guanyu and Cen, Junyong and Zhu, Qichao},
journal = {arXiv preprint arXiv:2605.27102},
year={2026}
}- Li & He. "Back to Basics: Let Denoising Generative Models Denoise." arXiv:2511.13720, 2025.
- JiT GitHub: https://github.com/LTH14/JiT
- Black Forest Labs. FLUX.2 Small Decoder. HuggingFace, 2026.
