La technologie de génération d'images par IA connaît un développement fulgurant, mais la taille des modèles augmente de manière exponentielle, rendant leur entraînement et leur utilisation coûteux pour les utilisateurs ordinaires. Aujourd'hui, un nouveau framework texte-vers-image nommé « Sana » révolutionne le domaine. Il génère des images ultra-haute définition jusqu'à 4096×4096 pixels avec une vitesse impressionnante, fonctionnant même sur le GPU d'un ordinateur portable.
La conception de Sana repose sur les éléments clés suivants :
Auto-encodeur profondément compressé : Contrairement aux auto-encodeurs traditionnels qui compressent les images seulement 8 fois, celui de Sana compresse les images 32 fois, réduisant ainsi efficacement le nombre de jetons latents. Ceci est crucial pour un entraînement et une génération d'images haute résolution efficaces.
DiT linéaire : Sana remplace tous les mécanismes d'attention traditionnels du DiT par une attention linéaire. Cela améliore l'efficacité du traitement des images haute résolution sans sacrifier la qualité. L'attention linéaire réduit la complexité de calcul de O(N²) à O(N). De plus, Sana utilise Mix-FFN, intégrant une convolution 3x3 dans le MLP pour agréger les informations locales des jetons, éliminant ainsi le besoin d'encodage de position.
Encodeur de texte de type décodeur : Sana utilise les derniers petits LLM de type décodeur (comme Gemma) comme encodeur de texte, remplaçant les CLIP ou T5 couramment utilisés. Cette approche améliore la compréhension et le raisonnement du modèle concernant les invites de l'utilisateur, et améliore l'alignement texte-image grâce à un apprentissage contextuel et des instructions complexes.
Stratégies d'entraînement et d'échantillonnage efficaces : Sana utilise Flow-DPM-Solver pour réduire les étapes d'échantillonnage et une méthode efficace d'annotation et de sélection de titres pour accélérer la convergence du modèle. Le modèle Sana-0.6B est 20 fois plus petit et plus de 100 fois plus rapide que les grands modèles de diffusion (comme Flux-12B).
L'innovation de Sana réside dans la réduction significative du délai d'inférence grâce aux méthodes suivantes :
Optimisation conjointe algorithmique et système : Grâce à de multiples optimisations, Sana réduit le temps de génération d'une image 4096x4096 de 469 secondes à 9,6 secondes, soit 106 fois plus vite que le modèle de pointe actuel, Flux.
Auto-encodeur profondément compressé : Sana utilise une architecture AE-F32C32P1, compressant les images 32 fois, réduisant considérablement le nombre de jetons et accélérant l'entraînement et l'inférence.
Attention linéaire : Le remplacement de l'attention auto-attentionnelle traditionnelle par une attention linéaire améliore l'efficacité du traitement des images haute résolution.
Accélération Triton : L'utilisation de Triton pour fusionner les noyaux des processus direct et inverse du module d'attention linéaire accélère encore l'entraînement et l'inférence.
Flow-DPM-Solver : Réduction du nombre d'étapes d'échantillonnage d'inférence de 28-50 à 14-20, tout en obtenant de meilleurs résultats de génération.
Sana affiche des performances exceptionnelles. Avec une résolution de 1024x1024, le modèle Sana-0.6B ne compte que 590 millions de paramètres, mais atteint une performance globale de 0,64 GenEval, rivalisant avec des modèles beaucoup plus grands. De plus, Sana-0.6B peut être déployé sur un GPU d'ordinateur portable de 16 Go, générant des images de 1024×1024 en moins d'une seconde. Pour la génération d'images 4K, le débit de Sana-0.6B est plus de 100 fois supérieur à celui des méthodes les plus avancées (FLUX). Sana réalise non seulement une percée en termes de vitesse, mais offre également une qualité d'image compétitive, même pour des scènes complexes, comme le rendu de texte et les détails des objets.
De plus, Sana possède de solides capacités de transfert linguistique zéro-shot. Même entraîné uniquement sur des données anglaises, Sana comprend les invites en chinois et les emojis et génère les images correspondantes.
L'arrivée de Sana abaisse le seuil de la génération d'images de haute qualité, offrant aux professionnels et aux utilisateurs ordinaires un puissant outil de création de contenu. Le code et le modèle de Sana seront publiés publiquement.
Adresse de démonstration : https://nv-sana.mit.edu/
Adresse de l'article : https://arxiv.org/pdf/2410.10629
Github : https://github.com/NVlabs/Sana