Les modèles de fondations génératifs ont révolutionné le traitement du langage naturel (PNL), avec des modèles de langage large (LLMS) excellant sur diverses tâches. Cependant, le domaine de la génération visuelle n'a toujours pas un modèle unifié capable de gérer plusieurs tâches dans un seul cadre. Des modèles existants comme la diffusion stable, Dall-E et Imagen excellent dans des domaines spécifiques mais s'appuient sur des extensions spécifiques à la tâche telles que ControlNet ou InstructPix2Pix, qui limitent leur polyvalence et leur évolutivité.
Omnigen comble cet écart en introduisant un cadre unifié pour la génération d'images. Contrairement aux modèles de diffusion traditionnels, Omnigen dispose d'une architecture concise comprenant uniquement un autoencodeur variationnel (VAE) et un modèle de transformateur, éliminant la nécessité de composants externes spécifiques à la tâche. Cette conception permet à Omnigen de gérer les entrées de texte et d'image entrelacées arbitrairement, permettant une large gamme de tâches telles que la génération de texte à l'image, l'édition d'images et la génération contrôlable dans un seul modèle.
Omnigen excelle non seulement dans les références pour la génération de texte à l'image, mais démontre également un apprentissage de transfert robuste, des capacités émergentes et un raisonnement à travers des tâches et des domaines invisibles.
Dans cette section, nous examinerons le cadre Omnigen, en nous concentrant sur ses principes de conception de modèle, son architecture et ses stratégies de formation innovantes.
Les modèles de diffusion actuels sont souvent confrontés à des limites, restreignant leur convivialité à des tâches spécifiques, telles que la génération de texte à l'image. L'extension de leurs fonctionnalités implique généralement d'intégrer des réseaux spécifiques à des tâches supplémentaires, qui sont lourds et manquent de réutilisabilité entre diverses tâches. Omnigen relève ces défis en adhérant à deux principes de conception de base:
Omnigen adopte une architecture innovante qui intègre un autoencodeur variationnel (VAE) et un modèle de transformateur grand prélevé:
Contrairement aux modèles de diffusion conventionnels qui reposent sur des encodeurs distincts (par exemple, des codateurs de clip ou d'image) pour les conditions d'entrée de prétraitement, Omnigen code intrinsèquement toutes les informations conditionnelles, simplifiant considérablement le pipeline. Il modélise également conjointement le texte et les images dans un seul cadre, améliorant l'interaction entre les modalités.
Omnigen accepte les invites multimodales de forme libre, le texte entrelacé et les images:
Le mécanisme d'attention change la donne dans l'IA, permettant aux modèles de se concentrer sur les données les plus pertinentes tout en traitement des tâches complexes. De l'alimentation des transformateurs à la révolution de la PNL et de la vision par ordinateur, ce concept a redéfini l'efficacité et la précision des systèmes d'apprentissage automatique.
Omnigen modifie le mécanisme d'attention causal standard pour améliorer la modélisation de l'image:
Le processus d'inférence est où les modèles d'IA appliquent des modèles appris à de nouvelles données, transformant la formation en prédictions exploitables. C'est la dernière étape que les ponts modélisent la formation avec des applications réelles, stimulant les idées et l'automatisation dans les industries.
Omnigen utilise une méthode de correspondance de flux pour l'inférence:
Omnigen utilise l'approche du flux rectifié pour l'optimisation, qui diffère des méthodes DDPM traditionnelles. Il interpole linéairement entre le bruit et les données, formant le modèle pour régresser directement les vitesses cibles basées sur des données nuises, des informations sur l'horodatage et de la condition.
L'objectif de formation minimise une perte d'erreur carrée moyenne pondérée, mettant l'accent sur les régions où les changements se produisent dans les tâches d'édition d'image pour empêcher le modèle de sur-ajustement aux zones inchangées.
Omnigen s'entraîne progressivement à l'augmentation des résolutions d'images, équilibrant l'efficacité des données avec la qualité esthétique.
Les détails de la formation, y compris la résolution, les étapes, la taille du lot et le taux d'apprentissage, sont décrits ci-dessous:
Scène | Résolution d'image | Étapes de formation (k) | Taille de lot | Taux d'apprentissage |
1 | 256 × 256 | 500 | 1040 | 1E-4 |
2 | 512 × 512 | 300 | 520 | 1E-4 |
3 | 1024 × 1024 | 100 | 208 | 4E-5 |
4 | 2240 × 2240 | 30 | 104 | 2E-5 |
5 | Multiple | 80 | 104 | 2E-5 |
Grâce à son architecture innovante et à sa méthodologie de formation efficace, Omnigen établit une nouvelle référence dans les modèles de diffusion, permettant une génération d'images polyvalente et de haute qualité pour un large éventail d'applications.
Pour permettre un traitement multi-tâches robuste dans la génération d'images, la construction d'une base à grande échelle et diversifiée était essentielle. Omnigen y parvient en redéfinissant la façon dont les modèles abordent la polyvalence et l'adaptabilité entre diverses tâches.
Les principales innovations comprennent :
Grâce à ces progrès, Omnigen établit une référence pour obtenir des capacités de génération d'images unifiées et intelligentes, de combler les écarts entre diverses tâches et ouvrir la voie à des applications révolutionnaires.
Omnigen est facile à démarrer, que vous travailliez dans un environnement local ou que vous utilisiez Google Colab. Suivez les instructions ci-dessous pour installer et utiliser Omnigen pour générer des images à partir de texte ou d'entrées multimodales.
Pour installer Omnigen, commencez par cloner le référentiel GitHub et installer le package:
Clone le référentiel Omnigen:
git clone https://github.com/vectorspacelab/omnigen.git CD Omnigen pip install -e pip install omnigen
Facultatif: si vous préférez éviter les conflits, créez un environnement dédié:
# Créer un environnement Python 3.10.13 Conda (vous pouvez également utiliser VirtualEnv) conda crée -n omnigen python = 3,10.13 conda activer omnigen # Installez Pytorch avec la version CUDA appropriée (par exemple, CU118) PIP Installer Torch == 2.3.1 Cu118 TorchVision --extra-index-url https://download.pytorch.org/whl/cu118 ! Pip install omnigen # Clone et installer omnigen git clone https://github.com/vectorspacelab/omnigen.git CD Omnigen pip install -e.
Une fois Omnigen installé, vous pouvez commencer à générer des images. Vous trouverez ci-dessous des exemples d'utilisation du pipeline Omnigen.
Omnigen vous permet de générer des images à partir d'invites de texte. Voici un exemple simple pour générer une image d'un homme à boire du thé:
à partir d'Omnigen Import Omnigenpipeline tuyau = omnigenpipeline.from_pretrain ("Shitao / omnigen-v1") # Générer une image à partir de texte images = tuyau ( invite = '' 'Photo réaliste. Une jeune femme est assise sur un canapé, Tenir un livre et faire face à la caméra. Elle porte délicate Boucles d'oreilles en argent ornées de minuscules diamants étincelants qui attrape la lumière, avec ses longs cheveux châtaignes en cascade sur ses épaules. Ses yeux sont concentrés et doux, encadrés par des cils longs et sombres. Elle est vêtue d'un pull à la crème confortable, Ce qui complète son sourire chaleureux et accueillant. Derrière elle, là est une table avec une tasse d'eau dans une tasse bleue élégante et minimaliste. L'arrière-plan est un réglage intérieur serein avec une lumière naturelle douce filtrant à travers une fenêtre, orné d'art et de fleurs de bon goût, Créer une ambiance confortable et paisible. 4K, HD '' ', hauteur = 1024, largeur = 1024, Guidance_scale = 2,5, graine = 0, ) images [0] .save ("example_t2i.png") # Enregistrer l'image générée images [0] .show ()
Vous pouvez également utiliser Omnigen pour la génération multimodale, où le texte et les images sont combinés. Voici un exemple où une image est incluse dans le cadre de l'entrée:
# Générez une image avec du texte et une image fournie images = tuyau ( prompt = "<img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174226875770560.jpg" class="lazy" alt="Omnigen: une approche unifiée de la génération d'images" > <img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174226875770560.jpg" class="lazy" alt="Omnigen: une approche unifiée de la génération d'images" > \ n Retirez les boucles d'oreilles de la femme. Remplacez la tasse par un verre transparent rempli de cola glacé étincelant. . ", input_images = ["./ imgs / demo_cases / edit.png "], hauteur = 1024, largeur = 1024, Guidance_scale = 2,5, img_guidance_scale = 1.6, graine = 0 ) images [0] .save ("example_ti2i.png") # Enregistrer l'image générée
L'exemple suivant démontre les capacités avancées de vision informatique (CV) d'Omnigen, en particulier sa capacité à détecter et à rendre le squelette humain à partir d'une entrée d'image. Cette tâche combine des instructions textuelles avec une image pour produire des résultats précis de détection du squelette.
à partir de l'image d'importation PIL # Définir l'invite pour la détection du squelette inside = "détecter le squelette de l'homme dans cette image: <img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174226875978150.jpg" class="lazy" alt="Omnigen: une approche unifiée de la génération d'images" > <img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174226875978150.jpg" class="lazy" alt="Omnigen: une approche unifiée de la génération d'images" >" input_images = ["./imgs/demo_cases/edit.png"] # Générez l'image de sortie avec la détection du squelette images = tuyau ( invite = invite, input_images = input_images, hauteur = 1024, largeur = 1024, Guidance_scale = 2, img_guidance_scale = 1.6, graine = 333 ) # Enregistrer et afficher la sortie images [0] .save ("./ imgs / démo_cases / squelettique.png") # Afficher l'image d'entrée Imprimer ("Image d'entrée:") Pour IMG dans Input_images: Image.open (img) .show () # Afficher l'image de sortie Imprimer ("Sortie:") images [0] .show ()
Cet exemple démontre la capacité du sujet d'Omnigen à identifier les individus décrits dans une invite à partir de plusieurs images d'entrée et à générer une image de groupe de ces sujets. Le processus est de bout en bout, ne nécessitant aucune reconnaissance ou segmentation externe, présentant la flexibilité d'Omnigen dans la gestion des scénarios multi-source complexes.
à partir de l'image d'importation PIL # Définir l'invite pour la génération axée sur le sujet invite = ( "Un professeur et un garçon lisent ensemble un livre." "Le professeur est l'homme du milieu dans <mg> ." "Le garçon est le garçon tenant un livre dans <mg> ." ) input_images = ["./imgs/demo_cases/ai_pioneers.jpg", "./imgs/demo_cases/same_pose.png"] # Générez l'image de sortie avec des sujets décrits images = tuyau ( invite = invite, input_images = input_images, hauteur = 1024, largeur = 1024, Guidance_scale = 2,5, img_guidance_scale = 1.6, séparé_cfg_infer = true, graine = 0 ) # Enregistrer et afficher l'image générée images [0] .save ("./ imgs / demo_casas / entity.png") # Afficher les images d'entrée Imprimer ("Images d'entrée:") Pour IMG dans Input_images: Image.open (img) .show () # Afficher l'image de sortie Imprimer ("Sortie:") images [0] .show () </mg></mg>
Capacité axée sur le sujet: notre modèle peut identifier le sujet décrit dans des images multi-personnes et générer des images de groupe d'individus à partir de plusieurs sources. Ce processus de bout en bout ne nécessite aucune reconnaissance ou segmentation supplémentaire, mettant en évidence la flexibilité et la polyvalence d'Omnigen.
La polyvalence d'Omnigen ouvre de nombreuses applications dans différents domaines:
Alors que Omnigen continue d'évoluer, les itérations futures pourraient étendre davantage ses capacités, incorporant potentiellement des mécanismes de raisonnement plus avancés et améliorer ses performances sur des tâches complexes.
Omnigen est un modèle de génération d'images révolutionnaire qui combine des entrées de texte et d'image dans un cadre unifié, surmontant les limites des modèles existants comme la diffusion stable et Dall-E. En intégrant un autoencoder variationnel (VAE) et un modèle de transformateur, il simplifie les flux de travail tout en activant des tâches polyvalentes telles que la génération de texte à l'image et l'édition d'images. Avec des capacités telles que la génération multimodale, la personnalisation axée sur les sujets et l'apprentissage à quelques coups, Omnigen ouvre de nouvelles possibilités dans des domaines tels que l'art génératif et l'augmentation des données. Malgré certaines limites, telles que des défis avec de longues entrées de texte et des détails fins, Omnigen est défini pour façonner l'avenir de la création de contenu visuel, offrant un outil puissant et flexible pour diverses applications.
A. Omnigen est un modèle de génération d'images unifié conçu pour gérer une variété de tâches, y compris la génération de texte à l'image, l'édition d'images et la génération multimodale (combinant du texte et des images). Contrairement aux modèles traditionnels, Omnigen ne s'appuie pas sur des extensions spécifiques à la tâche, offrant une solution plus polyvalente et évolutive.
Q2. Qu'est-ce qui rend Omnigen différent des autres modèles de génération d'images?A. Omnigen se démarque en raison de son architecture simple, qui combine un autoencodeur variationnel (VAE) et un modèle de transformateur. Cela lui permet de traiter à la fois des entrées de texte et d'image dans un cadre unifié, permettant une large gamme de tâches sans nécessiter de composants ou de modifications supplémentaires.
Q3. Quelles sont les exigences du système pour exécuter Omnigen?A. Pour exécuter Omnigen efficacement, un système avec un GPU compatible Cuda est recommandé. Le modèle a été formé sur les GPU A800, et le processus d'inférence bénéficie de l'accélération du GPU à l'aide de mécanismes de cache de valeur clé.
Les médias présentés dans cet article ne sont pas détenus par l'analytique vidhya et sont utilisés à la discrétion de l'auteur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!