TaskMatrix connecte ChatGPT et une série de modèles Visual Foundation pour permettre l'envoi et la réception d'images pendant la discussion.
Consultez notre article : Visual ChatGPT : parler, dessiner et éditer avec des modèles de base visuelle
Désormais, TaskMatrix prend en charge GroundingDINO et segmente n'importe quoi ! Merci @jordddan pour ses efforts. Pour le cas d'édition d'image, GroundingDINO
est d'abord utilisé pour localiser les cadres de délimitation guidés par un texte donné, puis segment-anything
est utilisé pour générer le masque associé, et enfin l'inpainting de diffusion stable est utilisé pour éditer l'image en fonction du masque.
python visual_chatgpt.py --load "Text2Box_cuda:0,Segmenting_cuda:0,Inpainting_cuda:0,ImageCaptioning_cuda:0"
find xxx in the image
ou segment xxx in the image
. xxx
est un objet. TaskMatrix renverra le résultat de la détection ou de la segmentation !Désormais, TaskMatrix peut prendre en charge le chinois ! Merci à @Wang-Xiaodong1899 pour ses efforts.
Nous proposons l'idée de modèle dans TaskMatrix !
template_model = True
Merci à @ShengmingYin et @thebestannie d'avoir fourni un exemple de modèle dans la classe InfinityOutPainting
(voir le gif suivant)
python visual_chatgpt.py --load "Inpainting_cuda:0,ImageCaptioning_cuda:0,VisualQuestionAnswering_cuda:0"
extend the image to 2048x1024
vers TaskMatrix !InfinityOutPainting
, TaskMatrix peut étendre de manière transparente les images à n'importe quelle taille grâce à la collaboration avec les modèles de base ImageCaptioning
, Inpainting
et VisualQuestionAnswering
existants, sans avoir besoin d'une formation supplémentaire .TaskMatrix a besoin de l'effort de la communauté ! Nous avons besoin de votre contribution pour ajouter des fonctionnalités nouvelles et intéressantes !
D'une part, ChatGPT (ou LLM) sert d' interface générale qui offre une compréhension large et diversifiée d'un large éventail de sujets. D'autre part, les modèles de base servent d' experts en matière de domaine en fournissant des connaissances approfondies dans des domaines spécifiques. En tirant parti de connaissances générales et approfondies , nous visons à construire une IA capable de gérer diverses tâches.
# clone the repo
git clone https://github.com/microsoft/TaskMatrix.git
# Go to directory
cd visual-chatgpt
# create a new environment
conda create -n visgpt python=3.8
# activate the new environment
conda activate visgpt
# prepare the basic environments
pip install -r requirements.txt
pip install git+https://github.com/IDEA-Research/GroundingDINO.git
pip install git+https://github.com/facebookresearch/segment-anything.git
# prepare your private OpenAI key (for Linux)
export OPENAI_API_KEY={Your_Private_Openai_Key}
# prepare your private OpenAI key (for Windows)
set OPENAI_API_KEY={Your_Private_Openai_Key}
# Start TaskMatrix !
# You can specify the GPU/CPU assignment by "--load", the parameter indicates which
# Visual Foundation Model to use and where it will be loaded to
# The model and device are separated by underline '_', the different models are separated by comma ','
# The available Visual Foundation Models can be found in the following table
# For example, if you want to load ImageCaptioning to cpu and Text2Image to cuda:0
# You can use: "ImageCaptioning_cpu,Text2Image_cuda:0"
# Advice for CPU Users
python visual_chatgpt.py --load ImageCaptioning_cpu,Text2Image_cpu
# Advice for 1 Tesla T4 15GB (Google Colab)
python visual_chatgpt.py --load "ImageCaptioning_cuda:0,Text2Image_cuda:0"
# Advice for 4 Tesla V100 32GB
python visual_chatgpt.py --load "Text2Box_cuda:0,Segmenting_cuda:0,
Inpainting_cuda:0,ImageCaptioning_cuda:0,
Text2Image_cuda:1,Image2Canny_cpu,CannyText2Image_cuda:1,
Image2Depth_cpu,DepthText2Image_cuda:1,VisualQuestionAnswering_cuda:2,
InstructPix2Pix_cuda:2,Image2Scribble_cpu,ScribbleText2Image_cuda:2,
SegText2Image_cuda:2,Image2Pose_cpu,PoseText2Image_cuda:2,
Image2Hed_cpu,HedText2Image_cuda:3,Image2Normal_cpu,
NormalText2Image_cuda:3,Image2Line_cpu,LineText2Image_cuda:3"
Nous répertorions ici l'utilisation de la mémoire GPU de chaque modèle de base visuelle, vous pouvez spécifier celui que vous aimez :
Modèle de fondation | Mémoire GPU (Mo) |
---|---|
Édition d'images | 3981 |
InstruirePix2Pix | 2827 |
Texte2Image | 3385 |
Sous-titrage d'image | 1209 |
Image2Canny | 0 |
CannyText2Image | 3531 |
Image2Ligne | 0 |
LigneTexte2Image | 3529 |
Image2Hed | 0 |
HedText2Image | 3529 |
Image2Scribble | 0 |
ScribbleText2Image | 3531 |
Image2Pose | 0 |
PoseTexte2Image | 3529 |
Image2Seg | 919 |
SegText2Image | 3529 |
Image2Profondeur | 0 |
ProfondeurTexte2Image | 3531 |
Image2Normal | 0 |
TexteNormal2Image | 3529 |
VisuelQuestionRéponse | 1495 |
Nous apprécions l’open source des projets suivants :
Visage câlin LangChain Diffusion stable ControlNet InstructPix2Pix CLIPSeg BLIP
Pour obtenir de l'aide ou des problèmes liés à l'utilisation de TaskMatrix, veuillez soumettre un problème GitHub.
Pour d'autres communications, veuillez contacter Chenfei WU ([email protected]) ou Nan DUAN ([email protected]).
Marques déposées Ce projet peut contenir des marques ou des logos pour des projets, des produits ou des services. L'utilisation autorisée des marques ou logos Microsoft est soumise et doit respecter les directives relatives aux marques et aux marques de Microsoft. L'utilisation des marques ou logos Microsoft dans les versions modifiées de ce projet ne doit pas prêter à confusion ni impliquer le parrainage de Microsoft. Toute utilisation de marques ou de logos tiers est soumise aux politiques de ces tiers.
Les modèles recommandés dans ce référentiel ne sont que des exemples, utilisés pour la recherche scientifique explorant le concept d'automatisation des tâches et d'analyse comparative avec l'article publié sur Visual ChatGPT : Parler, dessiner et éditer avec des modèles de base visuelle. Les utilisateurs peuvent remplacer les modèles de ce Repo en fonction de leurs besoins de recherche. Lorsque vous utilisez les modèles recommandés dans ce dépôt, vous devez respectivement respecter les licences de ces modèles. Microsoft ne pourra être tenu responsable de toute violation des droits de tiers résultant de votre utilisation de ce référentiel. Les utilisateurs acceptent de défendre, d'indemniser et de dégager Microsoft de toute responsabilité concernant tous les dommages, coûts et honoraires d'avocat liés à toute réclamation découlant de ce Repo. Si quelqu'un estime que ce Repo porte atteinte à vos droits, veuillez en informer l'e-mail du propriétaire du projet.