Pour fonctionner, une IA générative a besoin d'être entrainée sur des bases d'images colossales. Cette phase d'entrainement va produire un fichier compilant toutes les données d'apprentissage que l'on appelle un modèle.
A l'origine on entrainait des réseaux de neurones à supprimer le bruit d'une image. D'abord faiblement bruité puis de plus en plus jusqu'à 100%. L'image de base est décrite précisément et sa description sert de guide au travail de suppression du bruit. C'est sur ce fonctionnement que s'appuient les IA génératives d'images. On leur soumet une image à 100% de bruit et on leur demande de faire surgir ce qui est décrit par le prompt. Le bruit est généré par un algorithme du type perlin noise. Ce type d'algorithme s'appuie sur un nombre quelconque comme élément générateur. Ce nombre que l'on appelle la graine ou "seed" en anglais générera pour un nombre identique un bruit identique et donc une image identique par l'IA.
Chaque mise à jour de Stable Diffusion comme d'ailleurs pour Dall-E ou Midjourney, est essentiellement une mise à jour du modèle.
Pour Stable Diffusion on compte SD 1.4, SD 1.5, SD 2.0, SD 2.0768, SD 2.1, SD 2.1768, SDXL 0.9, SDXL 1.0.
Cela semble beaucoup, mais c'est loin d'être fini. Bienvenue dans la foire à la saucisse ! Comme le code source est public, tout le monde peut produire, entrainer, modifier, compiler comme bon lui semble les modèles et produire ses propres itérations. On les appels des "checkpoints".
Pour simplifier on retiendra dans ce gourbi deux versions sur lesquelles la communauté s'appuie pour développer de nouveaux checkpoints, la version SD 1.5 et la version SDXL 1.0.
Citons pour la version SD 1.5 la liste suivante loin d'être exhaustive :
Realistic vision, DreamShaper, CyberRealistic, Nextphoto, Photon, EpicRealism, Toonyou, etc....
Ou pour SDXL 1.0 :
realisticStockPhoto, dreamshaperXL, copaxTimelessXL, juggernautXL etc...
Voici quelques exemples s'appuyant sur le même prompt et les mêmes réglages. Seul le checkpoint change. Les réglages sont basiques et peuvent être optimisés pour un rendu bien meilleur en fonction des checkpoints. Ici, ce qui nous intéresse, c'est d'illustrer simplement les différences.
Le prompt : photograph close up portrait of Embraced couple enjoying in a movie in theatre, cinematic 4k epic detailed 4k epic detailed photograph shot on kodak detailed bokeh cinematic hbo dark moody
Evidemment ces checkpoints sont disponibles en pléthore de versions, que ce soit des évolutions ou des outils optimisés pour des usages spécifiques que l'on détaillera dans un prochain article.
A côté des checkpoints que l'on vient de voir, on trouve de plus petits modèles entrainés pour des besoins plus spécifiques comme la représentation d'un type d'objets, de paysages, de personnages mais aussi de styles. On les trouve sous d'obscurs sobriquets tels que LoRA (Low-Rank Adaptation) ou LyCORIS pour ne citer que les plus utilisés aujourd'hui. Ils viennent s'ajouter au modèle de base pour le compléter et se déclenchent à partir de mots-clés écrits dans le prompt.
Quelques exemples avec un LoRA de Fiat Panda, un LoRA de grimace et un LoRA de peinture à l'huile.