Vision par ordinateurApprendre l'IAIngénierie IAVision par ordinateurApprendre l'IA
Vision par ordinateurIngénierie IA7 min de lecture

Édition d’images à partir d’instructions textuelles : InstructPix2Pix

Ce nouveau modèle appelé InstructPix2Pix fait exactement cela : il modifie une image en suivant une instruction textuelle donnée par l’utilisateur.

Édition d’images à partir d’instructions textuelles : InstructPix2Pix
Sommaire

Regardez la vidéo

Nous savons que l’IA peut générer des images. Maintenant, modifions-les !

Ce nouveau modèle appelé InstructPix2Pix fait exactement cela : il modifie une image en suivant une instruction textuelle donnée par l’utilisateur.

Exemple visuel tiré de Édition d’images à partir d’instructions textuelles : InstructPix2Pix

Exemple visuel tiré de Édition d’images à partir d’instructions textuelles : InstructPix2Pix

Exemple produit avec InstructPix2Pix en utilisant le prompt « Add sunglasses ».

Regardez simplement ces résultats incroyables… et ils ne viennent pas d’OpenAI ou de Google avec un budget infini.

Il s’agit d’une publication récente de Tim Brooks et de ses collaborateurs à l’Université de Californie, dont le professeur Alexei A. Efros, une figure bien connue du domaine de la vision par ordinateur.

Exemple visuel tiré de Édition d’images à partir d’instructions textuelles : InstructPix2Pix

Exemple tiré de l’article de recherche.

Comme vous pouvez le voir, les résultats sont tout simplement incroyables.

N’hésitez pas à l’essayer vous-même avec le lien ci-dessous. Les chercheurs ont partagé une démo gratuite du modèle sur Hugging Face !

Ce qui est encore plus incroyable, c’est la façon dont ils ont obtenu ces résultats. Plongeons dans l’approche !

L’édition d’images… Plus précisément, l’édition d’images à partir d’instructions textuelles. C’est encore plus complexe que de modifier des images avec des indications graphiques, comme un croquis ou une segmentation dessinée sur votre image pour orienter le modèle.

Exemple visuel tiré de Édition d’images à partir d’instructions textuelles : InstructPix2Pix

Exemple de génération d’images guidée par un croquis. Tiré du modèle Make-A-Scene.

Ici, nous voulons prendre une instruction et une image, puis modifier automatiquement l’image selon ce que dit l’instruction. Votre IA doit comprendre les deux textes, puis comprendre l’image pour savoir quoi modifier et comment le faire. Mais comment y arrive-t-elle ? Habituellement, il faudrait deux modèles, un pour le langage et un pour les images, puis trouver une façon de les faire communiquer et bien travailler ensemble. Comme je l’ai dit, les chercheurs ont utilisé les modèles populaires GPT-3 et Stable Diffusion. Mais ces modèles ne font pas partie de la solution finale. Alors, qu’ont-ils fait et pourquoi avaient-ils besoin de GPT-3 et de Stable Diffusion ?

Exemple visuel tiré de Édition d’images à partir d’instructions textuelles : InstructPix2Pix

Processus de génération des données d’entraînement. Image tirée de l’article de recherche.

Ils avaient besoin des deux modèles pour bâtir un jeu de données puissant et adapté à la tâche, puis l’utiliser pour entraîner un modèle plus précis. Ils simplifient ainsi la tâche en apprenant à un seul modèle à effectuer ces modifications textuelles, plutôt qu’en tentant d’utiliser deux modèles généraux et puissants pour une tâche très précise. En effet, ils ont utilisé une version de GPT-3 pour générer des instructions et modifier avec celles-ci les légendes des images.

Ces nouvelles légendes sont ensuite envoyées pour générer l’image ainsi qu’une version modifiée grâce à un troisième modèle, prompt-to-prompt, qui peut modifier une image selon les changements apportés au texte ayant servi à la générer. À ce stade, nous utilisons donc trois modèles puissants déjà entraînés afin de créer artificiellement des données pour notre nouvelle tâche d’édition : GPT-3 pour générer du texte, Stable Diffusion pour générer des images et, finalement, prompt-to-prompt pour les modifier selon la légende révisée.

Nous obtenons ainsi un immense jeu de données composé de paires d’images et des instructions simples de la première étape. Plus précisément, environ un demi-million de ces exemples. Il ne nous faut maintenant qu’un nouveau modèle capable de recevoir une image et du texte comme conditions pour générer une nouvelle image. Il apprendrait à partir de ces exemples à modifier l’image initiale avec le texte afin de recréer la paire d’images que nous voyons ici. C’est donc beaucoup plus simple, puisque notre nouveau modèle très spécialisé peut simplement apprendre à copier-coller ce processus d’édition au moyen de ce que nous appelons l’apprentissage supervisé. Il n’a pas besoin de comprendre les images et le texte. Il doit seulement comprendre que lorsque le texte dit ceci, il doit modifier cela.

