Un projet Python pour créer des environnements VR à l'aide de Generative AI. Vous pouvez l'exécuter en tant que serveur TCP pour l'interfacer avec un client Unity, afin d'obtenir l'application AI/VR à part entière.
Il s'agit d'une archive publique, le développement se poursuit sur HugoFara/speech-to-world-server !
Il s'agit d'un cas d'utilisation de l'IA générative pour créer une scène VR complète. Il a été développé à la Fondation Campus Biotech Genève, en collaboration avec le Laboratoire des Sciences Cognitives, par Hugo FARAJALLAH.
Vous devez obtenir Python 3.10 et CUDA 12.1 (les autres versions ne sont pas testées). Une fois les exigences installées, le projet devrait fonctionner.
Voici une procédure d'installation détaillée :
cd VR-Environment-GenAI-Server
# From https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/#create-and-use-virtual-environments
python -m venv .venv # Creates the virtual environment under .venv
source .venv/bin/activate # Activates it
cd VR-Environment-GenAI-Server
# From https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/#create-and-use-virtual-environments
py -m venv .venv # Creates the virtual environment under .venv
.venv S cripts a ctivate # Activates it
pip install -r requirements.txt
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
. Veuillez consulter https://pytorch.org/get-started/locally/ pour plus de détails.A partir de là, le projet devrait être fonctionnel. La section suivante est facultative, mais elle peut vous faire gagner beaucoup de temps.
(facultatif) Vous pouvez accélérer la génération d’images en utilisant Accélérer. Téléchargez-le avec
pip install accelerate
.
.idea
est inclus pour ajouter le dossier en tant que projet.sudo apt install ffmpeg portaudio19-dev python3-pyaudio
pip install -r requirements-optional.txt # Installs PyAudio
Chaque fichier peut être exécuté indépendamment, ils constituent donc autant de points d'entrée que de fichiers.
Les cas d'utilisation les plus courants sont les suivants :
python -m skybox.diffusion
.python -m utils.download_models
. Si vous ne le faites pas, les modèles seront téléchargés au moment de l'exécution, ce qui peut être très lent.python -m server.run
.Vient ensuite le détail des fichiers spéciaux.
Accédez au dossier skybox
.
skybox/legacy
peut ne pas être utile. Je le garde là à des fins personnelles. Les fonctionnalités 3D se trouvent dans le dossier environment
. Il est toujours en développement actif au moment de la rédaction (juin 2024), ce qui suit est donc sujet à changement.
Pour les fonctionnalités de synthèse vocale, accédez à asr
(reconnaissance automatique de la parole)
Si vous souhaitez utiliser une interface graphique au lieu du code Python, vous pouvez utiliser les workflows ComfyUI fournis dans le dossier ComfyUI
.
L'explication de chaque flux de travail est détaillée dans ComfyUI/README.md.
Les fonctionnalités du serveur sont dans server
. Voir Démarrer en tant que serveur TCP pour les détails sur l'utilisation.
sound
propose quelques expériences de génération de sons.utils
contient des fonctions utiles pour l'utilisateur : La configuration du serveur principal est dans api.json
. Les données de configuration les plus importantes sont « serverIp » et « serverPort » car elles définissent l'adresse du serveur.
Un serveur TCP peut être démarré afin de décharger la partie IA du thread d'application. Lancez simplement python -m server.run
. La configuration du serveur est définie dans api.json
. La communication est gérée au format JSON, avec un style HTTP fort.
Pour vous connecter au serveur depuis un autre ordinateur sur le même réseau, vous devez ouvrir un port. Sous Windows, il vous suffit d'aller dans le panneau de configuration ajouter une nouvelle règle pour le port 9000
(avec la configuration par défaut). Ce didacticiel How-To Geek semble suffisamment guide. Sous Linux, ouvrir des ports est un peu plus amusant, je recommande personnellement d'utiliser nginx avec une redirection de port.
État actuel du projet, d'un point de vue très lointain.
skybox/panorama_creator.py
environment/renderer.py
ne convient pas à la production pour le moment. Ce projet comprend plusieurs modèles de réseaux de neurones artificiels. Si vous souhaitez remplacer un modèle par un autre, vous devez avoir une bonne connaissance de ce que vous faites, sinon la qualité du produit final pourrait être diminuée.
Veuillez jeter un œil à utils/download_models.py
pour voir d'où ces modèles sont chargés.
Vous pouvez télécharger le client Unity officiel depuis VR-Environment-GenAI-Unity (GitHub). Si vous recherchez le référentiel public actif de ce projet, rendez-vous sur HugoFara/speech-to-world-server.