Vision par ordinateurIA générativeActualités et analyses de l'IAVision par ordinateurIA générativeActualités et analyses de l'IA
Vision par ordinateur7 min de lecture

Perfusion : Stable Diffusion, mais plus contrôlable !

Le nouveau modèle Perfusion de NVIDIA expliqué. Et comment y arriver sans avoir un modèle immense que seule une entreprise comme OpenAI peut utiliser ?

Perfusion : Stable Diffusion, mais plus contrôlable !
Sommaire

Exemple visuel de l’article « Perfusion : Stable Diffusion, mais plus contrôlable ! »

Image tirée de la page du projet Perfusion.

Regardez la vidéo…

Si DALLE ou MidJourney ne vous dit rien, je ne sais vraiment pas quoi faire avec vous. Vous connaissez certainement déjà les modèles texte-image. Mais vous savez peut-être aussi qu’ils ne sont pas très bons lorsqu’ils sont conditionnés par des images. Si vous souhaitez générer une image de vous-même ou y inclure un objet précis, comme cet ourson, dans des conditions particulières, le résultat risque de ne pas être très convaincant.

Ces IA comprennent généralement ce que vous voulez et essaient de générer de nouvelles images qui comprennent quelque chose de semblable à ce que vous leur avez envoyé. L’output demeure toutefois loin d’être parfait, et il est souvent évident qu’il ne s’agit pas du même objet. Eh bien, un nouveau modèle de NVIDIA s’apprête à changer la donne : Perfusion.

Perfusion surpasse largement toutes les approches précédentes lorsqu’il s’agit de faire correspondre les résultats générés à l’image originale. Il s’agit donc essentiellement de Stable Diffusion, mais avec encore plus de contrôle sur l’output ! Préserver la fidélité est extrêmement difficile pour ces modèles génératifs, surtout lorsqu’ils doivent aussi permettre de créer de nouvelles images dans différents contextes.

Exemple visuel de l’article « Perfusion : Stable Diffusion, mais plus contrôlable ! »

Image tirée de la page du projet Perfusion.

Comment les chercheurs y sont-ils arrivés ? Et quel est le nouvel état de l’art qui vous permettra enfin de générer une foule de superbes photos de vous-même pour votre page Instagram, sans devoir sortir pour réellement les prendre !

Et comment y arriver sans avoir un modèle immense que seule une entreprise comme OpenAI peut utiliser ? Dans ce cas-ci, Perfusion est cinq ordres de grandeur plus petit que les modèles génératifs actuels à l’état de l’art.
Sa taille tourne donc autour de 100 KB ! On dirait de la magie, n’est-ce pas ? Plongeons dans le sujet !

Voici ce qu’est Perfusion. Lorsque nous parlons de contrôle accru, nous voulons dire que le modèle peut apprendre le « concept » d’un objet, d’un animal ou d’une personne, puis générer ces concepts dans de nouveaux scénarios.

Pour cet article, je vais supposer que vous avez lu mes articles sur DALLE et Stable Diffusion. Je vais donc me concentrer sur l’innovation de cette approche plutôt que de reprendre son fonctionnement depuis le début. La différence est l’ajout d’un nouveau mécanisme qui permet au modèle de verrouiller des concepts, comme notre ourson.

Exemple visuel de l’article « Perfusion : Stable Diffusion, mais plus contrôlable ! »

Vue d’ensemble du modèle. Image tirée de la page du projet Perfusion.

Les chercheurs ajoutent aussi une façon de fournir plusieurs concepts pouvant tous être verrouillés. Nous pouvons ainsi générer une image qui contient plusieurs éléments choisis, ce qui pourrait être très cool pour la création publicitaire et de nombreuses industries ! Les résultats sont bien meilleurs que jamais, tant quantitativement que qualitativement, pour la génération texte-image avec des concepts associés. La tâche est assez complexe, car il faut optimiser deux objectifs : représenter fidèlement le concept tout en évitant de surentraîner le modèle sur ses images d’exemple, afin de continuer à personnaliser l’image générée. En gros, il faut concentrer l’attention du modèle uniquement sur le concept et non sur les images complètes qui lui sont envoyées.

Comment est-ce possible ?

Évidemment, ils utilisent une architecture de diffusion très semblable, mais y ajoutent quelques astuces cool pour verrouiller efficacement les concepts et réduire la taille du modèle à l’aide d’une technique appelée Rank-1 Model editing. Comme dans tous les modèles texte-image actuels fondés sur la diffusion, qui ressemblent à ceci, un prompt textuel est toujours encodé afin d’en extraire l’information pertinente.