Il aura une certaine compréhension des différents concepts et sera extrêmement puissant pour cette tâche d’édition précise sur des données semblables à celles de l’ensemble d’entraînement. Son niveau de compréhension restera toutefois loin de celui des modèles individuels dont nous avons parlé, et encore plus loin du nôtre. Lorsque vous ne pouvez pas le rendre plus intelligent, rendez-le plus précis !

Ce jeu de données entièrement créé artificiellement est de loin la partie la plus géniale du projet, mais il nous faut encore un modèle pour exploiter ces données.

Exemple visuel tiré de Édition d’images à partir d’instructions textuelles : InstructPix2Pix

Image tirée de l’article de recherche.

Le modèle en question s’appelle InstructPix2Pix.

Et comme je l’ai dit, vous pouvez l’essayer gratuitement en ligne.

InstructPix2Pix est un nouveau modèle basé sur la diffusion, ce qui n’est certainement pas une surprise si vous suivez la chaîne. C’est le même type de modèle qu’utilisent DALLE, Stable Diffusion et les autres IA récentes qui travaillent avec des images.

Leur modèle repose sur nul autre que Stable Diffusion en raison de sa puissance et de sa grande efficacité. J’ai déjà présenté Stable Diffusion dans une vidéo, à laquelle je vous invite à vous référer, mais voyons rapidement ce qu’ils ont fait différemment ici. Les modèles de diffusion utilisent du bruit pour générer des images. En gros, ils entraînent un modèle à ajouter du bruit de façon itérative, soit des valeurs plus ou moins aléatoires qu’il peut contrôler, à un ensemble initial de pixels aléatoires afin d’obtenir une vraie image. Cela semble magique, mais fonctionne grâce à l’entraînement du modèle. Le processus consiste à prendre des exemples d’images et à leur ajouter du bruit aléatoirement jusqu’à ce qu’elles deviennent entièrement du bruit.

Exemple visuel tiré de Édition d’images à partir d’instructions textuelles : InstructPix2Pix

Ici, nous ne voulons pas seulement générer une image. Nous voulons aussi la contrôler avec notre image initiale et modifier uniquement ce que demande le texte. Pour y arriver, les chercheurs modifient légèrement l’architecture existante de Stable Diffusion afin qu’elle puisse recevoir une image initiale en plus du texte, puisque Stable Diffusion accepte déjà du texte comme condition pour générer des images. Ils calibrent ensuite soigneusement le processus d’entraînement afin que le modèle respecte à la fois l’image et les changements souhaités. Finalement, ils l’entraînent par essais et erreurs à reproduire notre paire d’images.

Et voilà !

Vous obtenez InstructPix2Pix, qui vous permet de modifier vos images à l’aide de simples instructions textuelles ! Le modèle est extrêmement puissant et génère des images en quelques secondes.

Les chercheurs suggèrent aussi d’utiliser l’apprentissage par renforcement avec intervention humaine, une technique très puissante qu’OpenAI a récemment employée pour ChatGPT, et vous savez où cela a mené.

Bien sûr, ce n’était qu’un survol de l’approche. Je vous invite vraiment à essayer la démo vous-même et à en apprendre davantage en lisant l’article de recherche ou en consultant le code rendu public.

Exemple visuel tiré de Édition d’images à partir d’instructions textuelles : InstructPix2Pix

Exemples des limites. Image tirée de l’article de recherche.

J’aimerais connaître votre opinion sur les résultats si vous l’essayez, et savoir où le modèle semble échouer ou réussir le plus souvent. Partagez vos résultats avec notre communauté Discord ! Tous les liens se trouvent dans la description ci-dessous.

J’espère que vous avez aimé cet article !

Louis


Références

►Brooks et al., 2022: InstructPix2Pix, https://arxiv.org/pdf/2211.09800.pdf
► Site Web : https://www.timothybrooks.com/instruct-pix2pix/
► Code : https://github.com/timothybrooks/instruct-pix2pix
► Démo gratuite : https://huggingface.co/spaces/timbrooks/instruct-pix2pix

Discussion

Commentaires

Chargement

Aucun compte requis. Votre nom et votre commentaire seront publics, alors n'incluez pas de renseignements privés. Consultez la page de confidentialité pour les détails.

Continuez à apprendre

Vous voulez le côté pratique de l'IA, sans le brouillard marketing ?

Je partage ce qui est utile sur YouTube, Substack et dans mes guides d'ingénierie IA.

FAQ

Que fait InstructPix2Pix ?

Il modifie une image d’entrée selon une instruction en langage naturel sans exiger un modèle distinct pour chaque modification.

Quelles sont les deux conditions qui guident le résultat ?

Le modèle reçoit à la fois l’image originale et un texte qui décrit comment cette image doit changer.

Comment le jeu de données d’entraînement a-t-il été créé ?

Des modèles de langage et d’images ont généré automatiquement des instructions appariées, des images sources et des images cibles modifiées.

Pourquoi un jeu de données synthétique est-il utile ici ?

De grandes collections d’instructions écrites par des humains et jumelées à des images avant et après sont coûteuses et difficiles à recueillir.

Que devrait préserver une bonne modification ?

Elle devrait appliquer le changement demandé tout en gardant stables le contenu sans lien avec celui-ci, l’identité, la géométrie et le style.