né en 2022, mon projet ai-nigma1 vise à exploiter les images issues de l’intelligence artificielle de manière créative et récréative. Il me tenait à cœur de travailler sur un projet global qui donne un sens artistique à la génération d’images AI.
Bien avant la genèse du projet ai-nigma, mes premières images générées n’avaient pas de but artistique, mon besoin était illustratif ou tout simplement pour explorer les possibilités des MidJourney, Dall-E et autres.
Mais au fur et mesure que j’utilisais l’AI, j’y ai trouvé un coté « fou » et esthétique que j’ai voulu exploiter en créant une œuvre « collaborative » entre l’IA et mes propres idées.
Je me suis passionné pour l’univers de génération d’images et j’ai commencé à générer massivement des images dans le but d’un projet artistique qui au début avait des contours très flous… Au début je ne savais même pas comment présenter les résultats: par groupe (les situations improbables, les choses impossibles) ou par thème? – peut-être un patchwork par couleurs?, peut-être pas de règle du tout ? – … et quand j’ai vu le nombre d’images croitre, je me suis dit qu’il fallait trouver une autre idée…
Le projet « ai-nigma » a vraiment pris contour plus concrètement en été 2023 : collecter un nombre important d’images pour ensuite composer une œuvre de synthèse qui se composerait de ces images. Mais oui! Passionnant! Cet été je pense que j’étais parmis les rares personne sur la plage à inventer des algorithmes de composition d’images. Les grandes lignes étaient créés. Mais il me fallait bien plus d’images pour réaliser l’idée.
C’était un travail autant créatif que stimulant: le matin je me disais « imagines-toi une ruine d’un jeu d’échec géant sous l’eau » … et en rentrant le soir je lançais plusieurs essais, d’abord peu concluants jusqu’ à maitriser les subtilités du prompting et des bonnes formulations. Les sujets sont inépuisables entre les situations improbables (les tours jumelles de Pise), les fusions d’objets (une banane avec une fermeture éclair), les témoignages d’époque (une console internet du 18ème siècle) ou encore les personnes faisant des choses loufoques, interdites, …
Dans un premier temps, j’ai essayé de composer l’image finale sans en avoir une idée claire mais rapidement l’idée de composer un visage s’est imposé. Les premiers essais étaient médiocres, et j’ai vite compris qu’il fallait s’aider de l’informatique.
L’idée d’une image « cible » s’est imposée et, compte tenu de la taille des « tuiles » générées par l’IA (1024×1024) et des possibilités d’impressions il s’est vite avéré que je n’allais pas trop dépasser 4cm x 4cm par tuile pour garder une lisibilité dans une taille raisonnable de l’oeuvre complète. J’ai expérimenté un découpage en 18×18, 20×20, 25×25 et 28×28, jusqu’à 32×32 – les premiers découpages ne mettent pas l’image finale en évidence, et les derniers sont trop ambitieux sur la taille finale de l’œuvre, au-delà de 1,5m x 1,5m si l’on veut garder les tuiles à 4cm au moins. …
l’image “cible” avant et après sa réduction à 25 x 25 tuiles – l’image est elle-même issue de l’IA
J’ai utilisé mes connaissances en programmation pour écrire mon algorithme ai-nigma qui compose l’image finale à partir de ma collection d’échantillons (les tuiles : chaque tuile est une image issue de l’IA) . J’ai d’ailleurs utilisé uniquement des outils open-source autour de mon langage de programmation préféré: C++. Et soyons clair: essayer d’utiliser l’IA pour générer du code C++ qui réponde à mon besoin s’est vite transformé en échec… forcément. Demandez à MidJourney de vous produire une image d’une personne qui souffle dans une trompete, mais du mauvais coté: vous n’obtiendrez rien. Il n’y a pas d’échantillons existants. Parreil pour le code qui assemblerait les images selons mes exigences. J’ai donc utilisé mon cerveau humain…
Mon algorithme collecte toutes les images candidates présentes dans un répertoire au choix (le fruit du travail de créativité collaborative avec l’IA) et effectue un tri par intensité lumineuse perçue. Il y a p.ex. 625 images candidates pour constituer une image de 25×25 tuiles. Chaque image se voit attribuer une valeur de luminosité.
Ensuite l’algorithme charge l’image cible (une image d’un visage à constituer, par exemple) et la réduit à une mosaïque de 25×25 carreaux. Ensuite, l’algorithme a comme but de trouver, pour chaque carreau à remplir, une image dans le portfolio des 625 candidats potentiels. Comme les candidats ont été triés par luminosité, c’est facile…
l’algorithme ai-nigma cherche les meilleures correspondances pour chacune des images à placer dans la composition finale …
Je me suis vite rendu compte que le résultat n’était pas à la hauteur de mes attentes : Mes premiers algorithmes procédaient ligne par ligne et attribuaient forcément les meilleurs candidats vers le début de l’image. Une évolution consistait à répartir l’erreur de manière plus uniforme sur toute l’image en procédant aléatoirement. Ensuite j’ai peaufiné l’algorithme ai-nigma pour arbitrer entre deux candidats égaux en fonction de formes présentes. Si deux candidats ont la même luminosité, l’algorithme attribuera la place à l’image qui apportera de la continuité dans les grandes lignes du visage. Facile à dire, beaucoup moins facile à réaliser, mais le résultat est visible ci-dessous.
au fur et à mesure des optimisations de l’algorithme ai-nigma, le résultat s’améliore…
La permutation aléatoire
L’aspect aléatoire reste toujours passionnant, l’algorithme ai-nigma est capable de générer des images de qualité équivalente tout en permutant aléatoirement des tuiles, ce qui garantit une quasi-unicité des impressions, et leur valeur liée à cette unicité.
Les permutations sont si subtiles qui sur l’image de droite on ne les aperçoit pas tout de suite …
Il m’est d’ailleurs possible d’incorporer des images spécifiques dans les tuiles (une photo réelle p.ex. d’un anniversaire finira à trouver sa place parmi les centaines d’autre images issues de l’AI), ou encore de générer des images dont la cible est un visage différent, voire un autre motif, comme par exemple un œil:
résultat de la génération d’un oeil ou de visages différents…
visitez le tableau ‘ai-nigma’ dans une galerie virtuelle:
- ainigma (du grec ancien αἴνιγμα, aínigma) = énigme, puzzle ↩︎