Cette information est ensuite ajoutée d’une façon ou d’une autre, habituellement au moyen du mécanisme d’attention croisée, à notre processus de génération d’images. Il s’agit d’un processus itératif, comme je l’ai expliqué dans mon article sur la diffusion si vous ne connaissez pas cette architecture !

C’est précisément dans cet espace, à l’étape de l’attention croisée, qu’ils ont travaillé. Cette modification, appelée Rank-1 edit ou gated rank-1 edit ici, aide le modèle à comprendre où les images se trouvent dans l’image finale et à contrôler ce qui y apparaît. Nous avons donc deux objectifs, le « où » et le « quoi », respectivement représentés par k et v. Ils utilisent aussi des supercatégories plutôt que de s’appuyer uniquement sur les mots. Ici, par exemple, ils transforment le mot vers le superconcept « teddy », peu importe la façon dont nous y faisons référence dans le prompt. Que nous utilisions son nom Hugsy, comme dans cet exemple, ou n’importe quel synonyme pour parler d’un ourson, le modèle transforme les encodages du prompt pour les faire correspondre à l’encodage de teddy. Il sait ainsi toujours à quoi nous faisons référence.

Rappelez-vous, cette méthode s’appelle une gated rank-q edit. Le mécanisme de porte vient du fait que, pendant l’entraînement, les mises à jour des poids du modèle s’appliquent uniquement aux composantes de l’encodage qui correspondent au concept. C’est grâce à cette porte que nous pouvons lui envoyer plusieurs concepts tout en obtenant de bons résultats ! Elle permet aussi de régler la force des concepts appris, ce qui offre beaucoup plus de contrôle que les autres approches.

Et ce sont les seules modifications apportées ! Pour le reste, il s’agit simplement de l’architecture de Stable Diffusion et des mêmes principes, avec des encodages de prompts ajustés pour mieux contrôler les résultats !

Exemple visuel de l’article « Perfusion : Stable Diffusion, mais plus contrôlable ! »

Limite du modèle et compromis entre le surentraînement et la généralisation. Image tirée de la page du projet Perfusion.

Le modèle n’est toujours pas parfait, mais il représente un grand pas en avant vers des modèles texte-image qui offrent un contrôle complet sur la génération ! Il a encore du mal à préserver l’identité de l’objet envoyé à cause de l’étape que nous avons vue, où l’objet est représenté par une « supercatégorie ». Cela entraîne parfois une généralisation excessive, puisque certaines supercatégories sont trop larges et regroupent plusieurs objets différents ou des styles précis dont nous ne voulons pas nécessairement. Les chercheurs mentionnent également que la combinaison de concepts demande beaucoup de prompt engineering, une autre bonne raison d’apprendre à mieux rédiger nos prompts !

Exemple visuel de l’article « Perfusion : Stable Diffusion, mais plus contrôlable ! »

En vert, le modèle Perfusion optimise la similarité avec l’image et le prompt. Image tirée de la page du projet Perfusion.

Malgré tout, les résultats sont très impressionnants et le code sera bientôt accessible.
J’ai hâte de voir comment il sera utilisé ! J’espère que cet aperçu du nouvel article sur Perfusion vous a plu, et je vous invite à le lire pour obtenir plus de détails sur l’implémentation et les résultats quantitatifs. C’est un article scientifique incroyable et très clair. Tous les liens se trouvent dans la description ci-dessous.

Merci de m’avoir lu. Je vous retrouve la prochaine fois avec un autre article scientifique incroyable !


Références

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 personnalise Perfusion de NVIDIA ?

Perfusion apprend à un modèle texte-image à reconnaître un sujet précis à partir de quelques images, tout en conservant le contrôle offert par le prompt.

Quels sont les deux objectifs à équilibrer pour personnaliser un modèle ?

Le modèle doit reproduire fidèlement le sujet sans se surentraîner au point de rendre impossibles de nouvelles scènes et de nouveaux styles.

Pourquoi Perfusion est-il plus compact qu’un fine-tuning complet ?

Il modifie un petit ensemble de paramètres associés au concept appris plutôt que de réentraîner tout le modèle de diffusion.

Perfusion peut-il combiner des concepts appris ?

Sa représentation contrôlable permet de réunir des concepts personnalisés et d’ajuster leur influence visuelle.

Comment évaluer la qualité de la personnalisation ?

Vérifiez à la fois la ressemblance de l’identité et la diversité des prompts, des poses, des arrière-plans, des styles et des compositions.