Real-ESRGAN : agrandir ses images en local
Real-ESRGAN est un modèle libre (BSD-3-Clause) qui agrandit une image ×4 en reconstruisant du détail plausible. Le plus simple est l'exécutable portable ncnn-vulkan, sans CUDA ni PyTorch, pour cartes Intel, AMD ou NVIDIA. Choisissez le modèle selon l'image : realesrgan-x4plus pour les photos, la variante anime pour les illustrations. Le projet n'a plus de version depuis septembre 2022 et le détail ajouté est inventé : jamais pour du texte ou une preuve.
Real-ESRGAN agrandit une image en reconstruisant du détail plausible au lieu d'étirer des pixels. C'est un modèle libre, petit et rapide, qui est devenu la brique que l'on ajoute au bout d'une chaîne de génération d'images locale ou que l'on sort pour restaurer de vieilles photos. Ce guide, à jour au 28 septembre 2026, dit quel modèle prendre, comment le lancer sans installer PyTorch, ce qu'il invente, quelles erreurs attendre et où en est le projet face aux alternatives récentes.
#Ce que fait un agrandisseur par IA
Un agrandissement classique interpole : il calcule des pixels intermédiaires à partir des voisins, ce qui donne une image plus grande et plus floue. Un agrandisseur par apprentissage fait autre chose. Il a été entraîné à retrouver une image nette à partir d'une version dégradée, et il reconstruit ce qui ressemble le plus à l'original : textures, bords, grain. La différence tient en une phrase : l'interpolation ne crée pas d'information, le modèle en invente. C'est exactement ce qu'on lui demande, et c'est pourquoi il faut savoir où ne pas l'utiliser.
Real-ESRGAN vient d'un article de Xintao Wang, Liangbin Xie, Chao Dong et Ying Shan (Tencent ARC Lab), déposé sur arXiv en juillet 2021 et présenté à ICCV Workshops : « Training Real-World Blind Super-Resolution with Pure Synthetic Data ». Son résumé décrit l'idée : un modèle entraîné uniquement sur des données synthétiques, avec une modélisation de dégradations « d'ordre élevé » qui simule mieux les défauts réels (flou, bruit, compression), et un discriminateur U-Net. « Blind » signifie que le modèle n'a pas besoin de savoir quelle dégradation l'image a subie. Le dépôt compte plus de 36 000 étoiles.
#Les modèles, et lequel prendre
Images et vidéos IA en local, sans limite : ComfyUI, Flux, Z-Image, Wan 2.2 sur ton GPU ou ton Mac — workflows prêts à charger, cadre légal inclus.
- Espace en ligne à vie
- PDF + fichiers
- Mises à jour à vie
| Modèle | Échelle | Description du projet | À utiliser sur |
|---|---|---|---|
| RealESRGAN_x4plus | ×4 | Modèle ×4 pour images générales | Photos, images générées : le choix par défaut |
| RealESRGAN_x2plus | ×2 | Modèle ×2 pour images générales | Quand ×4 est trop, sans repasser par un redimensionnement |
| RealESRNet_x4plus | ×4 | Modèle ×4 avec perte MSE, effets de lissage excessif | Rarement : le résultat est lisse et fade |
| realesr-general-x4v3 | ×4, utilisable en ×1, ×2, ×3 | Petit modèle, consomme beaucoup moins de mémoire GPU et de temps, capacité de débruitage moins forte | Machines modestes, lots d'images ; l'option -dn règle le débruitage |
| RealESRGAN_x4plus_anime_6B | ×4 | Optimisé pour les images d'anime, réseau plus petit (6 blocs RRDB) | Illustrations, planches, dessins 2D |
| realesr-animevideov3 | ×4, utilisable en ×1, ×2, ×3 | Modèle de taille XS pour les vidéos d'animation | Séquences d'animation |
Le catalogue du projet sépare les modèles pour photos des modèles pour illustrations, et c'est le choix qui pèse le plus sur le résultat. La variante anime est présentée comme optimisée pour ce type d'image, avec un réseau plus petit, et le projet la compare à waifu2x. Sur un dessin, essayez-la en premier : un modèle photo peut texturer des aplats qui devraient rester lisses, à vérifier sur votre image.
#Trois façons de le lancer
Le README décrit trois voies : une démonstration en ligne, l'exécutable portable ncnn et le script Python. Pour un usage local régulier, seules les deux dernières comptent.
| Voie | Ce qu'il faut | Avantages | Limites |
|---|---|---|---|
| Exécutable portable (ncnn-vulkan) | Un GPU Intel, AMD ou NVIDIA compatible Vulkan. Archives pour Windows, Linux et macOS. Aucun CUDA, aucun PyTorch. | Rien à installer, les modèles sont inclus | Ne gère pas toutes les fonctions du script Python, comme --outscale, et peut créer des incohérences entre blocs |
| Script Python (inference_realesrgan.py) | Python 3.7 ou plus, PyTorch 1.7 ou plus, basicsr, et facexlib et gfpgan pour les visages | Échelle arbitraire, visages, tuilage, images à canal alpha, en niveaux de gris ou 16 bits | Dépendances fragiles, voir le dépannage |
#Les commandes exactes
L'exécutable portable s'utilise en ligne de commande. Le texte d'aide donne les options : -i pour l'entrée (fichier ou dossier), -o pour la sortie, -s pour l'échelle (2, 3 ou 4), -n pour le modèle, -t pour la taille de tuile, -g pour choisir le GPU, -f pour le format de sortie.
Le script Python fournit l'option --outscale : le modèle fait toujours un agrandissement ×4, puis le programme redimensionne le résultat à l'échelle voulue avec un redimensionnement peu coûteux. Il y a aussi --tile pour découper l'image et économiser la mémoire, et --fp32 pour la précision complète, qui devient obligatoire sur processeur (voir plus bas).
Dans ComfyUI, les modèles d'agrandissement se rangent dans ComfyUI/models/upscale_models, et un nœud de chargement puis un nœud d'agrandissement par modèle les appliquent. Pour une interface de bureau, le README cite plusieurs projets qui embarquent Real-ESRGAN, dont Upscayl, un logiciel libre pour Linux, macOS et Windows, qui compte environ 50 000 étoiles et a été mis à jour ces derniers jours.
#Bien l'utiliser
- 01Choisir le modèle selon le type d'imagePhoto ou illustration : c'est le réglage qui change le plus le résultat, bien avant le facteur d'agrandissement. Ajoutez toujours -n dans la commande.
- 02Ne pas empiler les passesAgrandir deux fois de suite ×4 donne du plastique, pas du détail. Une passe au bon facteur suffit ; si le ×4 est trop, prenez le modèle ×2 ou l'option d'échelle.
- 03Nettoyer avant d'agrandirUn débruitage léger en amont évite que le modèle traite le bruit comme du détail à reconstruire. Avec realesr-general-x4v3, l'option -dn règle la force du débruitage pour éviter un résultat trop lisse.
- 04Réserver face_enhance aux vrais visagesL'option face_enhance s'appuie sur GFPGAN et ne sert que pour de vrais visages : le FAQ du projet déconseille de l'utiliser sur de l'animation, où elle consomme de la mémoire GPU pour rien.
- 05Comparer à 100 %Un agrandissement se juge au pixel, pas sur une vignette. Beaucoup de résultats spectaculaires à petite taille sont lisses et artificiels de près.
#Quelle taille viser : un calcul avant de lancer
Un agrandissement ×4 n'est utile que si la taille finale sert un usage précis. Voici le facteur nécessaire selon la destination, d'après un calcul simple : pixels = centimètres ÷ 2,54 × résolution en points par pouce, puis facteur = grand côté visé ÷ grand côté de départ.
| Usage | Grand côté visé | Facteur nécessaire |
|---|---|---|
| Écran 4K, plein écran | 3 840 px | ×3,75 : une passe ×4 convient |
| Impression A4 à 300 ppp | 3 508 px | ×3,4 : une passe ×4, ou --outscale 3,4 |
| Impression A3 à 300 ppp | 4 961 px | ×4,8 : dépasse une passe ×4 ; acceptez un tirage un peu plus petit plutôt que d'empiler deux passes |
| Page web ou vignette | 1 600 à 2 000 px | ×1,6 à ×2 : le modèle ×2 ou --outscale suffit |
Retenez le principe : viser la taille utile, pas la taille maximale. Une image de 1 024 × 1 024 agrandie ×4 fait 4 096 × 4 096, soit environ 16,8 millions de pixels, seize fois plus qu'au départ : autant de fichier à stocker, à charger et à retoucher, pour un gain souvent invisible à l'écran. Avec l'option --outscale du script Python, on choisit l'échelle exacte au lieu de sur-agrandir puis de réduire.
#Dans une chaîne de génération d'images
En génération locale, l'agrandisseur est la dernière étape : on génère à une résolution que la carte supporte, puis on agrandit, ce qui coûte moins de mémoire que de générer directement en grand. Les tailles natives des modèles d'image, par exemple 512 × 512 pour SD 1.5 ou 1024 × 1024 pour SDXL, sont détaillées dans le guide de Stable Diffusion. Ensuite, un ×2 sur une image SDXL de 1024 × 1024 donne 2048 × 2048 sans repasser par le modèle de diffusion.
- Stable Diffusion : versions, résolutions natives et licences
- Générer des images en local : le panorama
#Ce qu'il invente
- Le texte
- Les petits caractères agrandis deviennent des caractères plausibles et faux. Pour un document, c'est la reconnaissance optique qu'il faut, pas un agrandisseur.
- Les visages
- Un visage flou agrandi devient un visage net qui n'est pas exactement la même personne. Aucun usage d'identification n'est acceptable.
- Les détails fins
- Motifs de tissu, feuillages, cheveux : le modèle produit une texture crédible, pas la texture d'origine.
- Les défauts
- Un artefact de compression bien visible sera parfois agrandi avec application, au lieu d'être effacé.
#Dépannage : les erreurs fréquentes
| Symptôme | Cause | Correctif |
|---|---|---|
| Erreur « slow_conv2d_cpu not implemented for Half » | Real-ESRGAN utilise la demi-précision (fp16) par défaut, que certains opérateurs ne gèrent pas sur processeur | Ajouter l'option --fp32 à la commande |
| ModuleNotFoundError : torchvision.transforms.functional_tensor | basicsr importe un module que torchvision a retiré à partir de la version 0.17 (rapport du 28 août 2024 ; un correctif est proposé dans une demande de fusion du dépôt BasicSR) | Installer une version de torchvision compatible, ou utiliser l'exécutable portable ncnn qui n'en dépend pas |
| Blocs visibles ou raccords dans l'image | L'exécutable découpe l'image en tuiles puis les recolle, ce que le README signale comme source d'incohérences | Régler la taille de tuile avec -t (0 pour automatique) : des tuiles plus grandes limitent les raccords si la mémoire le permet |
| Image noire en sortie | Le TODO du dépôt ncnn signale que certains PC produisent des images noires | Tester l'autre voie (Python ou ncnn) ou une autre carte avec -g |
| Visages déformés sur une illustration | Option face_enhance active sur un contenu non photographique | La retirer : elle est conçue pour de vrais visages |
#Où en est le projet en 2026
Il faut être honnête sur son âge. La dernière version publiée, la v0.3.0, date du 20 septembre 2022, et le dernier commit du dépôt principal, du 2 avril 2024, supprime un fichier de configuration d'intégration continue. L'implémentation ncnn, dont le README indique une licence MIT, n'a pas reçu de mise à jour depuis mai 2024. Cela ne rend pas le modèle mauvais : il fait son travail, il est petit, et il tourne sur des cartes modestes. Mais on ne peut pas compter sur des correctifs pour les incompatibilités récentes, comme celle de torchvision.
Côté alternatives, le README de ComfyUI liste SeedVR2 et SUPIR parmi ses modèles pris en charge. SeedVR2 se présente comme une restauration vidéo en une étape par post-entraînement adversarial de diffusion, et SUPIR vise la restauration photoréaliste d'images « in the wild ». Ce sont des approches fondées sur la diffusion : nous n'avons pas de comparaison chiffrée fiable avec Real-ESRGAN, et le risque de détail inventé y est au moins aussi présent. Lisez la licence de SUPIR, que GitHub classe « Other », avant un usage commercial. Pour la plupart des photos et illustrations du quotidien, Real-ESRGAN reste le bon rapport entre simplicité, vitesse et matériel demandé.
- ControlNet : maîtriser la composition en amont
- Le kit Images IA
- Source : le dépôt officiel de Real-ESRGAN
- Source : l'article de recherche sur arXiv
- Source : l'implémentation ncnn-vulkan
#FAQ
Real-ESRGAN est-il gratuit ?+
Faut-il une carte graphique ?+
Peut-on agrandir du texte scanné ?+
Pourquoi mon illustration est-elle granuleuse après agrandissement ?+
Peut-on l'utiliser sur de la vidéo ?+
Real-ESRGAN est-il encore maintenu ?+
Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.