JiT-SR: one-step pixel-space 4x super-resolution

Checkpoints of JiT-SR, a JiT-B/16 (Just image Transformer) adapted to one-step 4x real-world super-resolution that works directly on pixels (512 x 512 output, no VAE, no diffusion sampling loop). The input is the bicubic-upsampled low-resolution image and the output is the high-resolution image.

The files hold the EMA weights (model_ema1), which every reported result uses. The discriminator and optimiser are not included.

Folder Variant Epoch Params GMACs (512 x 512)
lrfeat_nofdl_c70_ep38 resize_res decoder + LR skip + LR feature pyramid, no FDL (best fidelity) 38 (constant-LR continuation) 136.0 M 134.9
lrskip_nofdl_c70_ep38 resize_res decoder + LR skip, no FDL 38 (constant-LR continuation) 135.5 M 127.5

Each folder has model.safetensors (fp32, about 0.55 GB) and config.json (the model flags and metadata).

Results (4x, 512 x 512 output, one step)

RealSR (100 images) and DRealSR (93 images). Raw is the model output; AdaIN applies a per-channel mean and standard-deviation match to the upsampled LR input (as in StableSR) and uses no ground truth. Lower is better for LPIPS, DISTS, FID; higher for the rest.

Model Set Output PSNR SSIM LPIPS DISTS FID MUSIQ
lrfeat_nofdl_c70_ep38 RealSR raw 25.72 0.737 0.263 0.206 112.1 66.6
RealSR AdaIN 26.62 0.745 0.261 0.203 112.3 66.4
DRealSR raw 28.20 0.766 0.296 0.211 138.7 61.8
DRealSR AdaIN 29.45 0.781 0.288 0.207 137.9 61.5
lrskip_nofdl_c70_ep38 RealSR raw 25.48 0.730 0.265 0.207 117.8 66.1
RealSR AdaIN 26.47 0.739 0.261 0.204 118.0 66.0
DRealSR raw 27.93 0.764 0.294 0.212 139.5 61.8
DRealSR AdaIN 29.30 0.780 0.285 0.207 137.0 61.5

More metrics (CLIPIQA, CLIPIQA+, MANIQA, TOPIQ, NIQE, A-FINE), the DIV2K results and the comparison with other one-step methods are in the GitHub repository (docs/c70_eval.md, docs/postprocessing.md, docs/pocketsr_comparison.md). The two evaluation sets are small, so differences below about 0.1 dB PSNR or 0.002 LPIPS are within noise.

Usage

The model code is in the GitHub repository; this repo only holds weights.

git clone https://github.com/nitec427/jit-sr && cd jit-sr
pip install huggingface_hub safetensors
python scripts/load_hf_checkpoint.py --repo cetini18/jit-sr --subfolder lrfeat_nofdl_c70_ep38   # writes lrfeat_nofdl_c70_ep38/checkpoint-38.pth

The script writes a checkpoint in the format main_jit.py reads (--full_ckpt_path; the file must be named checkpoint-<epoch>.pth) and prints the model flags from config.json. Run the evaluation with those flags and --use_ema_eval (see eval_ckpt.sh for the data and metric options). Input images are 128 x 128 crops upsampled to 512 x 512 with bicubic interpolation.

Training and limitations

  • Fine-tuned from the 512-px ImageNet JiT-B/16 checkpoint with pixel MSE, LPIPS, DISTS and a U-Net GAN (weight 0.05), then continued at a constant learning rate; the exact recipes are in docs/runs/ in the GitHub repository.
  • Trained on synthetic degradations only; no real-world paired data was used. Real-world generalisation is therefore limited by how well the degradation pipeline matches real images.
  • The raw output has more local contrast than the ground truth; post-processing such as AdaIN raises PSNR and LPIPS but lowers no-reference scores (see docs/postprocessing.md).
  • Evaluated at 512 x 512 only.

License and credits

MIT. Built on the PyTorch re-implementation of JiT by Tianhong Li, based on Back to Basics: Let Denoising Generative Models Denoise (Li and He, arXiv:2511.13720).

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Paper for cetini18/jit-sr