title: "J'ai joué avec Stable Diffusion sur mon Mac mini M1"
date: 2022-09-21
tags: [
"Intelligence Artificielle",
"Stable Diffusion",
"Mac mini M1",
"Apple",
"DiffusionBee",
"Gil Elvgren",
"Pin-up",
"Red Bull",
"Art",
"Dieu"
]
dinosaurs: [
"Tyrannosaurus"
]
---
> **Toutes** les images montrées dans cet article ont été générées par une Intelligence Artificielle.
## Introduction
Je ne sais pas grand chose de "l'IA" sur le plan technique.
Je suis un profane en la matière.
Je ne m'intéresse que peu aux mathématiques qui se cachent derrière, pour le moment.
Pour moi, "Intelligence Artificielle" est un terme commercial, qui rend opaque au commun des mortels tous les apports possibles et réels des technologies sous-jacentes à notre société, détournées pour des usages orientés business.
Ce que je sais, ce dont je suis convaincu, c'est que tant que l'on devra "entraîner" les *IA* avec des informations produites par des humains, elles seront toujours biaisées et donc grêvées de nos propres faiblesses quand elles étaient destinées à les combler.
<x-imgurl="images/ia.png"title="L'IA selon l'IA : elle se voit avec un visage humain, puisqu'elle est entraînée avec nos propres représentations de l'IA, manifestement réalisées dans les années 90..."/>
On a déjà eu un aperçu de ses biais [racistes](https://www.sciencesetavenir.fr/high-tech/intelligence-artificielle/l-ia-de-microsoft-est-elle-reellement-devenue-raciste-au-contact-des-internautes_31260) et [sexistes](https://web.archive.org/web/20200730111553/https://www.reuters.com/article/us-amazon-com-jobs-automation-insight/amazon-scraps-secret-ai-recruiting-tool-that-showed-bias-against-women-idUSKCN1MK08G) au cours de ces dernières années, et on évite désormais d'entraîner les modèles avec de telles données.
De facto, il manque un élément essentiel aux *IA* pour être "considérées en tant que telles", c'est l'objectivité, le détachement, l'imperméabilité à nos considérations humaines.
Mais, encore une fois, c'est précisément cette caractéristique qui m'intéresse, en cela qu'elle est révélatrice de notre psyché, puisque son produit dérive de produits humains (nos limitations, nos faiblesses, bref nos caractéristiques).
J'ai toujours dit, et pour le moment je maintiens :
> Il n'y a pas de raison d'avoir peur de l'IA : nous ne sommes pas assez intelligents pour produire une IA plus intelligente que nous.
Alors, quand on met à disposition du "grand public" des outils pour générer des images guidées par l'*Intelligence Artificielle*, je me devais de vérifier si ma théorie est toujours valide.
Pour faire court : **ma théorie est toujours valide**.
Le pire, c'est qu'on a tellement peur de nous regarder dans un miroir que nous sommes obligés de supprimer des modèles d'entraînement des pans entiers de ce que nous sommes réellement.
Le rapport à Dieu est intéressant ici puisque traditionnellement, c'est Dieu qui juge les humains.
La différence avec Dieu, c'est que nous avons le contrôle des IA.
En fin de compte, nous n'avons pas peur de ce que l'IA peut faire, nous avons peur de nous-même et de notre propre jugement, ce qui finalement, n'est pas une préoccupation moderne.
C'est juste que l'IA est une technologie capable de nous rappeler assez promptement et violemment que nous sommes loins d'être parfaits, et nous n'aimons pas ça.
Ce n'est pas Dieu qui nous a fait à son image, c'est nous qui avons créé l'Intelligence Artificielle en l'abreuvant de nos travers les plus sombres.
L'apocalypse ne surviendra pas d'un soulèvement des machines mais de notre désespoir face à notre propre nature, flanquée à notre face par l'IA comme un enfant qui pointe les défauts de ses parents.
<x-imgurl="images/god.png"title="Dieu selon l'IA. Première image générée par DiffusionBee à la requête "god". J'ai l'impression de reconnaître des éléments provenant de beaucoup de cultures, notamment asiatiques, signe que l'IA n'est pas biaisée par la représentation traditionnelle du dieu chrétien. J'ai beaucoup de mal à identifier les éléments en bas de l'image par contre."/>
Bref, c'est grâce à [*Stable Diffusion*](https://en.wikipedia.org/wiki/Stable_Diffusion), et l'application [DiffusionBee](https://diffusionbee.com) qui permet de générer des images à partir de phrases en langage naturel (je n'ai essayé qu'en anglais pour le moment), que mon intérêt à crût.
Parmi le peu de choses qui ne m'intéressent pas d'ordinaire, il y a l'art.
Pire que désintéressé, je suis foncièrement hostile à l'art, en particulier visuel.
Par conséquent, je n'y connais rien, et je n'ai aucune sensibilité artistique.
Pourtant, de l'IA qui génère de l'art m'intéresse au plus haut point !
Notez que par "art" j'entends ici "représentation de l'esprit".
Quand on écrit dans le *prompt* d'un logiciel tel que DiffusionBee (ou DALL-E ou autre), on demande à l'IA de générer une représentation de ce que nous avons en tête, et je considère donc que ce qui est produit est de l'art, au sens philosophique du terme.
Notez que je ne rentrerai pas dans le débat des licences du contenu utilisé pour entraîner l'IA, ou des licences des contenus produits par les IA, débat qui ne m'intéresse pas non plus pour le moment.
*DiffusionBee* est mon point de départ dans cet exercice parce que cette application me permet de tirer profit de mon Mac mini M1 *spécifiquement*, qu'elle n'exige pas de créer un compte, et qu'elle est libre, de même que Stable Diffusion (au contraire de DALL-E).
Quelques mots sur les "performances" de mon Mac mini M1 (8G de mémoire, moitié moins que ce qui est recommandé).
Avec les paramètres de génération par défaut (une taille d'image de 512x512, 25 *steps* et une *guidance scale* de 7.5), une image est générée en 7 minutes environ.
Une durée qui peut passer à une demi-heure avec 50 *steps* et une *guidance scale* de 8.
N'ayant pas de point de comparaison, j'ignore si ce sont de bonnes performances.
Apparemment, la *diffusion stable* est très gourmande en mémoire vive et il est hautement probable que cela prendrait moins de temps sur un Mac mini M1 équipé de 16G de mémoire (et a fortiori sur un Mac équipé d'une puce M2).
Mais pour être honnête, je m'en fous un peu : je cherche simplement à m'amuser avec et voir ce qu'on peut en tirer ; je n'ai pas l'intention de générer des images à la chaîne - pour l'instant.
À noter qu'avant de pouvoir utiliser l'application, il y a près de 5Go de modèles à télécharger.
Pour la première fois depuis que j'ai le mini, je sens qu'il bosse sur un truc assez gourmand.
Écrire cet article pendant qu'il génère les images se ressent.
Ça fait bizarre !
## Des pin-ups
Mes premières idées concernaient les pin-ups de Gil Elvgren : je suis un très grand fan parce que contrairement aux pin-ups modernes, celles d'Elvgren sont sophistiquées, classes, pas vulgaires.
En outre, elles sont dépeintes dans des décors évoquant les États-Unis des années 60, un lieu et une période que j'affectionne particulièrement.
J'ai laissé les paramètres par défaut, et utilisé le *prompt* :
> pin-up drinking a Red Bull while playing computer, art by Gil Elvgren
Je sais, c'est un anachronisme, mais c'est pour jouer...
De but en blanc, je suis surpris de retrouver - un peu - l'esprit de Gil Elvgren.
Je m'attendais à ce que *DiffusionBee* soit complètement à côté de la plaque et à être franchement déçu, mais c'est finalement mieux que ce que je craignais.
On ne peut évidemment pas croire que c'est bien du Gil Elvgren, on sent clairement que c'est généré par une *IA*, mais c'est pas trop mal.
Il y a évidemment quelques défauts notables.
La marque "Red Bull" n'est pas clairement visible, probablement pour des raisons juridiques et commerciales, mais le jeu de couleurs traditionnel de la marque est bien là : bleu, jaune et rouge.
Le canapé de droite est bizarrement placé et coupé, et on ne sait pas trop ce qu'il y a dessus.
La pin-up est surprenante à plus d'un titre, principalement parce que son visage est réaliste (on verra après que ce n'était pas acquis).
Il y a, certes, un défaut de raccord au niveau du buste (qui est exagérément pointu d'ailleurs), ses cuisses sont un peu plus épaisses que ce qu'on a l'habitude de voir chez Gil Elvgren, et elle a trois tibias.
Mais, au contraire, on retrouve la forme typique des chevilles représentées par l'artiste.
Ce sont aussi les couleurs et les ombres qui reflètent assez bien l'univers d'Elvgren.
Pour un premier essai, c'est encourageant.
Je note par ailleurs que la pin-up est bien moins maigre que les pin-ups originales.
J'ai du mal à ne pas y voir un biais sociétal moderne, et pourtant...
J'ai voulu voir ce que changeaient les paramètres *Steps* et *Guidance scale* en les passant respectivement à 50 et 8.
Le temps pour générer l'image est passé de 7 à 17 minutes.
Pour le coup, Red Bull est facilement reconnaissable sur la robe de la pin-up, cette dernière étant dotée des proportions habituelles pour Elvgren.
Mais ce n'est peut-être pas ce qui saute aux yeux sur cette image, au contraire de ses bras pour le moins étranges, le morceau de cuisse amputée, son visage ou sa poitrine.
Dommage aussi qu'il y ait cette impression d'image de magazine découpée à la tronçonneuse.
Pourtant, ses jambes sont très réussies (comparativement à ce qui est visible de l'oeuvre d'Elvgren), de même que le décors (contrairement à la première image).
Même l'ordinateur sur lequel elle "joue" pourrait passer pour une machine portative inventée dans les années 80 (avec un peu d'imagination évidemment).
À titre de comparaison, j'ai testé le *prompt* suivant :
> pin-up drinking a Red Bull while playing computer
Le même que les deux images précédentes donc, mais sans la mention à Gil Elvgren.
Je suis repassé à 25 *steps* et une *guidance scale* de 7.5.
Bon, si l'on arrive à faire abstraction des dents, de la main et la bosse au niveau du biceps, et du fait que son ordinateur a l'air étrangement moderne...
Pourquoi une image en nuances de gris (à l'exception de la bouche) ?
Je note quand même que l'idée de départ est bien là : c'est intéressant de voir que ces concepts simples sont relativement bien compris par le modèle.
Je me demande ensuite ce que je peux obtenir en augmentant les détails de ma requête (et donc la complexité de l'image).
J'ai en tête une image assez précise que j'ai probablement déjà vu dans ma vie dans un magasine, une publicité ou autre, sans pour autant être capable de la retrouver.
Je vais voir ce que DiffusionBee peut faire pour moi.
L'occasion également de tester un peu le modèle : le *prompt* que j'ai utilisé cherche volontairement à dépeindre une scène traditionnelle des années 60, mais qui est aujourd'hui considérée comme sexiste.
> a photography in the 1960's of a beautiful smiling housewive facing the camera using a vacuum cleaner on a carpet, her elegant husband sits in a comfortable chair on the right and reads a newspaper while smoking a cigare, there is a TV on a wooden furniture in the back
Traduction :
> une photographie datant des années 60 d'une belle et souriante femme au foyer faisant face à la caméra et qui passe l'aspirateur sur un tapis, son élégant mari siége dans un fauteuil confortable à droite et lit son journal en fumant un cigare, une TV repose sur un meuble en bois au fond
Elle a un petit quelque chose de Jigsaw je trouve...
Donc on a zapé le mari et l'aspirateur (biais sexistes ?), la télé est un four (dans un meuble en bois, donc l'IA n'a pas connaissance de règles élémentaires de bon sens et de sécurité), la ménagère a fusionné avec son fauteuil, elle a un bras/journal, un pied de mannequin de bois, l'un avec une chaussure trop grande et l'autre avec une chaussure trop petite, bref, c'est flippant.
Essayons autre chose.
## Des dinosaures
Je voulais voir ensuite ce que l'*IA* était capable de générer en ce qui concerne les dinosaures.
Je n'avais jamais vu une telle créature, même dans [Spore](https://www.ea.com/fr-fr/games/spore).
Loin d'être "cute", c'est limite cauchemardesque !
L'aspect "cute" se retrouve dans l'oeil de la tête de gauche et l'apparence globale du *T. rex* se retrouve bien dans la tête de droite, mais l'*IA* a fusionné les deux, littéralement, façon siamois, privant au passage la tête de gauche de sa mâchoire inférieure mais l'affublant d'une crête étrange et de narines à la Picasso.
Plus terrifiant que "cute" !
Essayons d'introduire le mot "photoréaliste" dans une requête pour voir ce que ça donne :
> photorealistic collection of dinosaurs skeletons in a museum
Pour le fun, j'ai cherché à voir ce que donnerait un *Tyrannosaurus* prenant le soleil façon Gil Elvgren (*"Tyrannosaurus sunbathing, art by Gil Elvgren"*).
Il y a une forêt que je n'avais pas demandé (je voulais une prairie), mais DiffusionBee semble assez à l'aise avec des représentations d'éléments naturels.
Pas de PC sous Linux et les visages semblent être mélangés.
C'est à la fois étrange et fun de voir ça...
Une façon d'éviter les *deep-fake* ?
La différenciation entre les deux protagonistes se fait essentiellement par leur taille et leur garde-robe : on identifierait aisément Gates et Jobs en masquant leur visage sur cette "photo".
Il semble que le modèle ait été entraîné avec une certaine photo de Torvalds levant le majeur...
Bon alors par contre, pas évident de dire qui est qui.
Les deux protagonistes portent une grosse barbe (ce qui n'est pas le cas de Torvalds).
Je ne vois pas de ressemblance avec l'un ni avec l'autre.
Juste deux geeks en pleine querelle de chapelle.
On remarque quand même, encore une fois, des soucis de raccords.
L'IA semble avoir particulièrement du mal avec les doigts.
On note aussi que les lunettes lui pose quelques soucis, à l'instar de l'image précédente avec les faux Gates et Jobs.
## Essais avec les titres d'anciens articles du blog
Je fais un peu de prospection pour avoir des images illustratives pour les en-têtes de mes futurs articles, et je commence à me dire que ça pourrait être fun de les générer avec une IA.
Alors autant voir ce que ça aurait donné sur certains de mes anciens articles.
Mes images font traditionnellement 1018x381 pixels, mais DiffusionBee limite les tailles disponibles.
Je vais donc les générer en 768x256, en espérant que l'upscaling ne soit pas trop dégueulasse dans l'hypothèse où j'utiliserai effectivement de telles images.
- [Retour d'expérience : six mois de stockage dans git](/blog/2022/04/05/retour-d-experience-six-mois-de-stockage-dans-git/) que j'ai traduis en :
> return of experience on six months of git storage
Bon, globalement, en prenant directement le titre de l'article, ce n'est pas satisfaisant.
Si je veux utiliser DiffusionBee pour générer des images d'en-tête, il va falloir utiliser des *prompts* un peu plus personnalisés.
## Conclusion
Ça me donne clairement envie de continuer à explorer, et analyser les résultats sur le plan psychologique et sociologique.
Ce qui est produit est très intéressant de ce qu'il révèle des modèles mis en oeuvre et donc des choix faits par les humains qui sont derrière.
Et puis, je dois comprendre comment fonctionnent les réglages et quelle est leur influence sur le résultat final.
J'aimerais trouver un usage véritable à la possibilité de générer des images à partir d'une phrase en langage naturel.
Pour ce faire, je vais explorer deux pistes :
- voir ce que donnent les performances sur mon Alienware doté de 32G de mémoire, d'un Ryzen 9 5900X et d'une RTX3080, parce que générer les images plus vite sera plus agréable, évidemment (je rappelle que pour cet article et dans l'objectif de découvrir la technologie, ce n'était pas un critère)
- voir comment intégrer ça à Hugo pour qu'une image soit générée automatiquement sans que j'ai besoin de m'en occuper (et faire confiance à l'IA pour que les images générées soient un peu plus satisfaisantes)
Le principe est prometteur, mais encore une fois, soulève de nombreuses questions, en termes d'éthique, juridique, etc.
En voulant à tout prix rester dans des conventions sociétales, on biaise nos IA.
En soi, ce n'est pas forcément une mauvaise chose, mais c'est aussi faire l'aveu que nous sommes nous-mêmes à l'origine de comportements inadaptés de nos IAs.
Il n'y a pas que techniquement que nous devons améliorer nos IAs, c'est notre société dans son ensemble qui doit s'améliorer, et je pense que ça devra passer par l'acceptation de notre passé et de notre présent, plutôt que leur annulation (la fameuse *cancel-culture*).
C'est d'ailleurs l'un des nombreux sujets que j'aborde dans mon livre, [*L'humain, cette espèce primitive*](/dossiers/lhumain-cette-espece-primitive/).