FluxSR: One-Step 4x Super-Resolution LoRA for Flux.1-dev
FluxSR publishes its one-step 4x real-world super-resolution LoRA for Flux.1-dev, with training and inference code plus a ready community ComfyUI node pack.
From the project repository: FluxSR reconstructions next to other one-step and multi-step super-resolution methods.
What FluxSR does
Multi-step diffusion super-resolution is accurate but slow, and earlier one-step variants inherit the artefacts of whatever teacher they distilled from. FluxSR keeps Flux.1-dev as both the teacher and the base model and adds three pieces on top of it:
- Flow Trajectory Distillation (FTD) distils the multi-step flow-matching model into a single sampling step, so one pass through the transformer produces the 4x image.
- TV-LPIPS replaces a plain perceptual loss with a total-variation weighted variant, which the paper uses to push the reconstruction towards realistic texture instead of smooth averages.
- Attention Diversification Loss (ADL) is a regulariser that lowers token similarity inside the transformer, which is where the high-frequency speckle in one-step outputs usually comes from.
The result ships as a LoRA adapter rather than a full checkpoint. The adapter is 717 MB, the rank and alpha are both 64, and inference runs at timestep 350 with guidance 4, all read from the bundled training_config.json.
The FluxSR training pipeline: a Flux.1-dev teacher generates the training pairs, and the LoRA student is distilled to a single step with TV-LPIPS and ADL.
What is in the release
| File | What it is |
|---|---|
pytorch_lora_weights.safetensors | The FluxSR transformer LoRA adapter (717 MB) |
training_config.json | Timestep, guidance and LoRA rank/alpha used at inference |
t5_embedding.pth, clip_embedding.pth | Fixed text embeddings the adapter expects |
prompts_10k.json | The 10,000 prompts used to generate the training pairs |
The repository documents the full loop, not just inference. Training data is generated with the Flux.1-dev teacher at 50 steps and guidance 3.5, storing paired noise, teacher latent, decoded image and seed, and scripts/evaluate.py reports PSNR, SSIM, LPIPS, DISTS and MUSIQ against ground truth when it is available.
Table 1 of the paper: quantitative comparison against other real-world super-resolution methods.
Table 2 of the paper reports the same comparison on RealSet65.
Qualitative comparison from the paper: FluxSR against other super-resolution methods on real-world low-resolution inputs.
Running it in ComfyUI
The project ships no ComfyUI node itself, but a community pack appeared the same day. JohnDopamine posted a FluxSR node pack in the Banodoco #flux channel on October 13, 2026 (version 1.0.1 fixes the T5 and CLIP embedding paths), and reported two runs on a machine with about 84 GB of usable VRAM:
| Input | Output | Time |
|---|---|---|
| 446 x 448 | 1784 x 1792 | 3.18 s |
| 688 x 864 | 2752 x 3456 | 34.91 s |
The pack runs Flux.1-dev with the LoRA plus the two fixed embedding files from the Hugging Face package, so anything that can already run Flux.1-dev can run it. Batched and tiled modes exist for larger inputs, and the inference script exposes --offload sequential and --vae-tiling for lower-memory setups.
The node pack currently lives in the community channel as a zip rather than in a repository, so installation is manual.
Availability
The LoRA weights, fixed embeddings and training prompts are on Hugging Face, and the training, inference and evaluation code is on GitHub. The base Flux.1-dev weights have to be downloaded separately after accepting their access conditions.
Comments
Sign in with GitHub to join the discussion.