Comment j’ai utilisé les IA génératives pour créer un escape game

Édit : corrections d’orthographe et de de phrases pas toujours très claires. Il faut toujours se relire avant de publier…

Cet article est une version détaillée de plusieurs discussions que j’ai pu avoir sur Twitter ces derniers temps.

La genèse du projet

Il y a quelques semaines, j’ai animé une formation sur les escape game pédagogiques. J’ai forcément préparé un support de présentation où je faisais jouer une partie aux participants. J’ai utilisé ChatGPT pour générer certains textes, comme le document ci-dessous, ce qui m’a permis de gagner un peu de temps.

Pendant ma longue préparation, ma fille regardait travailler et voulait tester les énigmes. Son anniversaire approchant, elle m’a demandé de lui concevoir un escape game pour cette occasion. Je me suis donc lancé dans un nouveau processus de création, mais cette fois-ci, je me suis donné pour défi d’exploiter au mieux les IA génératives à ma disposition. Le projet Escape Game Pokémon était lancé.

Les premiers outils : ChatGPT et Bing Image Creator

Ce serait largement exagéré de dire que cet escape game a été conçu par IA. En réalité, je devrais plutôt dire que sa conception a été assistée par IA. Tout d’abord, je précise que je n’y connais pas grand chose à l’univers de Pokémon. Trop vieux pour être tombé dedans quand j’étais petit, je ne connais que les bestioles les plus iconiques et les quelques trucs que mes enfants m’ont racontés. Je partais donc sur un terrain glissant. C’est pour cette raison que j’ai décidé de me faire aider de l’IA. Mon point de départ était simple : je connais le personnage d’Evoli et ses différentes évolutions, j’ai envie d’inventer mon propre Pokémon, et il y a souvent une équipe de méchants pas très malins qui veulent conquérir le monde.

J’ai commencé à chercher des idées en posant des questions à ChatGPT. Les réponses n’étaient pas forcément aussi précises que ce que j’aurais souhaité, mais en lui demandant de l’aide pour le scénario, j’ai commencé à avoir des propositions inspirantes, comme le fait d’intégrer des personnages à l’histoire.

J’ai donc décidé de me lancer dans la génération d’images par IA. Il y a beaucoup de services qui proposent de générer des images à partir d’un prompt. Le plus connu est sans doute Midjourney, mais son mode de fonctionnement et l’obligation de passer par une abonnement m’ont rapidement découragé de l’utiliser.

L’art du prompt ou comment donner des consignes à une machine

Glossaire

Un prompt : le mot « prompt est issu de l’anglais et désigne une commande ou requête envoyée à l’IA. Il s’agit de l’instruction que l’on donne à la machine et qui sera interprétée pour donner le résultat. La plupart du temps, les prompt sont rédigés en anglais. Un prompt peut être assez vague et laisser beaucoup de liberté à la machine ou être au contraire extrêmement précis pour coller au mieux à votre vision du résultat. Ainsi, le choix des mots-clés va être extrêmement important pour permettre à la machine de produire un résultat à hauteur de vos espérances.

Après quelques recherches, j’ai choisi d’utiliser Bing Image Creator qui est un service gratuit et illimité (ces deux éléments ont leur importance) basé sur le moteur de Dall-E. Les résultats sont plutôt corrects, mais pour arriver à ce que je veux, il faut générer BEAUCOUP d’images. (plus de 500 rien que pour les portraits de personnages)

Après un nombre déraisonnable de requêtes, je finis par obtenir une galerie de personnages potables. Je décide de commencer à générer de nouveaux personnages, mais du côté des gentils, cette fois-ci, pour aider les enfants dans leur aventure. Je prévois aussi quelques décors et des logos pour leur permettre de repérer plus facilement quel personnage est dans quel camp.

Quelques logos générés pas Bing Image Creator pour Evolab

En parallèle, j’ai demandé à ChatGPT de trouver des noms pour ces fameux personnages. L’avantage, c’est qu’il n’est jamais à cours d’inspiration… L’inconvénient, c’est qu’il faut, comme souvent avec les contenus générés par IA, faire du tri dans ce qui est proposé.

