Récemment, la diffusion stable est devenue une direction de recherche émergente. Un blogueur nommé Matthias Bühlmann a tenté d'explorer expérimentalement la puissance de ce modèle et a découvert que Stable Diffusion est un codec de compression d'image avec perte très puissant. Il a écrit un blog décrivant ce processus d'analyse expérimentale. Ce qui suit est le texte original du blog.
Tout d'abord, Matthias Bühlmann donne les résultats de compression de la méthode de diffusion stable et JPG et WebP dans des conditions de facteur de compression élevé. Tous les résultats sont en résolution de 512x512 pixels :
Figurine de paysage de San Francisco, de. de gauche à droite : JPG (6,16 Ko), WebP (6,80 Ko), Diffusion Stable : (4,96 Ko).
Candy Shop, de gauche à droite : JPG (5,68 Ko), WebP (5,71 Ko), Stable Diffusion (4,98 Ko).
Photos d'animaux, de gauche à droite : JPG (5,66 Ko), WebP (6,74 Ko), Stable Diffusion (4,97 Ko).
Ces exemples montrent clairement que la compression d'images avec Stable Diffusion préserve une meilleure qualité d'image avec des fichiers de plus petite taille par rapport à JPG et WebP.
Matthias Bühlmann a analysé le principe de fonctionnement de la diffusion stable qui utilise trois réseaux de neurones artificiels entraînés en série :
VAE encode et décode les images dans l'espace image en une représentation spatiale sous-jacente. La représentation spatiale latente de l'image source (512 x 512, 3x8 ou 4x8 bits) aura une résolution inférieure (64 x 64) et une précision supérieure (4x32 bits).
VAE apprend tout seul pendant le processus de formation. Au fur et à mesure que le modèle est entraîné, la représentation de l'espace latent des différentes versions du modèle peut sembler différente. Par exemple, la représentation de l'espace latent de Stable Diffusion v1.4 est la suivante. (remappé en image couleur à 4 canaux) :
Lorsque les caractéristiques latentes sont ré-agrandies et interprétées comme des valeurs de couleur (en utilisant le canal alpha), les principales caractéristiques de l'image sont toujours visibles, et le VAE code également les fonctionnalités à haute résolution en valeurs de pixels.
Par exemple, un aller-retour d'encodage/décodage VAE donne le résultat suivant :
Il est à noter que cet aller-retour n'est pas sans perte. Par exemple, les mots blancs sur la bande bleue de l’image sont légèrement moins lisibles après décodage. Le VAE du modèle Stable Diffusion v1.4 n'est généralement pas très efficace pour représenter les petits textes et les visages.
Nous savons que l'objectif principal de Stable Diffusion est de générer des images basées sur des descriptions textuelles, ce qui nécessite que le modèle opère sur la représentation spatiale latente de l'image. Le modèle utilise un U-Net entraîné pour débruiter de manière itérative l'image spatiale latente, produisant ce qu'il « voit » (prédit) dans le bruit, de la même manière que nous voyons parfois les nuages sous forme de formes ou de visages. Lors de l'étape itérative de débruitage, un troisième modèle ML (encodeur de texte) guide U-Net pour essayer de voir différentes informations.
Matthias Bühlmann a analysé comment la représentation latente générée par la VAE peut être efficacement compressée. Il a constaté que l'échantillonnage de la représentation latente dans VAE ou l'application de méthodes de compression d'image avec perte existantes à la représentation latente dégrade considérablement la qualité de l'image reconstruite, tandis que le processus de décodage VAE semble être relativement robuste à la qualité de la représentation latente.
Matthias Bühlmann a quantifié la représentation latente de la virgule flottante aux entiers non signés de 8 bits et n'a trouvé que de très petites erreurs de reconstruction. Comme le montre la figure ci-dessous, à gauche : représentation potentielle à virgule flottante de 32 bits ; au milieu : vérité terrain ; à droite : représentation potentielle entière de 8 bits.
Il a également constaté que grâce à une quantification plus poussée via des algorithmes de palette et de tramage, les résultats obtenus seront étonnamment bons. Cependant, lors du décodage directement à l'aide de VAE, la représentation palettisée entraînera des artefacts visibles :
Gauche : représentation latente de 32 bits ; Milieu : représentation latente quantifiée de 8 bits ; Droite : bande palettisée ; Représentation latente 8 bits avec tramage Floyd-Steinberg
La représentation palettisée avec tramage Floyd-Steinberg introduit du bruit, déformant les résultats du décodage. Matthias Bühlmann a donc utilisé U-Net pour supprimer le bruit provoqué par le jitter. Après 4 itérations, le résultat de la reconstruction est visuellement très proche de la version non quantifiée :
Résultat de la reconstruction (à gauche : représentation palettisée avec gigue de Floyd-Steinberg ; au milieu : après quatre itérations Bruit ; à droite : Ground Truth) .
Bien que le résultat soit très bon, il introduit certains artefacts, tels que l'ombre brillante sur le symbole central ci-dessus.
Bien que subjectivement, les résultats des images compressées Stable Diffusion soient bien meilleurs que ceux de JPG et WebP, du point de vue du PSNR, SSIM et d'autres indicateurs, Stable Diffusion n'a aucun avantage évident.
Comme le montre la figure ci-dessous, bien que la diffusion stable en tant que codec soit bien meilleure que les autres méthodes pour conserver la granularité de l'image, des fonctionnalités telles que la forme des objets dans l'image peuvent changer en raison d'artefacts de compression.
Gauche : compression JPG ; Milieu : vérité terrain ; droite : compression de diffusion stable.
Il convient de noter que le modèle Stable Diffusion v1.4 actuel ne peut pas bien conserver les informations textuelles et les traits du visage avec de très petites polices pendant le processus de compression, mais le modèle Stable Diffusion v1.5 fait du bon travail en face. génération Il y a eu des améliorations.
Gauche : Vérité terrain ; Milieu : Après l'aller-retour VAE (caractéristiques latentes de 32 bits) ; Droite : Résultats décodés à partir de caractéristiques latentes de 8 bits débruitées en palette.
Après la publication du blog, l’analyse expérimentale de Matthias Bühlmann a suscité la discussion de tous.
Matthias Bühlmann lui-même estime que l'effet de compression d'image de Stable Diffusion est meilleur que prévu, et U-Net semble être capable d'éliminer efficacement le bruit introduit par le tramage. Cependant, les futures versions du modèle Stable Diffusion pourraient ne plus disposer de cette fonctionnalité de compression d’image.
Cependant, certains internautes se sont interrogés : "VAE lui-même est utilisé pour la compression d'images." Par exemple, la méthode de compression d'image basée sur Transformer TIC utilise l'architecture VAE, donc l'expérience de Matthias Bühlmann semble exagérée.
Qu'en penses-tu ?
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!