Édition d'image à partir d'instructions textuelles : InstructPix2Pix expliqué

Nous savons que l'IA peut générer des images ; maintenant, modifions-les !

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

Exemples du modèle. Image tirée du papier.

Il suffit de regarder ces résultats étonnants… et cela ne vient pas d'OpenAI ou de Google avec un budget infini.

Il s'agit d'une publication récente de Tim Brooks et collaborateurs de l'Université de Californie, dont le prof. Alexei A. Efros, une figure bien connue de l'industrie de la vision par ordinateur.

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, car ils ont partagé une démo du modèle sur huggingface, que vous pouvez utiliser gratuitement !

Ce qui est encore plus incroyable, c'est la façon dont ils ont obtenu ces résultats. Plongeons-y !

Édition d'image… Plus, édition d'image à partir d'instructions textuelles. C'est encore plus complexe que l'édition d'images avec des suggestions graphiques utilisant une sorte de croquis ou de segmentation sur votre image pour orienter votre modèle.

Exemple de génération d'image à l'aide d'un croquis à titre indicatif. Du modèle make-a-scene.

Ici, nous voulons prendre une instruction et une image et éditer automatiquement l'image en fonction de ce qui est dit. Votre IA doit comprendre le textes, puis comprendre l'image pour savoir quoi modifier et comment. Mais comment fait-il cela ? Eh bien, une telle approche aurait généralement besoin de deux modèles, un pour le langage et un pour les images, puis essaierait de trouver un moyen de faire en sorte que les deux communiquent et fonctionnent bien ensemble. Comme je l'ai dit, Tim et son équipe ont utilisé les modèles populaires GPT-3 et Stable Diffusion. Mais ces modèles ne sont pas dans la solution finale. Alors qu'ont-ils fait et pourquoi ont-ils eu besoin de GPT-3 et de Stable Diffusion ?

Image tirée du papier.

Ils avaient besoin des deux modèles pour créer un ensemble de données puissant adapté à la tâche et l'utiliser pour former un modèle plus spécifique, simplifiant la tâche en apprenant à un seul modèle à effectuer de telles modifications basées sur du texte au lieu d'essayer d'utiliser deux modèles généraux et puissants pour une tâche bien précise. En effet, ils ont utilisé une version du modèle GPT-3 pour générer des instructions et éditer des légendes d'images avec celles-ci, tel que l’on peut voir ci-dessus.

Ces nouvelles légendes générées sont ensuite envoyées pour générer l'image avec une version éditée de celle-ci grâce à un troisième modèle, “prompt-to-prompt” , qui peut éditer une image en fonction des modifications du texte qui a été utilisé pour la générer. Donc, à ce stade, nous utilisons trois modèles puissants qui ont déjà été 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 enfin, prompt-to-prompt pour les éditer en fonction de la légende éditée.

Et nous nous retrouvons avec notre immense ensemble de données de paires d'images ainsi que des instructions simples de notre première étape. Plus précisément, environ un demi-million de ces exemples. Nous avons maintenant besoin que d'un nouveau modèle qui pourrait prendre une image et du texte comme conditions pour générer une nouvelle image, qui apprendrait alors de ces exemples à modifier l'image initiale avec le texte pour recréer aux paires d'images que nous voyons à l’étape c) de l’image ci-haut. C'est donc beaucoup plus simple puisque notre nouveau modèle très spécifique peut simplement apprendre à copier-coller ce processus d'édition à travers ce que nous appelons un processus d'apprentissage supervisé. Il n'a pas besoin de comprendre les images et le texte. Il doit juste comprendre que lorsque le texte dit de modifier tel objet, il doit modifier tel objet.

Il aura une certaine compréhension des différents concepts et sera super puissant pour cette tâche d'édition spécifique sur des données similaires à l'ensemble de formation, mais son niveau de compréhension sera loin des modèles individuels dont nous avons discuté et encore plus loin de notre compréhension. Quand vous ne pouvez le rendre plus intelligent, rendez-le plus spécifique!

Cet ensemble de données entièrement créé artificiellement est de loin la partie la plus intéressante de ce projet, mais nous avons toujours besoin d'un modèle pour exploiter ces données.

Image tirée du papier.

Celui en question ici s'appelle InstructPix2Pix.

Et comme je l'ai dit, il est disponible gratuitement en ligne si vous souhaitez l'essayer.

InstructPix2Pix est un nouveau modèle basé sur la diffusion, ce qui n'est certainement pas une surprise si vous avez suivi la chaîne. Il s'agit du même type de modèle utilisé par DALLE, Stable Diffusion et d'autres IA récentes basées sur l'image.

Leur modèle est basé sur nul autre que Stable Diffusion en raison de sa puissance et de son rendement élevé. J'ai déjà couvert le modèle Stable Diffusion dans une vidéo, à laquelle je vais vous référer, mais voyons ce qu'ils ont fait différemment ici. Rapidement, les modèles de diffusion utilisent le bruit pour générer des images. En termes simples, cela signifie qu'ils formeront un modèle pour ajouter de manière itérative du bruit, essentiellement des valeurs quelque peu aléatoires que leur modèle peut contrôler, à un ensemble initial de pixels aléatoires afin de terminer avec une image réelle. Ça semble magique, mais cela fonctionne grâce à l’entraînement du modèle. C'est effectivement grâce à un processus de formation intelligent consistant à prendre des exemples d'images et à ajouter du bruit de manière aléatoire jusqu'à ce que l'image soit complète.

Ici, nous ne voulons pas seulement générer une image, mais nous voulons également la contrôler avec notre image initiale et ne modifier que ce que dit notre texte. Pour ce faire, ils modifieront légèrement l'architecture Stable Diffusion existante pour permettre l'envoi d'une image initiale avec le texte, car l'architecture Stable Diffusion peut déjà prendre du texte comme conditions pour générer des images. Ensuite, ils calibrent soigneusement le processus de formation du modèle pour respecter à la fois l'image et nos changements souhaités. Il est finalement formé par essais et erreurs pour reproduire notre image éditée.

Et voilà !

Vous obtenez InstructPix2Pix, qui vous permet d'éditer vos images avec des instructions textuelles simples ! Le modèle est super puissant et génère des images en quelques secondes.

Ils suggèrent également l'utilisation de l'apprentissage par renforcement humain, une technique très puissante qu'OpenAI a récemment utilisée pour ChatGPT, et vous savez où cela mène.

Bien sûr, ce n'était qu'un aperçu de l'approche, et je vous invite définitivement à l'essayer vous-même avec leur démo et à en apprendre plus sur leur approche en lisant l'article ou avec le code qu'ils ont rendu public. Tous les liens sont en référence ci-dessous.

Exemples de limitation. Image tirée du papier.

J'aimerais connaître votre opinion sur les résultats si vous l'essayez et où il semble échouer le plus souvent ou réussir. Partagez les résultats avec notre communauté sur Discord !

J'espère que cet article vous a plu !

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: https://huggingface.co/spaces/timbrooks/instruct-pix2pix

Louis-François Bouchard

Hello! Je suis Louis-François Bouchard, de Montréal, Canada, aussi connu sous le nom de 'What's AI' et j'essaie de partager et de vulgariser tout ce qui est en lien avec l'intelligence artificielle. Mon objectif est de démystifier la «boîte noire» de l'IA pour tous et de sensibiliser les gens aux risques de son utilisation.

https://www.youtube.com/channel/UCIUgms0TE2WhQijbU-IMYyw
Précédent
Précédent

Générer de la musique avec l'IA !

Suivant
Suivant

Cette IA peut cloner votre voix !