À ce stade du projet, je viens de passer plusieurs heures à générer des trucs plus ou moins convaincants à base d’IA. Bing Image Creator propose de générer des images par groupes de 4, et chaque groupe prend entre 30 secondes et 1 min de calcul… (vous comprenez pourquoi il me fallait une IA illimitée… 😅). Certaines propositions sont très chouettes, mais il leur manque souvent un petit quelque chose ou elles comportent des imperfections qui les rendent peu utilisables. Je décide donc de donner un petit coup de pouce à la machine et de me mettre à retoucher manuellement ou mélanger certaines images. Le résultat commence alors à être à la hauteur de mes espérances.

Quelques exemples d’images retouchées images détaillées ici.

En parallèle, je demande à ChatGPT quelques idées d’énigmes. Il est très fort pour proposer des devinettes, mais pas grand chose d’autre. Je me résous rapidement à concevoir les énigmes moi-même.

Images détaillées ici. et ici

Je me retrouve donc avec une importante galerie de personnages pour les deux camps. L’équipe des gentils se nomme EvoLab, et la Team Stardust représente les méchants.

Mais bien sûr, il me fallait un dernier prompt pour que le projet prenne vraiment forme… C’est ChatGPT qui s’est chargé de me proposer un nom pour cet escape game.

Quelques exemples de prompts

On m’a beaucoup demandé quel genre de prompt j’avais utilisés. Voici quelques exemples pour ceux qui seraient intéressés. Notez cependant que les prompt ne donneront jamais les mêmes résultats, même en utilisant le même moteur d’IA que moi. Il existe des catalogues en ligne pour apprendre les commandes qui permettent de rédiger un prompt en fonction de l’IA utilisée.

Image détaillées ici.

Les limites de la génération d’images avec Bing Image Creator

Pour poursuivre sur ma lancée, je me suis demandé si j’arriverais à générer absolument toutes les images de mon jeu avec l’IA. Je me suis donc mis en tête de continuer à produire des images pour tous les éléments du jeu.

Par exemple, j’ai longtemps hésité entre les différentes images proposées pour figurer le célèbre Pokédex. C’est en voyant une image ressemblant fortement à un iPad que je me suis dit que je n’étais pas seulement limité à l’image que l’on voyait dans la série, mais que je pouvais explorer d’autres idées tout en restant fidèle à l’esprit de la série.

Cependant, un problème persistait. Même si Bing Image Creator est assez convaincant pour ce travail, il a quelques limitations qui ont fini par s’avérer gênantes. En effet, il ne génère que des images au format carré dans une résolution de 1024 x 1024. C’était donc franchement inadapté pour certains éléments comme l’écran titre ou la carte du jeu, car cela nécessite beaucoup de détails. Je ne maitrise pas encore suffisamment bien l’art du prompt pour obtenir ce résultat. Il donc fallu trouver une autre solution.

J’aurais pensé que générer la carte du monde, ce serait le truc le plus simple, mais en fait, c’était le moins convaincant avec Bing Image Creator.

J’ai réussi à sortir quelques trucs qui donnent vaguement le change, mais je pense que le format d’image n’est pas adapté. Il me faudrait quelque chose de beaucoup plus détaillé pour être crédible…

Je me suis donc tourné vers d’autres moteurs comme NightCafé qui ont donné des résultats sympathiques, mais malheureusement tout aussi inadaptés.

J’ai testé différents prompts en essayant de me rapprocher le plus possible de ce que j’avais en tête, mais malheureusement, je n’ai pas réussi à obtenir un résultat conforme à ce que j’imaginais. Le format carré, notamment, était un vrai obstacle par rapport à ce que j’avais en tête. Si je n’avais pas les outils pour générer l’image au format souhaité, j’allais trouver un moyen pour transformer celles que j’avais déjà. Je me tournais alors vers la génération par outpainting.

StableDiffusion et l’outpainting à la rescousse

Glossaire

