|
Download README.md from cetini18/jit-sr: direct link, hf CLI and curl.
- Browser
- Download file 4.1 kB
-
https://huggingface.co/cetini18/jit-sr/resolve/main/README.md
- Command line
-
hf download hf://cetini18/jit-sr/README.md
-
curl -L -o README.md https://huggingface.co/cetini18/jit-sr/resolve/main/README.md
4.1 kB
| license: mit | |
| pipeline_tag: image-to-image | |
| library_name: pytorch | |
| tags: | |
| - super-resolution | |
| - image-restoration | |
| - one-step | |
| - jit | |
| - pixel-space | |
| # JiT-SR: one-step pixel-space 4x super-resolution | |
| Checkpoints of [JiT-SR](https://github.com/nitec427/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](https://github.com/nitec427/jit-sr) (`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. | |
| ```bash | |
| 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). | |