Le langage des scènes : représenter des scènes avec des programmes, des mots et des intégrations
arXiv | Page du projet
Downcodes
Ce référentiel implémente le langage de scène présenté dans l'article « Le langage de scène : représenter des scènes avec des programmes, des mots et des intégrations ». Il permet la génération de scènes 3D conditionnées en texte et en image.
Installation
Environnement
`bash
conda create --name sclg python=3.11
conda active sclg
pip installer mitsuba
si vous rencontrez un problème de segmentation, vous aurez peut-être besoin de versions Mitsuba spécifiques
par exemple, pip install --force-reinstall mitsuba==3.5.1 sur MacOS
pip installer unidecode Oreiller anthropique transforms3d astor ipdb scipy jaxtyping imageio
requis pour le moteur de rendu Minecraft
pip installer spacy
python -m spacy télécharger encoreweb_md
pip install --force-reinstall numpy==1.26.4 # pour être compatible avec transforms3d
clone git https://github.com/zzyunzhi/scene-langage.git
langage de la scène du CD
pip install -e .
`
API de modèle de langage
1. Obtenez votre clé API : obtenez votre clé API Anthropic en suivant la documentation officielle.
2. Ajoutez la clé à engine/key.py :
`python
ANTHROPICAPIKEY = 'VOTREANTHROPICAPI_KEY'
OPENAIAPIKEY = 'YOUROPENAIAPIKEY' # facultatif, requis pour LLMPROVIDER='gpt'
`
3. Changer de modèle de langage (facultatif) : vous pouvez basculer vers différents modèles de langage en modifiant le paramètre LLM_PROVIDER dans engine/constants.py. La valeur par défaut est Claude 3.5 Sonnet.
Génération 3D conditionnée par du texte
Moteur de rendu : Mitsuba
`bash
python scripts/run.py --tasks "un échiquier avec un jeu complet de pièces d'échecs"
`
Les rendus seront enregistrés dans ${PROJROOT}/scripts/outputs/run${timestep}${uuid}/${scenename}${uuid}/${sampleindex}/renderings/*.gif.
Exemples de résultats : sorties brutes
Moteur de rendu : Minecraft
`bash
ENGINE_MODE=minecraft python scripts/run.py --tasks "une tour médiévale cylindrique détaillée"
`
Les scènes générées sont enregistrées sous forme de fichiers JSON dans ${PROJROOT}/scripts/outputs/run${timestep}${uuid}/${scenename}${uuid}/${sampleindex}/renderings/*.json.
Visualisation:
1. Exécutez la commande suivante :
`bash
visionneuses python/minecraft/run.py
`
2. Ouvrez http://127.0.0.1:5001 dans votre navigateur.
3. Faites glisser les fichiers JSON générés vers la page Web.
Exemples de résultats : sorties brutes
Génération 3D conditionnée par l'image
`bash
python scripts/run.py --tasks ./resources/examples/* --cond image --temperature 0.8
`
Détails de la base de code
Le tableau suivant répertorie les fonctions d'assistance définies dans ce référentiel, alignées sur les expressions définies dans le langage spécifique au domaine (DSL) (Tableaux 2 et 5 du document) :
| Fonction | Expression DSL |
|-----------------|----------------|
| ... | ... |
| ... | ... |
Améliorations de la base de code
La base de code actuelle offre les fonctionnalités suivantes :
1. Génération conditionnée par le texte : générez des scènes 3D basées sur des descriptions textuelles.
2. Génération conditionnée par l'image : générez des scènes 3D basées sur les images d'entrée.
Futures mises à jour :
La prise en charge de tâches et de moteurs de rendu supplémentaires sera ajoutée dans les futures mises à jour.
Cotisations
N'hésitez pas à soumettre une Pull Request ou à nous contacter par e-mail si vous avez des demandes de fonctionnalités, des suggestions ou si vous souhaitez partager vos résultats.
Citation
`
@article{zhang2024scenelangage,
title={Le langage des scènes : représenter des scènes avec des programmes, des mots et des intégrations},
author={Yunzhi Zhang et Zizhang Li et Matt Zhou et Shangzhe Wu et Jiajun Wu},
année={2024},
journal={préimpression arXiv arXiv:2410.16770},
}
`
Licence : Apache-2.0