- Ceci va être une petite introduction à l'upscaling/l'amélioration d'images par IA. J'essaierai de mettre à jour ce post au fur et à mesure que j'apprends, pour qu'il reste utile et gagne en qualité (et aussi réécrire certaines parties pour plus de clarté, de grammaire et de mise en forme). Les discussions sur les techniques d'upscaling, les expériences, les logiciels, leurs évaluations, etc. sont les bienvenues.
- Je suis sûr que vous savez tous ce qu'est l'upscaling, mais tout le monde ne sait pas trop ce qu'est l'upscaling par IA et comment l'utiliser. L'IA dont je parle est un réseau de neurones artificiels de deep learning, c'est-à-dire en gros une IA entraînée sur un énorme jeu de données (ici, des tonnes d'images) pour 'apprendre'. Résultat : une IA capable d'upscaler une image avec plus de précision, en apportant des détails que l'upscaling classique ne peut pas offrir.
- Upscaler des images n'a rien de magique. Par exemple, si un livre dans l'image porte un texte totalement illisible, l'upscaling ne va pas le réparer. C'est simplement une façon d'augmenter la résolution des images de manière esthétique, avec plus de netteté, de clarté et de réalisme que l'upscaling classique. Ça ne veut pas dire que ça ne vaut pas le coup d'utiliser l'upscaling par IA plutôt que l'upscaling/rééchantillonnage classique, parce que si. Les résultats ne sont peut-être pas toujours bons, mais ils ne sont certainement pas toujours mauvais non plus, et ça ne fera que s'améliorer avec le temps. Parfois une image est si bien upscalée qu'elle est quasi parfaite. En plus, l'upscaling par IA peut aussi servir à nettoyer une image du bruit et des artefacts de compression, donc même si tu n'as pas besoin ou envie d'augmenter la résolution, il y a d'autres avantages possibles.
- Je vais fournir une courte liste d'options d'upscaling avec le prix, la plateforme sur laquelle elles sont disponibles et les limites d'upscaling. Je n'évaluerai pas la qualité des upscales, d'une part parce que c'est assez subjectif, et d'autre part parce que je n'ai pas tout testé ici. Qui sait, je le ferai peut-être un jour et je mettrai les images pour comparer, mais peut-être pas, ça dépendra de ce que je déciderai.
- Certaines options sont en ligne, ce qui est pratique : on peut upscaler avec à peu près n'importe quel appareil ayant un navigateur correct et une connexion internet. Les inconvénients : soit les capacités sont limitées, soit il faut un abonnement, et ça nécessite une connexion internet. Ce n'est peut-être pas la meilleure option pour ceux qui ont une connexion lente, instable ou plafonnée. Et puis on ne sait jamais ce qu'ils font vraiment de tes images, donc si tu as des photos sensibles à upscaler, mieux vaut peut-être choisir une option hors ligne.
- Certaines sont téléchargeables en tant que logiciel, ce qui a généralement l'avantage de ne pas nécessiter d'internet et d'avoir moins, voire aucune restriction d'upscaling. Les inconvénients : le logiciel doit exister pour ta plateforme, et il te faut un appareil capable de le faire tourner, car contrairement à une option en ligne où d'autres serveurs s'occupent de la charge de calcul, c'est maintenant ton appareil qui fait tout le travail.
*Le code source est disponible sur GitHub
**Via WINE
- Ce ne sont pas les seules options, il y en a plein d'autres, donc si rien ne te botte, cherche quelque chose comme "AI Image Upscaling Software". Tu peux aussi jeter un œil à ce link qui donne une liste d'autres options avec leurs avantages et inconvénients. Perso j'utilise Gigapixel AI parce qu'il tourne sur ma propre machine et n'a pas de limite majeure à ma connaissance, à part l'impossibilité d'upscaler une image au-delà de 32,000 x 32,000, ce qui ne me pose aucun problème. Si tu as besoin ou envie d'upscaler une image au-delà d'un gigapixel pour une raison quelconque, tu peux toujours découper l'image en morceaux plus petits, les upscaler, puis les fusionner et les assembler.
- Une fois que tu as choisi ce que tu vas utiliser pour upscaler, il y a des choses à faire pour obtenir le meilleur résultat. D'abord, utilises-tu la meilleure version de l'image que tu vas upscaler ? Parce que, comme tu le sais, il existe en gros plusieurs copies de presque chaque photo en ligne, et elles n'ont pas toutes la même qualité. Donc si tu as pris ton image sur internet et que ce n'est pas une photo unique ni une capture d'écran que tu as faite d'une image précise d'une vidéo, tu devrais peut-être tenter une recherche d'image inversée. Il y a plusieurs options, comme Google, Bing, TinEye, etc., pour faire une recherche d'image inversée (ça peut valoir le coup d'en utiliser plusieurs, car elles n'affichent pas toujours les mêmes résultats). Tu peux aussi utiliser une extension de navigateur pour t'aider, comme Search by Image. N'oublie pas que ce n'est pas parce qu'une image est plus ancienne, a une meilleure résolution ou un fichier plus lourd que cette version est de meilleure qualité. Pour augmenter tes chances de trouver l'image originale, tu peux déterminer qui/quoi est montré, quand/où elle a pu être prise/postée, etc., et utiliser ces infos pour retrouver une meilleure version, voire la source elle-même. Par exemple, l'image vient peut-être d'un shooting précis ou d'un événement. Le savoir peut aider.
- Une fois que tu es sûr d'avoir la meilleure copie de l'image à upscaler (ou au moins la meilleure que tu puisses trouver), tu peux t'occuper des données et de l'archivage. Ce que je veux dire : pour être sûr que la photo que tu vas utiliser est correcte et restera disponible pour tout le monde, je recommande quelques trucs. D'abord, utilise VirusTotal pour scanner non seulement l'URL de la page où se trouve l'image, mais aussi le lien direct de l'image et le fichier image lui-même une fois téléchargé. Ce n'est pas vraiment nécessaire, mais c'est ce que je fais. Je recommande aussi d'archiver l'URL de la page où l'image a été trouvée ainsi que le lien direct avec Wayback Machine et Archive.Today. Ensuite, renomme l'image téléchargée avec un nom logique et compréhensible (sauf si elle en a déjà un). Après, j'utilise souvent FileOptimizer pour réduire la taille du fichier autant que possible (uniquement avec une optimisation sans perte pour ne perdre aucune donnée (qualité)) afin qu'il prenne moins de place et s'envoie et se télécharge plus vite.
- Bon, l'heure de l'upscaling ! Enfin, peut-être. Vois-tu, parfois une image demande au moins un petit ajustement avant d'être upscalée. Si l'image a beaucoup de bruit (que ce soit du bruit chromatique , du bruit de luminance, etc.) l'upscaler peut (mais pas forcément, ça dépend de chaque cas) avoir du mal à distinguer le bruit des détails, ce qui peut donner des upscales bizarres. Tu peux donc essayer de débruiter l'image avant d'upscaler. Parfois le débruitage donne un moins bon upscale, c'est à toi de comparer. Dans d'autres cas, l'image a peut-être déjà été upscalée de façon classique. Là, essaie de regarder l'image à différents niveaux de zoom inférieurs à 100 % jusqu'à trouver le 'sweet spot' où tu ne remarques plus les artefacts d'un upscaling classique, comme les blocs ou l'aliasing. 50 % de zoom est un bon point de départ. Une fois le 'sweet spot' trouvé, réduis l'image à ce même niveau (parfois le mieux est de réduire par un simple redimensionnement, parfois tu auras de meilleurs résultats avec un rééchantillonnage comme lanczos ou bicubique, etc.). Comme pour le débruitage avant l'upscale, ça ne donne pas toujours de meilleurs résultats, donc compare. D'autres choses qui pourraient permettre un meilleur upscale : flouter un peu l'image, ou peut-être l'accentuer, ou même parfois upscaler/rééchantillonner l'image peut aider.
- Une fois l'image chargée dans l'upscaler, les réglages parfaits choisis et que tu es sur le point d'upscaler, on peut te proposer de choisir le format et la qualité d'export. Je recommande d'exporter dans un format sans perte comme le PNG pour que les retouches ultérieures aient un meilleur effet. Ok, tu as upscalé l'image et obtenu un résultat correct, et maintenant ? Tu pourrais poster le résultat tel quel, sans autre retouche, c'est très bien, mais de petits ajustements supplémentaires peuvent donner un rendu plus joli. Il arrive qu'il y ait du bruit dans un upscale, même si la source n'en avait pas l'air. Dans ce cas, mieux vaut le débruiter au mieux pour que ça rende un peu mieux. L'image (en entier ou seulement certaines parties) peut aussi paraître un peu, comment dire, lisse ? Plastique ? Quelque chose comme ça. Dans ce cas, un moyen simple de l'améliorer est d'ajouter du grain à l'image. Perso je préfère un grain fin à un grain épais, mais tu fais comme tu veux. Le grain ajoute une sorte de 'faux détail' et donne à mon avis un peu plus de texture à l'image. Il peut aussi être bénéfique de réduire l'image, car l'upscale peut avoir des détails bizarres, et la réduction atténue leur visibilité tout en gardant les améliorations visuelles. Si tu veux combiner débruitage, réduction et grain, l'ordre est le suivant : Débruitage → Réduction → Grain.
- L'image pourrait aussi nécessiter (ou au moins bénéficier de) quelques retouches manuelles avec Photoshop ou GIMP. Cependant, je n'ai actuellement aucune expérience là-dedans, mais ça pourrait changer à l'avenir et me permettre d'ajouter une petite section sur la retouche manuelle de l'upscale. Cela dit, ton upscale devrait maintenant être terminé. Avant de poster, tu peux envisager de réduire l'image ou de la compresser avec perte, car les upscales peuvent parfois donner des fichiers particulièrement gros (potentiellement des centaines de mégaoctets pour une seule image). Ce que je préfère faire, c'est poster l'image source (sans aucune modification et dans son format d'origine, mais optimisée sans perte), une version WEBP sans perte de l'upscale (car elle compresse généralement mieux que le PNG), une version JPG avec perte et un PNG sans perte (pour sa compatibilité). Comme ça, les gens ont l'image source et peuvent choisir la version de l'upscale qu'ils veulent : un JPG avec perte au poids minimal, un WEBP sans perte plus léger que le PNG, ou un PNG sans perte mieux supporté et plus compatible que le WEBP.
- Je suis sûr que vous savez tous ce qu'est l'upscaling, mais tout le monde ne sait pas trop ce qu'est l'upscaling par IA et comment l'utiliser. L'IA dont je parle est un réseau de neurones artificiels de deep learning, c'est-à-dire en gros une IA entraînée sur un énorme jeu de données (ici, des tonnes d'images) pour 'apprendre'. Résultat : une IA capable d'upscaler une image avec plus de précision, en apportant des détails que l'upscaling classique ne peut pas offrir.
- Upscaler des images n'a rien de magique. Par exemple, si un livre dans l'image porte un texte totalement illisible, l'upscaling ne va pas le réparer. C'est simplement une façon d'augmenter la résolution des images de manière esthétique, avec plus de netteté, de clarté et de réalisme que l'upscaling classique. Ça ne veut pas dire que ça ne vaut pas le coup d'utiliser l'upscaling par IA plutôt que l'upscaling/rééchantillonnage classique, parce que si. Les résultats ne sont peut-être pas toujours bons, mais ils ne sont certainement pas toujours mauvais non plus, et ça ne fera que s'améliorer avec le temps. Parfois une image est si bien upscalée qu'elle est quasi parfaite. En plus, l'upscaling par IA peut aussi servir à nettoyer une image du bruit et des artefacts de compression, donc même si tu n'as pas besoin ou envie d'augmenter la résolution, il y a d'autres avantages possibles.
- Je vais fournir une courte liste d'options d'upscaling avec le prix, la plateforme sur laquelle elles sont disponibles et les limites d'upscaling. Je n'évaluerai pas la qualité des upscales, d'une part parce que c'est assez subjectif, et d'autre part parce que je n'ai pas tout testé ici. Qui sait, je le ferai peut-être un jour et je mettrai les images pour comparer, mais peut-être pas, ça dépendra de ce que je déciderai.
- Certaines options sont en ligne, ce qui est pratique : on peut upscaler avec à peu près n'importe quel appareil ayant un navigateur correct et une connexion internet. Les inconvénients : soit les capacités sont limitées, soit il faut un abonnement, et ça nécessite une connexion internet. Ce n'est peut-être pas la meilleure option pour ceux qui ont une connexion lente, instable ou plafonnée. Et puis on ne sait jamais ce qu'ils font vraiment de tes images, donc si tu as des photos sensibles à upscaler, mieux vaut peut-être choisir une option hors ligne.
- Certaines sont téléchargeables en tant que logiciel, ce qui a généralement l'avantage de ne pas nécessiter d'internet et d'avoir moins, voire aucune restriction d'upscaling. Les inconvénients : le logiciel doit exister pour ta plateforme, et il te faut un appareil capable de le faire tourner, car contrairement à une option en ligne où d'autres serveurs s'occupent de la charge de calcul, c'est maintenant ton appareil qui fait tout le travail.
| Gigapixel AI | Lets Enhance | Waifu2x | Vertexshare Image Upscaler | |
| Prix | $99.99 | 5 premières images gratuites, abonnement à partir de $12 par mois pour upscaler 100 images par mois | Gratuit | Gratuit |
| Limite d'upscaling | 32,000 x 32,000 | 64 mégapixels pour les 5 images gratuites ; 256 mégapixels avec un abonnement normal ; 500 mégapixels avec un abonnement business (à partir de $72 par mois) | Impossible d'envoyer des images de plus de 1,500 x 1,500 ou 5 Mo. Options d'upscaling : 1.6x ou 2x | Impossible d'envoyer autre chose que du JPG ou du PNG, et rien de plus grand que 1,200 x 1,200 ou 5 Mo. Seulement 2x et 4x en options d'upscaling |
| Web | N | O | O | O |
| Windows | O | N | O* | N |
| Mac | O | N | O* | N |
| Linux | O** | N | O* | N |
| App mobile | N | N | O* | N |
*Le code source est disponible sur GitHub
**Via WINE
- Ce ne sont pas les seules options, il y en a plein d'autres, donc si rien ne te botte, cherche quelque chose comme "AI Image Upscaling Software". Tu peux aussi jeter un œil à ce link qui donne une liste d'autres options avec leurs avantages et inconvénients. Perso j'utilise Gigapixel AI parce qu'il tourne sur ma propre machine et n'a pas de limite majeure à ma connaissance, à part l'impossibilité d'upscaler une image au-delà de 32,000 x 32,000, ce qui ne me pose aucun problème. Si tu as besoin ou envie d'upscaler une image au-delà d'un gigapixel pour une raison quelconque, tu peux toujours découper l'image en morceaux plus petits, les upscaler, puis les fusionner et les assembler.
- Une fois que tu as choisi ce que tu vas utiliser pour upscaler, il y a des choses à faire pour obtenir le meilleur résultat. D'abord, utilises-tu la meilleure version de l'image que tu vas upscaler ? Parce que, comme tu le sais, il existe en gros plusieurs copies de presque chaque photo en ligne, et elles n'ont pas toutes la même qualité. Donc si tu as pris ton image sur internet et que ce n'est pas une photo unique ni une capture d'écran que tu as faite d'une image précise d'une vidéo, tu devrais peut-être tenter une recherche d'image inversée. Il y a plusieurs options, comme Google, Bing, TinEye, etc., pour faire une recherche d'image inversée (ça peut valoir le coup d'en utiliser plusieurs, car elles n'affichent pas toujours les mêmes résultats). Tu peux aussi utiliser une extension de navigateur pour t'aider, comme Search by Image. N'oublie pas que ce n'est pas parce qu'une image est plus ancienne, a une meilleure résolution ou un fichier plus lourd que cette version est de meilleure qualité. Pour augmenter tes chances de trouver l'image originale, tu peux déterminer qui/quoi est montré, quand/où elle a pu être prise/postée, etc., et utiliser ces infos pour retrouver une meilleure version, voire la source elle-même. Par exemple, l'image vient peut-être d'un shooting précis ou d'un événement. Le savoir peut aider.
- Une fois que tu es sûr d'avoir la meilleure copie de l'image à upscaler (ou au moins la meilleure que tu puisses trouver), tu peux t'occuper des données et de l'archivage. Ce que je veux dire : pour être sûr que la photo que tu vas utiliser est correcte et restera disponible pour tout le monde, je recommande quelques trucs. D'abord, utilise VirusTotal pour scanner non seulement l'URL de la page où se trouve l'image, mais aussi le lien direct de l'image et le fichier image lui-même une fois téléchargé. Ce n'est pas vraiment nécessaire, mais c'est ce que je fais. Je recommande aussi d'archiver l'URL de la page où l'image a été trouvée ainsi que le lien direct avec Wayback Machine et Archive.Today. Ensuite, renomme l'image téléchargée avec un nom logique et compréhensible (sauf si elle en a déjà un). Après, j'utilise souvent FileOptimizer pour réduire la taille du fichier autant que possible (uniquement avec une optimisation sans perte pour ne perdre aucune donnée (qualité)) afin qu'il prenne moins de place et s'envoie et se télécharge plus vite.
- Bon, l'heure de l'upscaling ! Enfin, peut-être. Vois-tu, parfois une image demande au moins un petit ajustement avant d'être upscalée. Si l'image a beaucoup de bruit (que ce soit du bruit chromatique , du bruit de luminance, etc.) l'upscaler peut (mais pas forcément, ça dépend de chaque cas) avoir du mal à distinguer le bruit des détails, ce qui peut donner des upscales bizarres. Tu peux donc essayer de débruiter l'image avant d'upscaler. Parfois le débruitage donne un moins bon upscale, c'est à toi de comparer. Dans d'autres cas, l'image a peut-être déjà été upscalée de façon classique. Là, essaie de regarder l'image à différents niveaux de zoom inférieurs à 100 % jusqu'à trouver le 'sweet spot' où tu ne remarques plus les artefacts d'un upscaling classique, comme les blocs ou l'aliasing. 50 % de zoom est un bon point de départ. Une fois le 'sweet spot' trouvé, réduis l'image à ce même niveau (parfois le mieux est de réduire par un simple redimensionnement, parfois tu auras de meilleurs résultats avec un rééchantillonnage comme lanczos ou bicubique, etc.). Comme pour le débruitage avant l'upscale, ça ne donne pas toujours de meilleurs résultats, donc compare. D'autres choses qui pourraient permettre un meilleur upscale : flouter un peu l'image, ou peut-être l'accentuer, ou même parfois upscaler/rééchantillonner l'image peut aider.
- Une fois l'image chargée dans l'upscaler, les réglages parfaits choisis et que tu es sur le point d'upscaler, on peut te proposer de choisir le format et la qualité d'export. Je recommande d'exporter dans un format sans perte comme le PNG pour que les retouches ultérieures aient un meilleur effet. Ok, tu as upscalé l'image et obtenu un résultat correct, et maintenant ? Tu pourrais poster le résultat tel quel, sans autre retouche, c'est très bien, mais de petits ajustements supplémentaires peuvent donner un rendu plus joli. Il arrive qu'il y ait du bruit dans un upscale, même si la source n'en avait pas l'air. Dans ce cas, mieux vaut le débruiter au mieux pour que ça rende un peu mieux. L'image (en entier ou seulement certaines parties) peut aussi paraître un peu, comment dire, lisse ? Plastique ? Quelque chose comme ça. Dans ce cas, un moyen simple de l'améliorer est d'ajouter du grain à l'image. Perso je préfère un grain fin à un grain épais, mais tu fais comme tu veux. Le grain ajoute une sorte de 'faux détail' et donne à mon avis un peu plus de texture à l'image. Il peut aussi être bénéfique de réduire l'image, car l'upscale peut avoir des détails bizarres, et la réduction atténue leur visibilité tout en gardant les améliorations visuelles. Si tu veux combiner débruitage, réduction et grain, l'ordre est le suivant : Débruitage → Réduction → Grain.
- L'image pourrait aussi nécessiter (ou au moins bénéficier de) quelques retouches manuelles avec Photoshop ou GIMP. Cependant, je n'ai actuellement aucune expérience là-dedans, mais ça pourrait changer à l'avenir et me permettre d'ajouter une petite section sur la retouche manuelle de l'upscale. Cela dit, ton upscale devrait maintenant être terminé. Avant de poster, tu peux envisager de réduire l'image ou de la compresser avec perte, car les upscales peuvent parfois donner des fichiers particulièrement gros (potentiellement des centaines de mégaoctets pour une seule image). Ce que je préfère faire, c'est poster l'image source (sans aucune modification et dans son format d'origine, mais optimisée sans perte), une version WEBP sans perte de l'upscale (car elle compresse généralement mieux que le PNG), une version JPG avec perte et un PNG sans perte (pour sa compatibilité). Comme ça, les gens ont l'image source et peuvent choisir la version de l'upscale qu'ils veulent : un JPG avec perte au poids minimal, un WEBP sans perte plus léger que le PNG, ou un PNG sans perte mieux supporté et plus compatible que le WEBP.
