Comment fonctionne un réseau neuronal pour générer des images ? Nous l’expliquons en termes simples dans une leçon.
Automatique traduire
Dans cette leçon express, nous vous proposerons une approche un peu inhabituelle de la matière, mais croyez-moi, elle est testée et c’est mieux ainsi. En lisant attentivement tout ce qui suit, vous pourrez, en 45 minutes (soit la durée d’une leçon classique), acquérir toutes les connaissances de base et comprendre les principaux sujets et leurs liens.
Tout ce qui est décrit ici concerne la génération d’images, et si vous n’avez pas peur, en 45 minutes vous aurez une bonne compréhension du sujet, sans même aborder les détails techniques du fonctionnement réel de toutes ces choses très compliquées.
Comment fonctionne le modèle de diffusion?
Un modèle de diffusion est une méthode qui « apprend » à transformer un bruit aléatoire en images significatives (ou autres données) par un « nettoyage » progressif. Imaginez prendre une belle photo, y ajouter progressivement du bruit jusqu’à ce qu’elle ne soit plus qu’un flou grisâtre, puis apprendre à supprimer ce bruit étape par étape pour restaurer l’image. C’est en gros comme cela que fonctionne la diffusion.
Comment cela se passe étape par étape :
Apprentissage par le bruit : tout d’abord, le modèle prend des images réelles (provenant par exemple d’un vaste ensemble de données) et les « détruit » progressivement en ajoutant du bruit. Cette opération s’effectue en plusieurs étapes, par exemple 1 000 fois, jusqu’à ce que l’image soit constituée de bruit aléatoire pur. Le modèle mémorise la manière dont le bruit est ajouté et la manière dont l’image est « détruite ».
Entraînement au bruit à rebours : le modèle apprend alors à inverser le processus : il prend le bruit et le supprime étape par étape pour restaurer l’image d’origine. Il analyse l’image bruitée à chaque étape et prédit comment supprimer une partie du bruit pour se rapprocher de la vue d’origine. C’est comme résoudre un puzzle en supprimant les pièces inutiles.
Génération du bruit vers l’image : Une fois le modèle entraîné, on commence avec du bruit pur (juste des nombres aléatoires) et on lui demande de le « nettoyer ». Il le fait progressivement, étape par étape (par exemple, 50 à 1 000 étapes), jusqu’à obtenir une image significative. Mais voici qu’intervient CLIP : il indique au modèle ce que doit être exactement cette image (par exemple, « le chat chapeauté »), guidant le processus de nettoyage.
Travail en espace latent : dans les systèmes modernes comme la diffusion stable, ce processus ne se produit pas directement avec les pixels, mais sous une forme compressée (latente), créée et déchiffrée par l’algorithme VAE. Cela accélère le travail et le rend plus efficace.
Une analogie simple :
Imaginez un sculpteur partant d’un morceau d’argile ressemblant à une masse informe (bruit). Il lui donne progressivement forme, en supprimant l’excédent et en ajoutant des détails jusqu’à obtenir une statue. Le modèle de diffusion fait la même chose, mais avec du bruit au lieu de l’argile, et « sculpte » l’image à partir d’une invite textuelle de CLIP.
Pourquoi cela fonctionne-t-il?
L’avantage des modèles de diffusion est qu’ils améliorent l’image étape par étape, plutôt que de chercher à créer une image parfaite à partir de rien. Le résultat est ainsi meilleur et plus détaillé qu’avec d’autres méthodes.
Pas à pas:
- Le modèle de diffusion prend le bruit et le transforme progressivement en image.
- CLIP définit la direction (« quoi dessiner »).
- VAE permet de traduire le résultat de la forme compressée vers l’image finale.
Dans l’ensemble, c’est comme une équipe bien coordonnée : CLIP est le réalisateur, diffusion est l’artiste et VAE est celui qui montre l’œuvre finie au public.
AGRAFE
CLIP est un modèle créé par OpenAI qui aide les réseaux neuronaux à « comprendre » le contenu d’une image ou d’un texte et à relier les deux. Lorsqu’un réseau neuronal (comme DALL E ou Stable Diffusion) génère une image, CLIP agit comme un « traducteur » entre le texte saisi (comme « chat chapeauté ») et ce que le réseau doit dessiner.
Voici comment cela fonctionne à un niveau simple :
- Vous donnez une description : Par exemple, «un chien joue avec un ballon sur la plage».
- CLIP analyse le texte : il «désassemble» vos mots et les transforme en une sorte de code numérique (embedding) qui reflète le sens de la description.
- Lien vers l’image : Ce code est transmis au réseau neuronal génératif. Il l’utilise comme « instruction » et commence à dessiner une image qui doit correspondre à cette description.
- Vérification du résultat : CLIP analyse l’image obtenue et la compare à votre requête textuelle. Si l’image n’est pas tout à fait correcte (par exemple, un chat au lieu d’un chien), le réseau ajuste son fonctionnement pour mieux satisfaire CLIP.
En substance, CLIP est comme les « yeux et les oreilles » du système : il aide le réseau neuronal à comprendre vos besoins et garantit que l’image corresponde le plus fidèlement possible à votre requête. Sans lui, le réseau tirerait quelque chose au hasard, sans comprendre ce qu’on attend de lui.
VAE
VAE est un autre outil important des réseaux neuronaux, notamment dans des systèmes comme la diffusion stable. Tandis que CLIP est responsable de la liaison entre le texte et les images, VAE aide le réseau neuronal à « compresser » et « décompresser » les images pour les rendre plus faciles et plus rapides à manipuler.
Voici comment cela fonctionne :
- Compression d’image : VAE prend une image (ou tout autre élément que le réseau tente de créer) et la « comprime » en un ensemble compact de nombres, appelé représentation latente. Imaginez-la comme une archive ZIP : tout ce qui est important est conservé, mais l’espace est réduit.
- Travailler sous forme compressée : un réseau génératif (comme celui qui dessine une image) ne fonctionne pas directement avec un grand nombre de pixels, mais avec ce code compressé. Cela accélère considérablement le processus, car il est plus facile de traiter un petit nombre de nombres que des millions de pixels.
- Décompression dans une image : Une fois que le réseau a fini de «dessiner» sous cette forme compressée (en suivant les instructions de CLIP), VAE prend ce code et le «décompresse» dans une image complète avec des couleurs, des détails et tout.
- Ajout de variantes : Un autre avantage du VAE est qu’il permet d’ajouter du caractère aléatoire. Cela permet au réseau de générer différentes versions d’une même idée (comme des poses légèrement différentes pour un chien avec une balle) plutôt que la même image à chaque fois.
En termes simples, la VAE est comme un « packer » et un « dépacker » qui aide le réseau neuronal à travailler efficacement et à transformer des idées abstraites en images magnifiques. Sans elle, le processus serait lent et compliqué, et le résultat pourrait être moins esthétique.
En bref : CLIP vous indique « quoi dessiner » et VAE vous aide à « comment dessiner et montrer ». Ensemble, ils créent la magie de la génération d’images !
L’EVA ne transforme pas la représentation latente avant la génération, mais participe au processus «des deux côtés». Voici son fonctionnement étape par étape :
- Commencer par le bruit : la génération ne démarre pas avec une image finie, mais avec un « bruit » aléatoire – un simple ensemble de nombres aléatoires ressemblant à du bruit statique sur un vieux téléviseur. Ce bruit est déjà compressé (latent), car son traitement direct sous forme de pixels serait trop difficile.
- Le rôle de CLIP : Vous saisissez une requête textuelle (par exemple «chat dans le chapeau»), et CLIP la transforme en un code numérique (incorporation) qui précise le sens de génération.
- Génération d’espace latent : Une partie spécifique du réseau (généralement un modèle de diffusion) prend ce bruit sous forme latente et le « nettoie » progressivement pour obtenir une image significative. Cette opération est réalisée selon les instructions de CLIP. Tout cela se produit sous forme compressée dans ce même espace latent.
- VAE en sortie : Lorsque le modèle de diffusion a terminé son travail et a reçu la représentation latente finale (le code compressé qui «ressemble» déjà au chat dans le chapeau), VAE prend ce code et le «décompresse» dans une image à part entière avec des pixels, des couleurs et des détails.
Autrement dit, VAE ne compresse rien avant la génération. Au départ, nous disposons déjà d’un bruit compressé, et la génération s’effectue dans ce format compressé (latent). VAE est principalement nécessaire à l’étape finale : pour transformer le résultat du travail du réseau en une image visuellement attrayante. VAE contribue également à l’entraînement initial du réseau, en montrant comment « compresser » des images réelles dans l’espace latent, afin que le réseau comprenne ce qu’il doit utiliser.
Pour le dire simplement : la génération se produit sous une forme comprimée (dans l’espace latent), et le VAE la « déplie » ensuite en une image complète. La magie du « dessin » elle-même est l’œuvre du modèle de diffusion, et non du VAE.
Raffineur
Dans le contexte des réseaux de neurones génératifs comme la diffusion stable, un « raffineur » est un modèle supplémentaire utilisé pour améliorer la qualité des images déjà générées. Expliquons-le simplement : de quoi il s’agit et pourquoi il est nécessaire.
Qu’est-ce que Refiner?
Le raffineur est la deuxième étape du processus de génération d’images. Il extrait les données brutes du modèle de base et les affine. Le modèle de base (par exemple, Stable Diffusion XL Base) crée une image initiale à partir du bruit, guidée par une requête textuelle (utilisant CLIP et un modèle de diffusion). Cependant, ce résultat peut manquer de clarté, présenter des détails insuffisants ou des erreurs mineures. C’est là qu’intervient le raffineur : il « peaufine » l’image en ajoutant des détails, en améliorant la qualité et en supprimant le bruit excessif.
Dans des systèmes comme Stable Diffusion XL (SDXL), le processus est souvent divisé en deux étapes :
- Modèle de base : génère l’image de base sous forme compressée (latente).
- Raffineur : Prend ce résultat intermédiaire et l’amène à sa forme finale, rendant l’image plus nette et plus réaliste.
Comment fonctionne Refiner?
Refiner est également un modèle de diffusion, mais il est spécialement entraîné sur des données de haute qualité et fonctionne avec moins de bruit. Il reprend la représentation latente (code compressé) du modèle de base et poursuit le processus de « nettoyage » du bruit, en privilégiant les détails fins et la haute résolution. Une technique comme SDEdit (img2img) est parfois utilisée pour améliorer encore le résultat.
En termes simples, si le modèle de base dessine une esquisse approximative, alors le Refiner est comme un artiste qui prend un pinceau et ajoute des lignes fines, des ombres et des textures.
Pourquoi est-ce nécessaire?
- Qualité améliorée : Sans Refiner, les images peuvent paraître floues, manquer de détails ou présenter des artefacts étranges. Refiner les rend plus nettes et plus professionnelles.
- Gain de temps : Le modèle de base crée rapidement la base, et le raffineur consacre des efforts supplémentaires uniquement au raffinement, ce qui optimise le processus.
- Flexibilité : Vous pouvez utiliser Refiner séparément, par exemple, pour améliorer des images prêtes à l’emploi via img2img, si vous devez corriger quelque chose.
- Spécialisation : Refiner est souvent adapté à des tâches spécifiques, telles que l’augmentation de la résolution ou l’ajout de réalisme, ce qui en fait un ajout utile.
Exemple:
Imaginons que vous ayez demandé « chat avec un chapeau ». Le modèle de base vous donne quelque chose qui ressemble à un chat avec un chapeau, mais avec des bords et des détails flous. Refiner analyse cela, affine les lignes, rend la fourrure du chat moelleuse et le chapeau présente des plis nets. Le résultat final est une image plus belle et plus détaillée.
Est-ce toujours nécessaire?
Pas forcément. Dans certains cas, le modèle de base donne un bon résultat, surtout si la demande est simple ou si vous n’avez pas besoin de détails excessifs. Mais si vous recherchez une qualité optimale, notamment pour des scènes complexes ou en haute résolution, Refiner est la solution idéale pour passer à la vitesse supérieure.
En bref, Refiner est comme un filtre dans un éditeur de photos, mais intelligent et automatique. Il est indispensable pour améliorer et rendre vos photos plus professionnelles.
Paramètre cfg_scale (guidance_scale), échantillonneur, composants du planificateur
Ces paramètres sont importants dans les modèles génératifs et affectent la manière dont le réseau neuronal crée les images. Examinons-les un par un.
1. Échelle CFG (échelle de guidage sans classificateur)
Qu’est-ce que c’est ? C’est un paramètre qui contrôle la fréquence d’écoute du modèle par rapport à votre invite textuelle. L’échelle CFG est responsable de l’équilibre entre « créativité » et « précision ».
Comment ça marche?
- CFG faible (par exemple 1-5) : Le modèle est plus «imaginatif» et peut s’écarter de votre description, produisant quelque chose d’inattendu, mais parfois plus créatif.
- CFG élevé (par exemple 10 – 20) : le modèle suit strictement la demande, en essayant d’incarner aussi précisément que possible ce que vous avez écrit.
Exemple : Si vous écrivez «chat dans un chapeau» avec CFG = 3, le chat peut se retrouver dans un chapeau étrange ou sans chapeau du tout, mais avec CFG = 15, ce sera clairement un chat dans un chapeau, comme vous le souhaitiez.
Pourquoi est-ce nécessaire ? Pour contrôler la correspondance entre l’image et le texte.
2. Échantillonneur
De quoi s’agit-il ? Il s’agit d’un algorithme qui détermine comment le modèle « nettoie » le bruit étape par étape pour le transformer en image. Dans les modèles de diffusion, le processus de génération consiste en une suppression progressive du bruit, et c’est Sampler qui décide de la méthode à suivre.
Options populaires :
- DDIM (Denoising Diffusion Implicit Models) : Rapide et de haute qualité, mais parfois moins détaillé.
- Euler (ou Euler a) : Simple et rapide, donne des résultats cohérents.
- DPM++ (DPM++ 2M Karras) : Plus précis et détaillé, mais peut être plus lent.
- UniPC : Nouveau et optimisé, donne souvent une bonne qualité en moins d’étapes.
Comment ça marche ? Différents échantillonneurs passent du bruit à l’image de différentes manières. Certains le font plus rapidement, d’autres plus précisément, avec un style particulier.
Exemple : Avec DDIM, l’image peut être produite en 20 étapes, mais avec des défauts mineurs, tandis qu’avec DPM++, dans les mêmes 20 étapes, elle sera plus claire.
Pourquoi en avez-vous besoin ? Pour choisir la vitesse ou la qualité selon vos tâches.
3. Échelle d’orientation
Qu’est-ce que c’est ? C’est un autre nom pour l’échelle CFG (certains systèmes les distinguent, mais la plupart du temps, elles sont identiques). En cas de différence, l’échelle de guidage peut désigner l’influence du texte à chaque étape de génération.
Comment ça marche ? Similaire au CFG : plus la valeur est élevée, plus le modèle est « lié » à la requête. L’échelle de guidage est parfois utilisée comme paramètre supplémentaire pour affiner le réglage.
Exemple : Si CFG = 10 et Guidance Scale = 5, le modèle peut légèrement «adoucir» la rigueur du suivi du texte à certaines étapes.
Pourquoi est-ce nécessaire ? Pour un contrôle plus flexible du processus (mais c’est généralement un simple synonyme de CFG).
4. Planificateur
Qu’est-ce que c’est ? Il s’agit d’un « planificateur » qui contrôle la vitesse à laquelle le modèle supprime le bruit à différentes étapes de génération. Le planificateur fonctionne avec l’échantillonneur pour déterminer la quantité de bruit à supprimer à chaque étape.
Types:
- Linéaire : le bruit est supprimé uniformément à toutes les étapes.
- Cosinus : Plus d’attention au début et à la fin du processus pour améliorer les détails.
- Karras : Optimisé pour la qualité, le bruit est supprimé de manière inégale, en mettant l’accent sur les étapes importantes.
Comment ça marche ? Le planificateur décide si le modèle sera accéléré au début ou à la fin de la génération. Par exemple, Cosinus rend les premières étapes plus fluides et les dernières plus précises.
Exemple : avec Linear Scheduler, l’image peut paraître plus brute, tandis qu’avec Karras, elle peut paraître plus soignée.
Pourquoi est-ce nécessaire ? Pour équilibrer vitesse et qualité, et pour influencer le style du résultat.
Comment tout cela est-il lié?
Échelle CFG / Échelle de guidage : contrôle dans quelle mesure l’image «écoute» le texte.
Échantillonneur : détermine exactement comment le bruit est converti en image.
Planificateur : contrôle dans quel ordre et à quelle vitesse cela se produit.
Exemple simple :
Vous voulez le «chat dans le chapeau» :
- Échelle CFG = 12 : Le modèle dessine clairement le chat dans le chapeau.
- Sampler = Euler a : Génère rapidement une image en 30 étapes.
- Planificateur = Karras : Rend le processus fluide, en mettant l’accent sur les détails.
Résultat : un chat au chapeau net et bien détaillé.
Si vous définissez CFG sur 5, sélectionnez DDIM pour Sampler et Linear pour Scheduler, vous obtiendrez quelque chose de plus abstrait et brut, mais plus rapide.
Comment l’utiliser?
Expérimentez : essayez différentes combinaisons pour voir ce que vous aimez.
Valeurs typiques :
- Échelle CFG : 7 – 15 (moyenne d’or).
- Échantillonneur : Euler a ou DPM++ (choix populaires).
- Ordonnanceur : Karras ou Cosinus (pour la qualité).
Équilibre : un CFG élevé avec un échantillonneur rapide et un planificateur simple peut apporter de la clarté sans perdre de temps.
Comment fonctionne le modèle de diffusion en interne
Un modèle de diffusion est un type de réseau neuronal qui fonctionne selon le principe de « nettoyage » progressif du bruit. Sa tâche principale est d’apprendre à transformer le bruit aléatoire en données significatives (comme des images). Il se compose de plusieurs composants et processus clés. Voici son fonctionnement :
1. Idée de base : processus direct et inverse
Le modèle de diffusion fonctionne dans deux directions :
- Diffusion directe : prend des données réelles (comme une image) et y ajoute progressivement du bruit jusqu’à obtenir un bruit aléatoire pur. C’est comme prendre une photo et la rendre floue jusqu’à obtenir un flou gris.
- Diffusion inverse : apprend à recréer les données d’origine à partir de ce bruit en le supprimant progressivement. C’est comme si on reprenait le bruit et qu’on « peignait » l’image.
Le modèle ne se contente pas de «gâcher» et de «réparer» les images : il apprend à prédire comment supprimer le bruit afin de pouvoir finalement générer de nouvelles images à partir de zéro.
2. Architecture intérieure : U-Net
Le principal « travailleur » du modèle de diffusion est un réseau neuronal appelé U-Net. Il ressemble à la lettre « U » car les données sont d’abord compressées, puis décompressées. Voici son fonctionnement :
- Encodeur : Prend une image bruitée (ou une représentation latente si l’on utilise l’analyse d’images virtuelles) et l’analyse pour en extraire les caractéristiques importantes : forme, texture, couleur. C’est comme regarder une image et mémoriser les détails clés.
- U-Net « Bottom » : ici, les données sont compressées au maximum et le réseau décide comment les « réparer » en supprimant le bruit.
- Décodeur : Restaure progressivement l’image, en ajoutant des détails, mais avec moins de bruit.
L’avantage d’U-Net est qu’il préserve les informations de détail fines (grâce aux «ponts» entre compression et expansion), ce qui est important pour générer des images claires.
3. Des pas et du bruit
La diffusion fonctionne avec un nombre fixe d’étapes (par exemple 1 000). Chaque étape correspond à un niveau de bruit :
Dans le processus en avant, le modèle sait ajouter un peu plus de bruit à chaque étape (ceci est donné mathématiquement par une distribution, généralement normale, comme le bruit gaussien).
Dans le processus inverse, il apprend à prédire comment supprimer ce bruit. L’entrée est une image bruitée et un numéro de pas (pas de temps), afin que le réseau comprenne la quantité de bruit déjà présente et celle à supprimer.
4. Apprentissage : Comment apprend-elle?
Le modèle extrait des images réelles de l’ensemble de données. Il y ajoute du bruit à une étape aléatoire (par exemple, 500 sur 1 000). U-Net analyse l’image bruitée et tente de prédire à quoi ressemblerait l’étape précédente (par exemple, 499 avec un peu moins de bruit). L’erreur entre la prédiction et la réalité est utilisée pour « apprendre » au réseau à mieux éliminer le bruit. Cette opération est répétée des millions de fois sur différentes images et étapes. Finalement, le modèle devient expert en nettoyage du bruit et peut commencer avec du bruit pur (étape 1 000) pour arriver à l’image (étape 0).
5. Intégration avec le texte (CLIP)
Dans les modèles modernes comme la diffusion stable, la diffusion ne se contente pas de générer des images aléatoires : elle est basée sur du texte. C’est là qu’intervient CLIP :
CLIP transforme votre requête (le « chat dans le chapeau ») en code numérique (incorporation). Ce code est transmis à U-Net via un mécanisme d’« attention » afin que le réseau sache quelles caractéristiques mettre en avant (par exemple, « chapeau » ou « chat ») tout en supprimant le bruit.
6. Espace latent (avec VAE)
Si VAE est utilisé (comme dans la diffusion stable) :
Les images sont d’abord compressées en une représentation latente (code compact). U-Net travaille avec ce code compressé, et non directement avec les pixels. Une fois la diffusion terminée, VAE « décompresse » le code en une image complète. Cela accélère le processus et économise les ressources.
Une analogie simple
Imaginez que vous êtes un restaurateur de vieilles photographies :
Vous disposez d’une série de photos de mauvaise qualité présentant différents niveaux de « bruit » (rayures, taches). Vous apprenez à corriger ces défauts en observant les originaux et en vous rappelant comment restaurer les détails. On vous donne ensuite une photo entièrement « exposée » (bruit pur), et vous dessinez une nouvelle image étape par étape, en vous basant sur la description (« chat chapeauté »).
U-Net est votre «œil» et votre «main», et CLIP est la voix du client qui dit ce qui doit figurer sur l’image.
En résumé : à quoi cela ressemble-t-il à l’intérieur?
- Base : U-Net est un réseau qui prédit comment supprimer le bruit.
- Processus : Plusieurs étapes du bruit à l’image (ou vice versa lors de l’apprentissage).
- Aides : CLIP pour le texte, VAE pour la compression/décompression.
- Mathématiques : Dans les coulisses des distributions de probabilités et de l’optimisation (mais c’est pour ceux qui aiment les formules).
Lors de la génération, le modèle démarre avec du bruit, utilise U-Net pour le « nettoyer » sous la direction de CLIP, puis VAE fournit l’image finale. Tout cela se déroule en plusieurs dizaines, voire centaines d’étapes, chaque étape se rapprochant un peu plus du résultat.
L’intégration – qu’est-ce que c’est?
L’intégration est un moyen de transformer un élément complexe et difficile à comprendre pour un ordinateur (comme des mots, des phrases, des images) en un ensemble compact de nombres que la machine peut facilement comprendre et utiliser. C’est une sorte d’« empreinte digitale » ou de « description compressée » qui préserve l’essence de l’information d’origine.
Imaginez que vous ayez le mot « chat ». Il est compréhensible pour les humains, mais un ordinateur ne voit que des lettres. L’incorporation transforme « chat » en un ensemble de nombres, comme [0,23, -1,45, 0,89], où chaque nombre représente un aspect du sens du mot. Ces nombres ne sont pas aléatoires, mais résultent de l’entraînement d’un réseau neuronal.
Comment cela marche-t-il?
- Entraînement : Un réseau neuronal (comme CLIP ou BERT) analyse une grande quantité de données (texte, images) et apprend à établir des liens entre elles. Par exemple, il remarque que « chat » apparaît souvent à côté de « miaou » ou « fourrure », ce qui influence les valeurs de l’intégration.
- Transformation : Une fois formé, le réseau peut prendre un mot, une phrase ou même une image et générer un vecteur numérique (une liste de nombres d’une longueur fixe, comme 512 ou 768 nombres) pour celui-ci.
- Signification des nombres : Ces nombres contiennent des informations sur leur signification. Par exemple, les incrustations des mots « chat » et « cat » seront similaires (nombres proches), mais « chat » et « table » seront complètement différents.
Exemple
- Le mot «chat» → [0,23, -1,45, 0,89]
- Le mot «chien» → [0,25, -1,30, 0,95] (similaire à «chat» car ce sont tous deux des animaux)
- Le mot «machine» → [1. 50, 0. 10, -2. 00] (complètement différent)
Si vous ajoutez ou comparez ces vecteurs, vous pouvez comprendre à quel point les mots ont une signification proche.
Où est-il utilisé dans la génération d’images?
Dans des systèmes comme la diffusion stable, les représentations vectorielles continues (embeddings) constituent le principal format de stockage et de transmission des données. CLIP transforme votre requête textuelle (le « chat dans le chapeau ») en représentations vectorielles continues (embeddings), un ensemble de nombres transmis au modèle de diffusion. C’est comme une instruction : « Dessine quelque chose avec telles ou telles propriétés ». CLIP peut également créer une représentation vectorielle continue pour une image afin de la comparer à l’image textuelle et de vérifier sa correspondance avec la requête.
Une analogie simple
L’intégration est comparable à un traducteur qui prend le langage humain (mots, images) et le traduit en « langage des nombres » pour l’ordinateur. Ou comme les coordonnées sur une carte : au lieu de décrire un lieu avec des mots (« forêt au bord de la rivière »), vous indiquez un point [53. 5, 12. 3], et tout le monde comprend de quoi vous parlez.
Pourquoi est-ce important?
- Compacité : Au lieu de traiter un texte ou une image entière, le modèle travaille avec un petit vecteur.
- Signification : Les incorporations préservent les relations et le contexte (par exemple, «chat» est plus proche de «miaou» que de «tracteur»).
- Polyvalence : Ils peuvent être utilisés pour du texte, des images, du son, n’importe quoi.
Voyons maintenant comment des modèles comme la diffusion stable, CLIP ou VAE sont entraînés, et si des humains interviennent pour étiqueter les données. La réponse dépend du type de modèle et de son stade de création.
1. Étiquetage des données : avez-vous besoin de personnes?
Oui, les gens participent, mais pas toujours directement. La plupart des modèles modernes sont entraînés à partir d’énormes ensembles de données, souvent collectées sur Internet. Par exemple, Stable Diffusion a collecté des millions d’images avec légendes provenant de sources ouvertes telles que des sites web, des réseaux sociaux ou des archives (par exemple, LAION-5B, un ensemble de données contenant 5 milliards de paires « image-texte »). Ces données sont déjà balisées sous forme de descriptions textuelles créées par des personnes (par exemple, des légendes de photos sur Instagram ou du texte alternatif sur des sites web). Autrement dit, il n’y a peut-être pas de balisage manuel direct spécifique au modèle ; les données sont utilisées « prêtes à l’emploi ».
Automatisation. La collecte de ces données est automatisée : des programmes spéciaux (scripts, robots d’exploration) sillonnent Internet, téléchargent les images et leurs descriptions. Les utilisateurs ne signent pas chaque image manuellement pour la formation ; cela serait trop long et coûteux.
2. Comment cela fonctionne-t-il pour les différents modèles?
CLIP (texte + images) :
CLIP apprend à lier texte et images. Pour ce faire, on lui fournit des paires « image-texte » (par exemple, une photo de chat avec la légende « chat chapeauté »). Ces paires existent déjà sur Internet et n’ont pas besoin d’être rebalisées : le modèle apprend simplement à trouver des modèles entre texte et image.
Les participants ont participé indirectement : ils créaient autrefois ces légendes pour leurs publications ou leurs sites web. Mais pour la formation CLIP elle-même, le balisage est automatisé.
Modèles de diffusion (diffusion stable) :
Les modèles de diffusion apprennent à « nettoyer » le bruit et à créer des images. Pour ce faire, ils n’ont pas besoin d’étiquetage au sens classique (« ceci est un chat », « ceci est un chien »). Ils prennent des images, y ajoutent du bruit, puis apprennent à restaurer l’original. Tout cela se fait automatiquement.
Cependant, la conditionnalité textuelle (c’est-à-dire la génération à la demande, comme « le chat dans le chapeau ») est ajoutée via CLIP. Ici, des paires « image-texte » prêtes à l’emploi, issues d’Internet, sont à nouveau utilisées, sans balisage manuel.
VAE (Autoencodeur variationnel) :
VAE apprend à compresser et à reconstruire des images. On lui fournit des images et il « détermine » comment les encoder et les décoder. Aucun marquage n’est nécessaire ; seules les images elles-mêmes sont assemblées automatiquement.
3. Quand a-t-on vraiment besoin de personnes?
Nettoyage des données. Il arrive que les jeux de données contiennent des éléments indésirables (par exemple, des fichiers corrompus, des images non pertinentes ou des légendes erronées). Il est possible de filtrer ou d’améliorer manuellement ces données, mais cela est rarement fait et uniquement pour améliorer la qualité. Le nettoyage est également généralement automatisé (par exemple, des algorithmes suppriment les doublons ou les images vides).
Affinement. Si un modèle doit être adapté à une tâche spécifique (par exemple, pour générer uniquement des chats réalistes), les développeurs peuvent prendre un petit ensemble de données et l’étiqueter manuellement. Par exemple, embaucher du personnel pour étiqueter 1 000 photos de chats avec des détails (« chat roux », « chat avec un nœud »). Mais il ne s’agit plus d’une formation de base, mais d’une amélioration.
Contrôle qualité. Une fois le modèle créé, les utilisateurs vérifient les résultats et peuvent ajuster le processus d’apprentissage en ajoutant de nouvelles données ou en modifiant l’approche. Il ne s’agit pas d’étiquetage, mais d’analyse.
4. Exemple : diffusion stable
- Ensemble de données : LAION-5B 5 milliards d’images avec légendes collectées sur Internet.
- Balisage : Les légendes étaient déjà présentes sur Internet (par exemple, « chat au coucher du soleil » sous une photo sur un réseau social). Personne ne les a balisées spécifiquement pour le modèle ; tout a été repris tel quel.
- Processus : CLIP a appris à lier texte et images, et le modèle de diffusion fonctionnait avec le bruit. Tout est automatisé.
5. En résumé : automatisation contre personnes
Principalement l’automatisation. Les modèles modernes comme Stable Diffusion ou CLIP s’entraînent sur d’énormes quantités de données contenant déjà des « balises » humaines (signatures, tags). Personne ne signe des milliards d’images spécifiquement pour l’entraînement : Internet s’en charge tout seul.
Les humains sont indirectement nécessaires. Ils créent les données initiales (en téléchargeant des photos avec légendes sur le réseau) ou participent parfois au nettoyage et à l’optimisation. Mais l’apprentissage de base est l’œuvre des algorithmes.
En termes simples : les modèles « mangent » ce qui existe déjà sur Internet et apprennent par eux-mêmes, sans intervention humaine constante. Si tout était étiqueté manuellement, la création de tels modèles prendrait des années et coûterait des millions de dollars. L’automatisation est la clé de leur succès.
Transformateurs
Les transformateurs sont un type d’architecture de réseau neuronal conçu pour traiter des séquences de données (comme les mots d’une phrase). Ils «comprennent» les relations entre les données, même éloignées les unes des autres, et ce, rapidement et efficacement. Ils ont été présentés pour la première fois dans l’article de Google de 2017 «Attention is All You Need».
En termes simples, c’est comme un «traducteur» intelligent qui ne se contente pas de regarder des mots individuels, mais comprend le contexte global de la phrase.
Comment fonctionnent-ils?
Transformers se compose de plusieurs idées clés :
Mécanisme d’attention :
C’est le « cerveau » du transformateur. Il décide des éléments à prendre en compte dans les données. Par exemple, dans la phrase « Le chat qui dort sur le canapé est mignon », le transformateur comprend que « mignon » désigne « chat » et non « canapé ».
Au lieu de traiter les mots un par un (comme les anciens modèles de type RNN), le transformateur examine tout à la fois et détermine quelles parties sont les plus importantes.
Encodeur et décodeur :
- Encodeur : transforme les données d’entrée (par exemple du texte) en un ensemble de nombres contenant leur signification (incorporations).
- Décodeur : Prend ces nombres et les transforme en sortie (comme un texte traduit ou une image).
Certaines tâches utilisent uniquement l’encodeur (par exemple, pour l’analyse de texte), tandis que d’autres utilisent les deux.
Parallélisme:
Les anciens modèles (RNN, LSTM) traitaient les données étape par étape, ce qui était lent. Les transformateurs traitent tout en même temps, ce qui accélère le travail.
Couches:
Le Transformer est composé de plusieurs couches (comme un graphique à secteurs), où chaque couche améliore la compréhension des données en ajoutant des détails et des relations.
Exemple : Comment un transformateur comprend un texte
Imaginons que vous ayez tapé « Le chat chapeauté descend la rue ». Transformer décompose le résultat en mots. Il convertit chaque mot en nombres (embeddings). Il analyse les relations entre les mots : « dans le chapeau » fait référence au « chat » et « va » à l’action. Il vous donne un résultat, comme la traduction anglaise : « Le chat chapeauté descend la rue ».
Où sont utilisés les transformateurs?
Des modèles comme BERT (Google) ou GPT (OpenAI) sont des transformateurs. Ils traduisent, écrivent des textes et répondent à des questions. Exemple : ChatGPT est un transformateur qui « comprend » et génère du texte.
Dans Vision Transformers (ViT), les images sont décomposées en fragments et le transformateur les analyse comme les mots d’une phrase. Exemple : Reconnaissance d’objets sur des photos.
Dans des modèles comme DALL E ou FLUX, les transformateurs permettent de lier le texte à l’image. Ils fonctionnent en synergie avec les modèles de diffusion pour guider le processus de génération.
Quel est le lien entre les transformateurs et la génération d’images?
Dans des modèles comme FLUX. 1 ou DALL E, le transformateur prend votre texte (le «chat dans le chapeau») et le transforme en une incorporation – une instruction numérique. Cette instruction est transmise au modèle de diffusion, qui «dessine» l’image à partir de celle-ci. Le transformateur peut également participer à la diffusion elle-même (comme dans FLUX. 1), améliorant ainsi le processus de «nettoyage» du bruit.
En termes simples, le transformateur est le «conducteur» qui indique exactement au modèle de diffusion ce qu’il doit dessiner.
Pourquoi sont-ils si importants?
- Vitesse : traitez les données en parallèle plutôt que séquentiellement.
- Contexte : Comprendre les relations sur de longues distances (par exemple dans des textes longs ou des scènes complexes).
- Flexibilité : Fonctionne avec du texte, des images, du son, n’importe quoi.
Une histoire courte
- 2017 : Transformers est apparu dans un article de Google.
- 2018 : BERT et GPT ont montré leur puissance sur les textes.
- 2020 – 2021 : Vision Transformers (ViT) les a appliqués aux images.
- 2022 – 2024 : Transformateurs intégrés dans les modèles génératifs (DALL E, FLUX. 1).
Une analogie simple
Un transformateur est comme un bibliothécaire qui trouve instantanément le livre (les données) dont vous avez besoin, comprend son contenu et peut vous le redire ou en dessiner la couverture. Il ne lit pas une page à la fois, mais « voit » tout d’un coup.
Transformateur T5-XXL
T5-XXL (Text-to-Text Transfer Transformer) est un véritable modèle de transformateur développé par Google.
- Architecture : Entièrement basée sur des transformateurs avec encodeur et décodeur.
- Fonctionnalité : Conversion de texte en texte (par exemple, traduction, réécriture, réponse à des questions). Le tout au format « texte entrant, texte sortant ».
- Taille : La version XXL est un modèle énorme avec 11 milliards de paramètres, ce qui en fait l’un des plus puissants de la famille T5.
- Utilisation : Dans la génération d’images, il est utilisé comme encodeur de texte pour comprendre en profondeur les requêtes complexes et les transformer en intégrations.
Le T5-XXL est un transformateur «classique» optimisé pour le traitement de texte.
CLIP + T5-XXL : qu’est-ce que c’est ensemble?
Dans des systèmes comme FLUX.1 ou Stable Diffusion 3, ces deux modèles sont souvent combinés comme encodeurs de texte :
- CLIP : Donne une compréhension générale du texte et du lien avec l’image. Il est utile pour les descriptions courtes et le sens général.
- T5-XXL : Approfondit l’analyse de texte, notamment pour les requêtes longues et complexes (par exemple, « chat chapeauté marchant sur la plage au coucher du soleil »). Il permet de mieux comprendre les détails et le contexte.
Fonctionnement : Le texte traverse les deux modèles, chacun créant ses propres incorporations. Ces incorporations sont transmises au modèle de diffusion, qui dessine l’image. T5-XXL est généralement responsable de la précision des détails, tandis que CLIP est responsable de l’image globale.
Dans FLUX.1, par exemple, ils sont utilisés en tandem : CLIP (généralement ViT-L/14) gère le texte pour l’orientation générale, et T5-XXL ajoute une compréhension détaillée. Il ne s’agit pas d’un modèle « CLIP T5-XXL » unique, mais de deux composants transformateurs fonctionnant en parallèle.
CLIP est efficace pour lier texte et images, mais faible avec les requêtes longues. T5-XXL est plus performant pour gérer les textes complexes, mais n’est pas lié aux images seules. Ensemble, ils offrent une meilleure compréhension du texte pour générer des images précises et détaillées.
Formats de modèles neuronaux : Safetensors, GGUF et autres
1. Safetensors
- Qu’est-ce que c’est ? Safetensors est un format développé par Hugging Face pour stocker rapidement et en toute sécurité les tenseurs (les tableaux numériques qui composent les modèles). Il a été créé comme alternative à l’ancien format PyTorch.pt/.pth, qui utilisait Python Pickle.
Particularités :
- Sécurité : Contrairement à Pickle, Safetensors ne peut pas contenir de code malveillant qui pourrait s’exécuter lors du téléchargement d’un fichier.
- Rapidité : Chargement très rapide grâce au «zéro-copie» (les données sont lues directement en mémoire sans copies inutiles).
- Simplicité : Stocke uniquement les tenseurs (poids du modèle) et un minimum de métadonnées, sans structure complexe.
- Multiplateforme : écrit en Rust, fonctionne non seulement avec Python, mais aussi avec d’autres langages.
À quoi ça sert ? Généralement utilisé pour stocker des modèles « bruts » (par exemple, au format fp16 ou fp32) avant traitement ou quantification. C’est un choix populaire pour les modèles de visages enlacés.
Exemple : Le modèle Stable Diffusion XL est souvent distribué sous forme de safetensors.
2. GGUF (format unifié généré par GPT)
- Qu’est-ce que c’est ? GGUF est un format binaire développé par Georgi Gerganov pour stocker des modèles optimisés pour l’inférence sur ordinateurs classiques. Il succède à GGML, mais en plus moderne et flexible.
Particularités :
- Optimisation : Conçu pour se charger et s’exécuter rapidement sur CPU ou GPU, notamment avec quantification (par exemple 4 bits ou 8 bits) pour réduire la taille du modèle et accélérer l’exécution.
- Métadonnées : stocke non seulement les tenseurs, mais également les informations du modèle (architecture, tokenizer, paramètres), ce qui en fait un tout-en-un.
- Extensibilité : de nouvelles données (telles que des jetons personnalisés) peuvent être ajoutées sans rompre la compatibilité avec les anciennes versions.
- Support : utilisé dans des outils comme llama.cpp pour exécuter des modèles de langage volumineux (LLM) localement.
À quoi ça sert ? Exécuter des modèles sur des appareils aux ressources limitées (par exemple, des ordinateurs portables). C’est un format courant pour les versions quantifiées de modèles tels que LLaMA ou Mixtral.
Exemple : un fichier comme llama-2-7b-chat. Q4_K_M. gguf est un GGUF avec quantification 4 bits.
3. GGML (prédécesseur de GGUF)
- Qu’est-ce que c’est ? GGML est un format plus ancien, également développé par Georgi Gerganov, utilisé avant GGUF. Il s’agissait d’une bibliothèque tensorielle C pour l’inférence de modèles.
Particularités :
- Simplicité : Tenseurs stockés et métadonnées de base, quantification prise en charge (4 bits, 8 bits).
- Limitations : pas aussi flexible que GGUF, prend principalement en charge l’architecture LLaMA et les métadonnées sont moins structurées.
- Statut : Obsolète et complètement remplacé par GGUF en 2023.
À quoi sert-il ? Il était utilisé pour exécuter des modèles localement sur le processeur, mais c’est désormais un format historique.
4. PyTorch (.pt/.pth)
- Qu’est-ce que c’est ? C’est un format standard de stockage de modèles dans PyTorch, basé sur Python Pickle.
Particularités :
- Polyvalence : Peut stocker non seulement des tenseurs, mais également n’importe quelle structure Python (par exemple du code, des dictionnaires).
- Dangereux : Pickle peut contenir du code malveillant qui s’exécutera lors du téléchargement, ce qui rend sa distribution publique risquée.
- Taille : Généralement plus grande, car elle stocke les données sous forme brute (fp32 ou fp16).
À quoi ça sert ? Pour l’entraînement et le réglage fin des modèles dans PyTorch. Il s’agit du format « source », qui est ensuite souvent converti en Safetensors ou GGUF.
Exemple : préparation d’un modèle avec des poids avant quantification.
Comparaison
Format | Sécurité | Vitesse de chargement | Métadonnées | Quantification | À quoi cela sert-il mieux? |
---|---|---|---|---|---|
Safetensors | Grand | Très élevé | Minimum | Non | Stockage des modèles «bruts» |
GGUF | Moyenne | Grand | Beaucoup | Oui | Inférence locale |
GGML | Moyenne | Moyenne | Basique | Oui | Obsolète, était destiné à la sortie |
PyTorch.pt | Faible | Moyenne | Flexible | Non | Formation et développement |
Autres formats
- ONNX (Open Neural Network Exchange) : Format ouvert d’échange de modèles entre frameworks (PyTorch, TensorFlow, etc.). Utilisé pour la portabilité, mais pas pour l’inférence rapide.
- EXL2 (ExLlamaV2) : format pour modèles quantifiés, souvent stocké dans des Safetensors. Plus rapide que GGUF sur GPU, mais plus difficile à utiliser.
- AWQ : autre méthode de quantification pour GPU, souvent associée aux Safetensors. Concurrente de GGUF en termes de vitesse.
Une analogie simple
- Safetensors : Comment une archive ZIP avec des images est sûre, s’ouvre rapidement, mais à l’intérieur il n’y a que des données.
- GGUF : Comme un film fini sur un disque avec sous-titres et paramètres, tout est inclus et optimisé pour le visionnage.
- PyTorch.pt : En tant que dossier de travail d’un artiste, tout y est, mais il n’est pas pratique de le partager, et quelqu’un pourrait y glisser un "virus".
Pourquoi choisir l’un ou l’autre?
- Si vous êtes un développeur et que vous entraînez un modèle, vous commencerez avec pt/pth, puis passerez à Safetensors pour le stockage.
- Si vous êtes un utilisateur et que vous souhaitez exécuter le modèle sur votre PC, choisissez GGUF pour que tout fonctionne rapidement et facilement.
Quantification
- Qu’est-ce que c’est ? La quantification est le processus qui consiste à réduire la précision des nombres dans un modèle afin qu’il occupe moins d’espace et s’exécute plus rapidement. Imaginez arrondir les nombres : au lieu de 3,14159, vous utilisez 3,14.
Comment ça marche?
Les pondérations des modèles (les nombres « appris » par le réseau) sont généralement stockées avec une précision élevée (par exemple, 32 bits par nombre – fp32). Une fois quantifiées, elles sont converties en précision inférieure : 16 bits (fp16), 8 bits (int8) ou même 4 bits (int4).
C’est comme peindre un tableau avec des centaines de couleurs au lieu de millions : la qualité est légèrement moins bonne, mais la différence n’est pas toujours perceptible.
Pourquoi est-ce nécessaire?
- Réduit la taille du modèle (par exemple de 13 Go à 4 Go).
- Accélère le travail, en particulier sur les appareils faibles (CPU, GPU).
- Économise de la mémoire.
Exemple : un modèle en GGUF avec quantification Q4 (4 bits) fonctionne sur un ordinateur portable, mais en fp32, il nécessiterait un serveur puissant.
- FP32 (32 bits) « précision totale » comme 3,1415926535.
- FP16 est environ 3,14.
- FP8 est encore plus rugueux, comme 3.1.
Tenseurs
- Qu’est-ce que c’est ? Les tenseurs sont des tableaux multidimensionnels de nombres utilisés pour stocker des données dans les réseaux neuronaux. Ils ressemblent à des tables ou des cubes de nombres qui stockent des informations sur le modèle.
En termes simples :
- Un nombre (par exemple, 5) est un tenseur 0D (scalaire).
- Une liste de nombres (par exemple [1, 2, 3]) est un tenseur 1D (vecteur).
- Un tableau (par exemple [[1, 2], [3, 4]]) est un tenseur 2D (matrice).
- «Cube» ou plusieurs dimensions sont des tenseurs 3D, 4D et ainsi de suite.
Pourquoi sont-ils nécessaires?
Les pondérations du modèle (ce qu’il a « appris ») sont stockées dans des tenseurs. Les images peuvent également être représentées sous forme de tenseurs : par exemple, 256 x 256 x 3 (largeur, hauteur, couleurs RVB).
Exemple : dans Safetensors, un modèle est un ensemble de tenseurs, comme d’énormes tableaux de nombres.
Jetons
- Qu’est-ce que c’est ? Les jetons sont les éléments de données qui décomposent le texte afin que le réseau neuronal puisse le comprendre. Ils sont comme des « mots » pour la machine, mais pas toujours des mots ordinaires.
Comment ça marche?
Un texte comme « Le Chat chapeauté » est décomposé en unités : [« Chat », « dans », « chapeau »] ou en parties plus petites (par exemple, « Ko », « t »). À chaque unité est attribué un numéro (ID) issu du vocabulaire appris par le modèle. Ces numéros sont transmis au réseau en entrée.
Pourquoi sont-ils nécessaires?
Pour traduire le langage humain en nombres exploitables par le modèle. Lors de la génération d’images, les jetons du texte (via CLIP ou T5) sont transformés en incorporations pour créer une image.
Exemple : dans la requête « Chat dans le chapeau », chaque jeton aide le modèle à comprendre qu’il doit dessiner un chat et un chapeau.
Histoire des réseaux neuronaux génératifs
1. Premières étapes : avant les années 2010
Avant l’émergence des véritables réseaux génératifs, les scientifiques expérimentaient des modèles capables d’inventer des choses. Il s’agissait davantage de jeux mathématiques que d’outils pratiques :
Machines de Boltzmann (années 1980) : Créées par Geoff Hinton et ses collègues, il s’agissait de réseaux simples capables d’apprendre à modéliser des données (comme des motifs en noir et blanc). Elles ne généraient pas d’images, mais posaient les bases d’idées futures.
Que pouvaient-ils faire ? Presque rien de visuel, juste des motifs abstraits. C’était la base.
2. 2014 : GAN (Generative Adversarial Networks) – la révolution commence
Qui l’a créé ? Ian Goodfellow et son équipe en 2014.
Comment les appelait-on? GAN – réseaux antagonistes génératifs.
Comment fonctionnaient-ils ? Deux réseaux étaient en compétition : l’un (le générateur) créait des images à partir du bruit, l’autre (le discriminateur) vérifiait leur authenticité. Ils s’entraînaient mutuellement jusqu’à ce que le générateur produise quelque chose de plausible.
Que pouvaient-ils faire ? Les premiers GAN généraient des images simples : des visages flous, des nombres (par exemple, issus du jeu de données MNIST) ou des images brutes d’objets. La qualité était médiocre, mais c’était une avancée majeure : le réseau lui-même « inventait » les images.
Exemple : un visage humain flou ou un chat tordu qui ressemble à une tache.
3. 2015 – 2017 : Amélioration des GAN
Les GAN ont évolué rapidement et de nouvelles versions sont apparues :
- DCGAN (Deep Convolutional GAN, 2015) : Créé par Alec Radford et ses collègues, il utilise des réseaux convolutifs (CNN), ce qui améliore la qualité. Il permet de générer des images plus nettes : visages, voitures, animaux, mais toujours avec des artefacts.
Que pourraient-ils faire ? Par exemple, des visages de 64 x 64 pixels déjà reconnaissables comme tels, ou des intérieurs de pièces.
Problèmes : Apprentissage instable - les images peuvent s’avérer étranges ou «cassées».
- GAN progressifs (2017) : Par Tero Karras et l’équipe NVIDIA. Le réseau a appris à générer des images progressivement, de la basse résolution (4x4) à la haute résolution (1024x1024).
Que pouvaient-ils faire ? Des visages humains réalistes en haute résolution. C’était la première fois que des visages générés ressemblaient presque à de vraies photographies.
4. 2018 – 2019 : BigGAN et StyleGAN – La qualité augmente
- BigGAN (2018) : Créé par l’équipe Google (Andrew Brock et al.). Utilise d’énormes ressources et ensembles de données (ImageNet).
Que pouvait-il faire ? Générer des scènes et des objets complexes : chiens, paysages, nourriture. La qualité était excellente, mais cela nécessitait des ordinateurs puissants.
Exemple : Un chien ou une fleur réaliste, bien que parfois avec des erreurs mineures.
- StyleGAN (2019) : Toujours grâce à Tero Karras et NVIDIA. Ajout d’un contrôle sur le style de l’image (par exemple, possibilité de modifier la coiffure ou l’âge du visage).
Que pouvait-il faire ? Des visages incroyablement réalistes (jusqu’à 1024 x 1024) difficiles à distinguer sur une photo. Il générait également des chats, des voitures et même des personnages d’anime.
Fonctionnalité : Vous pouvez désormais « éditer » des images, par exemple, vieillir un visage ou ajouter des lunettes.
5. 2020 : VAE et premiers pas vers le texte
- VAE (Autoencodeurs Variationnels) : Proposés initialement en 2013 par Diederik Kingma et Max Welling, ils sont devenus populaires pendant des générations. Ils compressaient des images dans un espace latent et les recréaient.
Que pouvaient-ils faire ? Des images simples, comme des chiffres manuscrits ou des visages, mais la qualité était inférieure à celle des GAN. Ils étaient cependant plus stables.
Lien avec le texte : Ils ont commencé à combiner la VAE avec le texte, mais ce n’était pas encore répandu.
6. 2021 : DALL E et CLIP — le texte rencontre les images
- DALL E (2021) : Créé par OpenAI. Combinaison de VAE et de transformateurs (comme dans les modèles de langage). CLIP utilisé pour lier texte et images.
Que pouvait-il faire ? Générer des images à partir de requêtes textuelles : « avocat en forme de chaise » ou « chat dans l’espace ». La qualité était moyenne (256 x 256), mais la créativité était incroyable.
CLIP : Également issu d’OpenAI. Je ne l’ai pas généré moi-même, mais j’ai appris à comprendre le lien entre texte et images, devenant ainsi le « cerveau » des futurs modèles.
7. 2022 : La diffusion prend le dessus
- DDPM (Denoising Diffusion Probabilistic Models, 2020 – 2021) : Introduits par Jascha Sohl-Dickstein et améliorés par Jonathan Ho, ce sont les premiers modèles de diffusion.
Que pouvaient-ils faire ? Ils généraient des images de haute qualité (visages, objets), mais lentement – des centaines d’étapes.
Percée : a montré que la diffusion peut surpasser les GAN en détail.
- Diffusion stable (2022) : Créé par Stability AI en collaboration avec des chercheurs (Robin Rombach et al.). Diffusion combinée, VAE et CLIP.
Que pouvait-il faire ? Générer des images à partir de texte (512 x 512 et plus) rapidement et efficacement. Fonctionnement sur ordinateurs classiques grâce à l’espace latent.
Fonctionnalité : Open source - tout le monde peut le télécharger et l’utiliser.
- DALL E 2 (2022) : OpenAI a amélioré la première version. Utilisation de la diffusion au lieu de VAE.
À quoi cela pourrait-il servir ? Des images très réalistes et créatives (jusqu’à 1024 x 1024) pour des requêtes complexes : « pingouin sur la plage avec un cocktail ».
- Imagen (2022) : De Google. Il s’agit également d’un modèle de diffusion privilégiant la qualité.
Que pourrait-il faire ? Des images photoréalistes aux détails incroyables.
8. 2023 – 2025 : Modernité
- Stable Diffusion XL (SDXL, 2023) : Version améliorée de Stability AI. Ajout d’un raffineur pour les détails.
Que peut-il faire? Des images 1024x1024 avec une haute qualité et une grande flexibilité.
Midjourney (2022 – 2025) : Modèle fermé, mais populaire auprès des artistes. Spécialisé dans les styles artistiques.
- DALL E 3 (2023) : Une version encore plus précise et puissante d’OpenAI.
Évolution : du simple au complexe
- Premiers modèles (GAN) : Visages simples, faible résolution, beaucoup d’erreurs.
- Milieu (StyleGAN, BigGAN) : Réalisme, mais pas de texte.
- Texte + images (DALL E, Diffusion Stable) : Connexion aux demandes, créativité.
- Aujourd’hui : Haute qualité, rapidité, disponibilité.
Qui a conduit le progrès?
- Scientifiques : Ian Goodfellow (GANs), Geoff Hinton (basiques), Tero Karras (NVIDIA).
- Sociétés : OpenAI (DALL E, CLIP), Stability AI (Stable Diffusion), Google (Imagen), NVIDIA (StyleGAN).
Qu’est-ce qui a changé?
- Des taches floues au photoréalisme.
- Des images aléatoires à la génération de texte.
- Des supercalculateurs aux PC domestiques.
FLUX
FLUX est un modèle d’IA géné
Vous ne pouvez pas commenter Pourquoi?