Menu

Mieux que JPEG ? Un chercheur découvre que Stable Diffusion peut compresser des images

28 septembre 2022 - Technologies
Mieux que JPEG ?  Un chercheur découvre que Stable Diffusion peut compresser des images


Une illustration de la compression
Agrandir / Ces blocs colorés et déchiquetés sont exactement à quoi ressemble le concept de compression d’image.

Benj Edwards / Ars Technica

La semaine dernière, l’ingénieur logiciel suisse Matthias Bühlmann a découvert que le modèle de synthèse d’images populaire Stable Diffusion pouvait compresser des images bitmap existantes avec moins d’artefacts visuels que JPEG ou WebP à des taux de compression élevés, bien qu’il y ait des mises en garde importantes.

Stable Diffusion est un modèle de synthèse d’images IA qui génère généralement des images basées sur des descriptions textuelles (appelées « invites »). Le modèle d’IA a appris cette capacité en étudiant des millions d’images extraites d’Internet. Au cours du processus de formation, le modèle établit des associations statistiques entre les images et les mots associés, en créant une représentation beaucoup plus petite des informations clés sur chaque image et en les stockant sous forme de « poids », qui sont des valeurs mathématiques qui représentent ce que le modèle d’image AI sait, afin de parler.

Lorsque Stable Diffusion analyse et « compresse » les images sous forme de poids, elles résident dans ce que les chercheurs appellent « l’espace latent », ce qui est une façon de dire qu’elles existent comme une sorte de potentiel flou qui peut être réalisé en images une fois qu’elles sont décodées. . Avec Stable Diffusion 1.4, le fichier de poids fait environ 4 Go, mais il représente des connaissances sur des centaines de millions d’images.

Exemples d'utilisation de Stable Diffusion pour compresser des images.
Agrandir / Exemples d’utilisation de Stable Diffusion pour compresser des images.

Alors que la plupart des gens utilisent Stable Diffusion avec des invites de texte, Bühlmann a coupé l’encodeur de texte et a plutôt forcé ses images à travers le processus d’encodeur d’image de Stable Diffusion, qui prend une image 512 × 512 de faible précision et la transforme en une image latente 64 × 64 de plus haute précision. représentation de l’espace. À ce stade, l’image existe avec une taille de données beaucoup plus petite que l’original, mais elle peut toujours être agrandie (décodée) en une image 512 × 512 avec d’assez bons résultats.

Lors de l’exécution de tests, Bühlmann a découvert qu’une nouvelle image compressée avec Stable Diffusion semblait subjectivement meilleure à des taux de compression plus élevés (taille de fichier plus petite) que JPEG ou WebP. Dans un exemple, il montre une photo d’un lama (à l’origine 768 Ko) qui a été compressée à 5,68 Ko en utilisant JPEG, 5,71 Ko en utilisant WebP et 4,98 Ko en utilisant Stable Diffusion. L’image de diffusion stable semble avoir plus de détails résolus et moins d’artefacts de compression évidents que celles compressées dans les autres formats.

Exemples expérimentaux d'utilisation de Stable Diffusion pour compresser des images.  Les résultats SD sont à l'extrême droite.
Agrandir / Exemples expérimentaux d’utilisation de Stable Diffusion pour compresser des images. Les résultats SD sont à l’extrême droite.

Cependant, la méthode de Bühlmann présente actuellement des limitations importantes : elle n’est pas bonne avec les visages ou le texte, et dans certains cas, elle peut en fait halluciner des caractéristiques détaillées de l’image décodée qui n’étaient pas présentes dans l’image source. (Vous ne voulez probablement pas que votre compresseur d’image invente des détails dans une image qui n’existe pas.) De plus, le décodage nécessite le fichier de poids de diffusion stable de 4 Go et un temps de décodage supplémentaire.

Bien que cette utilisation de Stable Diffusion ne soit pas conventionnelle et soit plus un hack amusant qu’une solution pratique, elle pourrait potentiellement indiquer une nouvelle utilisation future des modèles de synthèse d’images. Le code de Bühlmann peut être trouvé sur Google Colab, et vous trouverez plus de détails techniques sur son expérience dans son article sur Towards AI.