FluxSR : LoRA de super-résolution 4x en une étape pour Flux.1-dev
FluxSR publie son LoRA de super-résolution 4x en une étape pour Flux.1-dev, avec le code d'entraînement et d'inférence et un pack de nœuds ComfyUI communautaire.
Extrait du référentiel du projet : reconstructions FluxSR à côté d'autres méthodes de super-résolution en une et plusieurs étapes.
Ce que fait FluxSR
La super-résolution par diffusion en plusieurs étapes est précise mais lente, et les variantes en une étape antérieures héritent des artefacts du modèle enseignant dont elles ont été distillées. FluxSR conserve Flux.1-dev à la fois comme enseignant et comme modèle de base, et y ajoute trois éléments :
- Flow Trajectory Distillation (FTD) distille le modèle de flow-matching multi-étapes en une seule étape d'échantillonnage : une seule passe dans le transformer produit l'image en 4x.
- TV-LPIPS remplace une simple perte perceptuelle par une variante pondérée par la variation totale, que l'article utilise pour orienter la reconstruction vers des textures réalistes plutôt que vers des moyennes lisses.
- Attention Diversification Loss (ADL) est un régularisateur qui réduit la similarité entre les tokens à l'intérieur du transformer, là où se forme habituellement le bruit haute fréquence des sorties en une étape.
Le résultat est livré sous forme d'adaptateur LoRA plutôt que de checkpoint complet. L'adaptateur pèse 717 Mo, le rank et l'alpha valent tous deux 64, et l'inférence s'exécute au timestep 350 avec un guidance de 4, valeurs lues dans le fichier training_config.json fourni.
Le pipeline d'entraînement FluxSR : un enseignant Flux.1-dev génère les paires d'entraînement, et l'étudiant LoRA est distillé en une seule étape avec TV-LPIPS et ADL.
Contenu de la publication
| Fichier | Description |
|---|---|
pytorch_lora_weights.safetensors | L'adaptateur LoRA du transformer FluxSR (717 Mo) |
training_config.json | Timestep, guidance et rank/alpha du LoRA utilisés à l'inférence |
t5_embedding.pth, clip_embedding.pth | Les embeddings texte fixes attendus par l'adaptateur |
prompts_10k.json | Les 10 000 prompts utilisés pour générer les paires d'entraînement |
Le référentiel documente la boucle complète, et pas seulement l'inférence. Les données d'entraînement sont générées avec l'enseignant Flux.1-dev à 50 étapes et un guidance de 3.5, en stockant le bruit, le latent de l'enseignant, l'image décodée et la graine par paires, et scripts/evaluate.py rapporte les métriques PSNR, SSIM, LPIPS, DISTS et MUSIQ par rapport à la vérité terrain lorsqu'elle est disponible.
Tableau 1 de l'article : comparaison quantitative avec d'autres méthodes de super-résolution d'images réelles.
Le tableau 2 de l'article présente la même comparaison sur RealSet65.
Comparaison qualitative issue de l'article : FluxSR face à d'autres méthodes de super-résolution sur des entrées basse résolution réelles.
L'utiliser dans ComfyUI
Le projet ne fournit aucun nœud ComfyUI, mais un pack communautaire est apparu le jour même. JohnDopamine a publié un pack de nœuds FluxSR dans le canal #flux de Banodoco le 13 octobre 2026 (la version 1.0.1 corrige les chemins des embeddings T5 et CLIP) et a rapporté deux exécutions sur une machine disposant d'environ 84 Go de VRAM utilisable :
| Entrée | Sortie | Durée |
|---|---|---|
| 446 x 448 | 1784 x 1792 | 3,18 s |
| 688 x 864 | 2752 x 3456 | 34,91 s |
Le pack exécute Flux.1-dev avec le LoRA et les deux fichiers d'embeddings fixes du package Hugging Face : tout ce qui peut déjà exécuter Flux.1-dev peut donc l'exécuter. Des modes par lots et en mosaïque existent pour les entrées plus grandes, et le script d'inférence expose --offload sequential et --vae-tiling pour les configurations à mémoire réduite.
Le pack de nœuds vit actuellement dans le canal communautaire sous forme de zip plutôt que dans un référentiel, l'installation est donc manuelle.
Disponibilité
Les poids LoRA, les embeddings fixes et les prompts d'entraînement sont sur Hugging Face, et le code d'entraînement, d'inférence et d'évaluation est sur GitHub. Les poids du modèle de base Flux.1-dev doivent être téléchargés séparément après avoir accepté leurs conditions d'accès.
Commentaires
Connectez-vous avec GitHub pour rejoindre la discussion.