JupyterLab - Interface Web pour Nerfstudio¶
JupyterLab fournit une interface web interactive pour uploader des photos et lancer des trainings Nerfstudio sans ligne de commande.
Vue d'ensemble¶
| Paramètre | Valeur |
|---|---|
| URL | http://192.168.1.82:8889 |
| Port | 8889 |
| Token | nerfstudio-jupyter-2026 |
| User | nerfstudio (système) |
| Notebooks | /data/jupyter/notebooks/ |
Accès¶
- Ouvrir http://192.168.1.82:8889
- Entrer le token :
nerfstudio-jupyter-2026 - Cliquer sur "Log in"
Première connexion : Le navigateur peut demander à enregistrer le token (recommandé).
Workflow complet¶
1. Ouvrir le notebook Nerfstudio¶
Depuis l'interface JupyterLab : 1. Double-cliquer sur nerfstudio-training.ipynb 2. Le notebook s'ouvre dans un nouvel onglet
2. Créer un nouveau projet¶
Cellule "Upload Photos" :
Résultat :
✅ Projet créé: /data/nerfstudio/data/my-sculpture
📁 Uploadez vos photos dans: /data/nerfstudio/data/my-sculpture/images
💡 Via terminal SSH:
scp photos/*.jpg probatio@192.168.1.82:/data/nerfstudio/data/my-sculpture/images/
3. Upload des photos¶
Option A : Via l'interface JupyterLab (⭐ RECOMMANDÉ)
Directement dans le notebook, cellule "Upload des photos" :
- Cliquer sur "Sélectionner photos"
- Choisir vos photos (JPG, PNG) - sélection multiple possible
- Cliquer sur "💾 Sauvegarder les photos"
- Les photos sont automatiquement uploadées dans le dossier du projet
Avantages : - ✅ Aucune ligne de commande - ✅ Interface graphique simple - ✅ Sélection multiple de fichiers - ✅ Sauvegarde automatique au bon endroit
Option B : Via SSH (pour beaucoup de photos ou gros fichiers)
Depuis votre machine locale :
# Upload toutes les photos d'un dossier
scp photos/*.jpg probatio@192.168.1.82:/data/nerfstudio/data/my-sculpture/images/
# Ou avec rsync (plus rapide, reprend en cas d'interruption)
rsync -avz --progress photos/ probatio@192.168.1.82:/data/nerfstudio/data/my-sculpture/images/
Option C : Via SFTP (FileZilla, Cyberduck, WinSCP)
- Host :
192.168.1.82 - User :
probatio - Password : (votre mot de passe SSH)
- Dossier :
/data/nerfstudio/data/my-sculpture/images/
4. Vérifier les photos¶
Cellule "Vérifier les photos uploadées" :
Résultat :
📸 125 photos trouvées
Premières photos:
- IMG_001.jpg
- IMG_002.jpg
- IMG_003.jpg
- IMG_004.jpg
- IMG_005.jpg
... et 120 autres
5. Choisir la méthode de training¶
Cellule "Choisir la méthode" :
Sélectionner une option : - ⭐ Gaussian Splatting (meilleure qualité, 10-20 min) ← Recommandé - Nerfacto (équilibré, 15-30 min) - Instant-NGP (rapide, 5-10 min)
6. Lancer le training¶
Cellule "Lancer le training" :
Résultat :
🚀 Lancement training...
Projet: my-sculpture
Méthode: splatfacto
Photos: 125
⏳ Le training va démarrer. Ouvrez le viewer:
http://192.168.1.82:7007
✅ Training démarré en arrière-plan (PID: 12345)
💡 Suivez la progression sur le viewer: http://192.168.1.82:7007
7. Suivre la progression (Viewer)¶
Ouvrir le viewer : http://192.168.1.82:7007
Interface viewer :
┌─────────────────────────────────────────────┐
│ [◀] [▶] [▲] [▼] Camera Controls │
│ │
│ Training: ████████████░░ 82% │
│ Step: 820/1000 | FPS: 60 │
│ Loss: 0.0087 | PSNR: 34.1 dB │
│ ETA: 3min 12s │
│ │
│ [Pause] [Resume] [Stop] │
└─────────────────────────────────────────────┘
Actions disponibles : - Rotation 3D (souris) - Zoom (molette) - Changer de caméra (dropdown) - Ajuster qualité rendu (samples, résolution)
8. Export mesh 3D¶
Attendre que le training soit terminé (loss < 0.01, PSNR > 30 dB)
Cellule "Export mesh 3D" :
Résultat :
📦 Config trouvé: /data/nerfstudio/outputs/my-sculpture/splatfacto/.../config.yml
🎨 Lancement export mesh...
✅ Mesh exporté avec succès !
📁 Fichiers disponibles dans: /data/nerfstudio/exports
- my-sculpture.ply
9. Télécharger le mesh¶
Option A : Via JupyterLab
- File browser (à gauche)
- Naviguer vers
/data/nerfstudio/exports/ - Clic droit sur
my-sculpture.ply - Download
Option B : Via SSH
# Depuis votre machine locale
scp probatio@192.168.1.82:/data/nerfstudio/exports/my-sculpture.ply ~/Downloads/
Option C : Via SFTP
Dossier : /data/nerfstudio/exports/
10. Importer dans Blender¶
- Ouvrir Blender
- File → Import → Stanford (.ply)
- Sélectionner
my-sculpture.ply - Le mesh 3D s'affiche avec textures
Cas d'usage¶
1. Objet e-commerce (chaussure, meuble)¶
Photos : 50-80 photos, rotation 360° Méthode : Gaussian Splatting (splatfacto) Temps : 10-15 min Résultat : Viewer 3D interactif pour site web
Workflow notebook :
project_name = "nike-air-max"
# Upload 60 photos
# Choisir : Gaussian Splatting
# Lancer training
# Export mesh → intégration Three.js
2. Patrimoine (sculpture, monument)¶
Photos : 100-200 photos haute résolution Méthode : Gaussian Splatting (qualité max) Temps : 20-30 min Résultat : Mesh haute-fidélité pour conservation
Workflow notebook :
project_name = "statue-jardin-versailles"
# Upload 150 photos (DSLR, 4K)
# Choisir : Gaussian Splatting
# Lancer training (qualité max)
# Export mesh → archivage 3D
3. Immobilier (visite virtuelle)¶
Photos : 100-150 photos d'un appartement Méthode : Nerfacto (bon compromis) Temps : 15-20 min Résultat : Visite 3D navigable
Workflow notebook :
project_name = "appartement-paris-16e"
# Upload 120 photos (smartphone OK)
# Choisir : Nerfacto
# Lancer training
# Export vidéo flythrough
4. Prototypage rapide¶
Photos : 30-50 photos Méthode : Instant-NGP (ultra-rapide) Temps : 5-8 min Résultat : Preview 3D rapide
Workflow notebook :
project_name = "prototype-produit"
# Upload 40 photos
# Choisir : Instant-NGP
# Lancer training (rapide)
# Valider concept avant scan HD
Gestion des projets¶
Lister tous les projets¶
Cellule "Projets disponibles" :
Résultat :
📁 5 projets disponibles:
✅ Trained my-sculpture (125 photos)
✅ Trained nike-air-max (60 photos)
📸 Ready statue-versailles (150 photos)
✅ Trained appartement-paris (120 photos)
📸 Ready prototype-v2 (40 photos)
Légende : - ✅ Trained : Training terminé, modèle disponible - 📸 Ready : Photos uploadées, prêt pour training
Supprimer un projet¶
# SSH vers le serveur
ssh probatio@192.168.1.82
# Supprimer données + outputs
sudo rm -rf /data/nerfstudio/data/my-old-project
sudo rm -rf /data/nerfstudio/outputs/my-old-project
Télécharger un projet complet¶
# Depuis votre machine locale
# Télécharger données + modèle + exports
scp -r probatio@192.168.1.82:/data/nerfstudio/data/my-sculpture ~/backups/
scp -r probatio@192.168.1.82:/data/nerfstudio/outputs/my-sculpture ~/backups/
scp -r probatio@192.168.1.82:/data/nerfstudio/exports/my-sculpture.ply ~/backups/
Intégration Homer¶
JupyterLab est référencé dans le dashboard Homer :
- name: "IA & Machine Learning"
items:
- name: "JupyterLab"
logo: "assets/tools/jupyter.png"
subtitle: "Interactive notebooks for Nerfstudio"
url: "http://192.168.1.82:8889"
Accès depuis Homer : http://192.168.1.82:8080
Troubleshooting¶
JupyterLab ne démarre pas¶
# Vérifier le service
sudo systemctl status jupyterlab
# Vérifier les logs
sudo journalctl -u jupyterlab -n 50
# Redémarrer
sudo systemctl restart jupyterlab
Token invalide¶
Le token par défaut est : nerfstudio-jupyter-2026
Si vous avez besoin de le changer :
# Éditer la config
sudo nano /home/nerfstudio/.jupyter/jupyter_server_config.py
# Changer la ligne:
c.ServerApp.token = 'votre-nouveau-token'
# Redémarrer
sudo systemctl restart jupyterlab
Notebook ne se charge pas¶
# Vérifier que le notebook existe
ls -la /data/jupyter/notebooks/nerfstudio-training.ipynb
# Vérifier les permissions
sudo chown -R nerfstudio:nerfstudio /data/jupyter/
# Redémarrer JupyterLab
sudo systemctl restart jupyterlab
Upload photos échoue¶
Erreur : "Failed to upload file"
Solutions : 1. Vérifier espace disque : df -h /data/nerfstudio 2. Vérifier permissions : ls -la /data/nerfstudio/data/ 3. Utiliser SSH/SFTP au lieu de l'interface web pour gros fichiers
Limite upload : JupyterLab limite à ~100 MB par fichier. Pour de gros datasets, utiliser SSH/rsync.
Training ne démarre pas¶
Cellule "Lancer training" affiche :
Solution : NumPy conflict (connu). Lancer via terminal SSH :
ssh probatio@192.168.1.82
cd /opt/nerfstudio
./train.sh /data/nerfstudio/data/my-sculpture splatfacto
Viewer affiche "No training in progress"¶
Causes possibles : 1. Training pas encore démarré → attendre 10-20 secondes 2. Training terminé → consulter outputs 3. Erreur training → vérifier logs
Vérifier logs :
# Trouver le PID du training
ps aux | grep ns-train
# Si pas de training en cours, relancer manuellement
cd /opt/nerfstudio
./train.sh /data/nerfstudio/data/my-sculpture splatfacto
Maintenance¶
Mise à jour JupyterLab¶
# Mettre à jour via pip
sudo pip3 install --upgrade jupyterlab
# Redémarrer
sudo systemctl restart jupyterlab
Nettoyer anciens notebooks¶
# Supprimer notebooks de test
rm /data/jupyter/notebooks/Untitled*.ipynb
# Garder uniquement le notebook Nerfstudio
ls /data/jupyter/notebooks/
# nerfstudio-training.ipynb (à garder)
Sauvegarde notebooks¶
# Sauvegarder tous les notebooks
tar czf /tmp/jupyter-notebooks-$(date +%Y%m%d).tar.gz /data/jupyter/notebooks/
# Copier sur NAS
cp /tmp/jupyter-notebooks-*.tar.gz /mnt/nas/backups/
Ressources¶
- JupyterLab Documentation : https://jupyterlab.readthedocs.io
- Nerfstudio Documentation : https://docs.nerf.studio
- Support : Voir logs systemd ou Jupyter
Résumé des ports¶
| Service | Port | Protocole | Accès |
|---|---|---|---|
| JupyterLab | 8889 | HTTP | LAN uniquement |
| Nerfstudio Viewer | 7007 | HTTP | LAN uniquement |
Sécurité¶
Recommandations¶
- Changez le token après installation (production)
- Limitez l'accès réseau (firewall, VPN)
- Sauvegardez régulièrement les notebooks importants
- Ne partagez pas le token publiquement
Exposition Internet (déconseillé)¶
Si vous devez exposer JupyterLab sur Internet :
- HTTPS obligatoire (reverse proxy Nginx + Let's Encrypt)
- Password authentication (plus sécurisé que token)
- Rate limiting (limite de requêtes par IP)
- Monitoring (alertes sur connexions)
Recommandation : Utilisez un VPN (WireGuard) pour accès distant sécurisé.
Workflow rapide (aide-mémoire)¶
1. http://192.168.1.82:8889 → token: nerfstudio-jupyter-2026
2. Ouvrir: nerfstudio-training.ipynb
3. Créer projet → Nom: my-object
4. Upload photos: scp photos/*.jpg probatio@192.168.1.82:/data/.../images/
5. Vérifier photos (exécuter cellule)
6. Choisir méthode: Gaussian Splatting
7. Lancer training (exécuter cellule)
8. Viewer: http://192.168.1.82:7007
9. Export mesh (quand terminé)
10. Download: /data/nerfstudio/exports/my-object.ply