Outpainting : L’outpainting et l’inpainting sont deux technologies de génération d’images par IA. L’outpainting, qui m’intéresse particulièrement ici, permet d’étendre une image au-delà de ses bords en la poursuivant tout en conservant son style d’origine. L’inpainting, à l’inverse, consiste à effacer une partie de l’image pour la remplacer selon le même principe.
Illustration: August Kamp × DALL·E, outpainted from Girl with a Pearl Earring by Johannes Vermeer

Après plusieurs centaines de prompts différents, j’ai commencé à obtenir des éléments de carte qui me convenaient. J’ai donc commencé à les mettre de côté en attendant de pouvoir combler les trous entre elle grâce à l’outpainting.

Je n’ai pas trouvé de service gratuit en ligne qui me permette plus de quelques extensions d’image par outpainting. J’ai donc cherché une solution alternative. Une nouvelle IA est alors venue à mon secours : Stable Diffusion. Contrairement à d’autres services, j’ai pu installer Stable Diffusion directement sur mon Mac et faire générer l’image directement par ma machine plutôt que dans le cloud. C’est nettement plus long et les résultats sont parfois étranges, mais cela fonctionne. J’ai installé DiffusionBee et je lui ai fourni quelques images générées avec Bing Image Creator à partir desquelles j’ai pu générer une carte entière grâce à l’outpainting.

À partir de deux images générées par Bing Image Creator et grâce à l’outpainting, j’ai généré une carte entière en variant les prompts pour obtenir des zones différentes.

Encore une fois, il a fallu beaucoup tâtonner et procéder par essais erreurs, mais j’ai fini par avoir une carte au format souhaité avec une apparence relativement convaincante.

La carte de Paldéa, du jeu Pokémon Violet et Écarlate, m’a servi de modèle pour ce que je cherchais à recréer.
Après de nombreuses retouches par outpainting et inpainting, j’ai fini par obtenir une carte ressemblant à son modèle.

Après un peu de retouche manuelle, j’ai fini par obtenir un résultat satisfaisant, ce qui m’a permis de l’intégrer dans le jeu.

Pour finir, j’ai utilisé la même technique pour générer un écran titre. Beaucoup de tâtonnement et de pistes intéressantes pour générer les logos et l’illustration principale avec Bing Image Creator

Quelques essais pour l’écran titre que j’ai mise de coté. Il y avait quand même de chouettes propositions.

J’ai généré plusieurs centaines d’images mais je n’en ai gardé que 4 que j’ai combinées pour obtenir un résultat à la hauteur de ce que j’imaginais.

J’ai combiné ces 4 images pour obtenir…

Et voilà le résultat ! 🤩

… un écran titre super classe pour démarrer l’aventure!

Bilan de l’expérience (pour le moment)

Alors pour le moment, l’escape game est loin d’être abouti. Mais je me suis bien amusé à explorer les possibilités de l’IA. Si ChatGPT s’est révélé utile par moment, je l’ai vite délaissé pour me plonger dans la génération d’images. Maintenant que j’ai beaucoup tâtonné, j’ai largement de quoi construire mon jeu. Je me suis bien amusé dans le processus. Il y a une fascination étrange à découvrir l’effet d’un changement de mot dans le prompt sur la série d’images suivante . J’ai beaucoup apprécié la satisfaction d’obtenir une image exploitable ou au contraire, la déception d’obtenir des résultats inutilisables. À ce titre, l’IA a un incroyable potentiel et plusieurs pistes que j’ai suivies m’ont été inspirées par des résultats inattendus.

Cependant, tout n’est pas rose dans le monde des IA génératives. Tout d’abord, j’ai passé un temps incroyable à explorer ce domaine. Et pourtant, j’ai l’impression de n’avoir fait qu’en effleurer la surface. De plus, les images comme les textes générés comportent souvent des erreurs qui nécessitent une intervention humaine pour être utilisés.

Je suis extrêmement curieux de voir ce que je pourrais obtenir avec un modèle encore plus puissant comme Midjourney.

Laisser un commentaire

Concevoir un site comme celui-ci avec WordPress.com
Commencer