Lorsque vous utilisez une IA de génération d'images, vous rencontrez souvent le terme 'CLIP'. Beaucoup pensent à tort qu'il s'agit simplement d'un 'interprète qui convertit le texte en image', mais le rôle de CLIP est beaucoup plus profond et sophistiqué. Avec l'apparition de l'approche 'dual CLIP' qui utilise deux encodeurs pour générer des images de haute qualité, la stratégie de rédaction de prompts évolue également.

Dans cet article, nous allons examiner le concept de base de CLIP et comment optimiser les prompts dans un système à double encodeur.


1. Qu'est-ce que CLIP ?



CLIP (Contrastive Language-Image Pre-training) est un modèle développé par OpenAI, qui, comme son nom l'indique, apprend à partir d'images et de textes en les comparant dans un modèle multimodal.

La fonctionnalité principale consiste à placer des images et du texte dans un 'espace latent', un espace vectoriel fictif.

  • Si le texte "chien" est situé à des coordonnées spécifiques (vecteur),

  • la photo d'un "chien" sera également apprise pour se situer à des coordonnées très proches.

Rôle dans les modèles de génération d'images :

Il est important de noter que CLIP n'est pas un générateur d'images. Au lieu de cela, il joue le rôle de 'juge' ou 'navigateur' qui évalue "dans quelle mesure l'image générée correspond à la prompt textuelle de l'utilisateur ?" Plus le score CLIP est élevé (plus le texte et l'image sont proches), plus le modèle générateur estime que "cette direction est correcte" et ajoute des détails.


2. L'apparition de l'encodeur dual : pourquoi utiliser deux modèles ?

Récemment, des modèles haute performance comme Stable Diffusion XL (SDXL) ont adopté une approche 'encodeur texte double' plutôt qu'un CLIP unique. La combinaison représentative est clip_l et t5xxl_fp16.

Cela est dû à 'la répartition des rôles et la spécialisation'.

  1. clip_l (expert en correspondance visuelle/mots clés) :

    • C'est l'encodeur textuel traditionnel de CLIP.

    • Il est puissant pour établir des concepts visuels entre les images et le texte.

    • Principalement utilisé pour capturer des mots clés essentiels, styles, compositions et autres éléments visuels.

  2. t5xxl_fp16 (expert en langue/contexte) :

    • T5 est un modèle de langage de grande taille développé par Google, qui est bien plus grand que l'encodeur de texte de base de CLIP.

    • Il comprend beaucoup plus en profondeur des structures de phrases complexes, du contexte et des relations subtiles entre les mots plutôt que de simples mots clés.

    • En tant qu'"expert en langue", il perçoit les nuances détaillées dans les prompts.

En utilisant les deux encodeurs ensemble, on peut générer des images beaucoup plus riches et précises qui reflètent à la fois le sens de phrases complexes (T5) et le style visuel clé (CLIP-L).


3. Comment rédiger le prompt optimal : combinaison de phrases et de mots clés



Pour tirer le meilleur parti de ce système à double encodeur, il est préférable d'offrir des prompts adaptés aux caractéristiques de chaque encodeur. De nombreux outils avancés de génération d'images (par exemple, ComfyUI) permettent d'entrer des textes différents pour chacun de ces deux encodeurs.

  • Pour T5-XXL (expert en langue) → phrase naturelle

    • Il est conseillé de rédiger sous forme de phrases complètes pour que le modèle puisse comprendre le contexte.

    • Exemple : "Une jeune femme japonaise dans la vingtaine, avec une queue de cheval noire et portant des lunettes à monture noire. Elle est assise sur un tapis blanc, écoutant de la musique et regardant l'appareil photo."

  • Pour CLIP-L (expert en correspondance visuelle) → 'mots clés essentiels'

    • Il est efficace de lister des éléments visuels clés tels que le style, l'objet, la couleur et la composition.

    • Exemple : "femme japonaise, vingtaine, queue de cheval noire, lunettes noires, écouteurs blancs, tapis blanc, écoutant de la musique, assise, regardant vers le haut, de dessus, corps entier, photo professionnelle réelle"


4. Que dire d'un prompt au format JSON ou dictionnaire ?

Pour gérer les prompts de manière systématique, il peut être intéressant de rédiger sous forme de JSON ou de dictionnaire (Python Dictionary) comme suit.

{
"Character":"femme japonaise dans la vingtaine.",
"Appearance":{
"hair": "cheveux en queue de cheval noire",
"wearing": "lunettes à monture noire, écouteurs sans fil blancs"
},
"Action": "écoutant de la musique, assis sur un tapis blanc",
"style": "photo professionnelle réelle"
}

Copier cette structure directement pour l'entrée dans les encodeurs T5 et CLIP-L est très inefficace et indésirable.

Pourquoi cela ne fonctionne-t-il pas ?

  1. Incompatibilité avec la méthode d'apprentissage du modèle : Des modèles comme T5 ou CLIP ont appris des phrases naturelles (textes). Des symboles comme {, }, " peuvent être perçus par le modèle comme du 'bruit' et non comme du 'langage'.

  2. Rupture de contexte : La connexion contextuelle organique entre "Character": "..." et "Action": "..." est rompue. Le modèle interprète "caractère" et "action" comme des morceaux d'information distincts, ce qui complique l'intégration en une scène naturelle.

Exemple de transformation correcte

Pour utiliser correctement les données JSON dans un système à double encodeur, il est nécessaire d'effectuer un 'traduction' comme suit.

  • T5-XXL (entrée sous forme de phrase) :

    Une jeune femme japonaise dans la vingtaine, avec une queue de cheval noire, portant des lunettes à monture noire et des écouteurs sans fil blancs. Elle écoute de la musique en étant assise sur un tapis blanc. C'est une photo professionnelle réelle.

  • CLIP-L (entrée sous forme de mots clés) :

    femme japonaise, vingtaine, queue de cheval noire, lunettes à monture noire, écouteurs sans fil blancs, écoutant de la musique, assise sur un tapis blanc, photo professionnelle réelle

image_from_right_prompt


5. Résumé et conclusion

  1. CLIP n'est pas un générateur d'images, mais un 'juge' qui évalue la correspondance entre le texte et l'image.

  2. L'encodeur double (T5 + CLIP-L) est une méthode puissante où l'expert en langue (T5) et l'expert en correspondance visuelle (CLIP-L) collaborent.

  3. Pour obtenir les meilleurs résultats, il est préférable de fournir des phrases naturelles à T5 et des mots clés essentiels à CLIP-L.

  4. Utiliser des données structurées comme JSON ou dictionnaire directement dans les prompts nuit à la compréhension du modèle ; il est donc nécessaire de les transformer en phrases naturelles et mots clés pour une utilisation optimale.