diff --git a/README.md b/README.md index 5bb5d67..98eac53 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,117 @@ -# Studio-IA-Modulaire +# đŸŽ™ïž Feuille de Route : Studio IA Multimodal v3 (2026) -deploiement de modeles ad hoc sur vast.ai \ No newline at end of file +**Architecture :** Micro-services isolĂ©s via Docker Compose sur VM Vast.ai. +**Objectif :** ModularitĂ© totale, isolation des dĂ©pendances et orchestration par LLM. + +--- + +## đŸ§± Principe des couches + +``` +VM Vast.ai (Ubuntu 22.04 bare) ← SystĂšme hĂŽte, Docker Engine + └── NVIDIA Container Toolkit ← Pont GPU → containers + ├── container open-webui FROM python:3.11-slim + ├── container ollama FROM ollama/ollama:latest + ├── container ace-step FROM nvcr.io/nvidia/pytorch:26.01-py3 + ├── container heart-mula FROM nvcr.io/nvidia/pytorch:25.08-py3 * + ├── container zonos FROM nvcr.io/nvidia/pytorch:26.01-py3 + ├── container indextts FROM nvcr.io/nvidia/pytorch:26.01-py3 + ├── container hunyuan-foley FROM nvcr.io/nvidia/pytorch:25.08-py3 * + └── container comfyui FROM nvcr.io/nvidia/pytorch:26.01-py3 +``` + +> `*` Version NGC diffĂ©rente si le modĂšle l'exige — chaque container est indĂ©pendant. + +### RĂšgles d'image de base + +| Niveau | Image | Raison | +|---|---|---| +| **VM hĂŽte** | Ubuntu 22.04 bare | Docker Engine + drivers NVIDIA | +| **Services GPU** | `nvcr.io/nvidia/pytorch:XX.XX-py3` | CUDA + PyTorch + cuDNN prĂ©-validĂ©s par NVIDIA | +| **Services sans GPU** | `python:3.11-slim` | LĂ©ger, inutile d'embarquer CUDA | + +> La version NGC (`26.01`, `25.08`...) peut diffĂ©rer par service selon les besoins de compatibilitĂ©. +> C'est prĂ©cisĂ©ment l'avantage des microservices : chaque container est une dĂ©cision indĂ©pendante. + +--- + +## đŸ—ïž Phase 1 — PrĂ©paration de l'Infrastructure (Le Socle) + +> L'objectif est de prĂ©parer le terrain pour que les containers puissent discuter entre eux sur un rĂ©seau privĂ©. + +- [ ] **DĂ©pĂŽt Gitea** : Structurer l'arborescence du projet + - `/services` : Un sous-dossier par micro-service (Dockerfile + code API) + - `/models` : Scripts Shell de tĂ©lĂ©chargement des poids (HuggingFace / CivitAI) + - `/data` : Volumes Docker persistants pour les sorties (`outputs/`) et les donnĂ©es modĂšles + +- [ ] **Script de Provisioning** : Écrire le `provisioning_script.sh` pour Vast.ai + - Installation automatisĂ©e de Docker Engine & NVIDIA Container Toolkit + - Clonage du dĂ©pĂŽt Git + - Configuration des permissions et crĂ©ation des dossiers de stockage + +--- + +## 🍳 Phase 2 — Build des Micro-Services (Les Cuisines) + +> Chaque service est construit indĂ©pendamment pour garantir une stabilitĂ© totale. + +- [ ] **Service Orchestrateur** : Configurer l'image officielle Ollama *(Gestion des LLM)* +- [ ] **Service Interface** : Configurer l'image Open WebUI *(La "Glue" utilisateur)* +- [ ] **Service Audio — ACE-Step** : CrĂ©er le Dockerfile + l'API Python (Gradio/FastAPI) +- [ ] **Service Voix — Zonos** : CrĂ©er le Dockerfile dĂ©diĂ© *(Environnement Python 3.11+)* +- [ ] **Service Image — ComfyUI** : PrĂ©parer l'image optimisĂ©e pour Flux.1 et SDXL +- [ ] **Service Foley — Hunyuan** : CrĂ©er le service spĂ©cifique pour le bruitage vidĂ©o synchronisĂ© + +--- + +## đŸŽŒ Phase 3 — Orchestration (Le Chef d'Orchestre) + +> Utilisation de Docker Compose pour lier les services sur une seule machine. + +- [ ] **Fichier `docker-compose.yml`** + - DĂ©finir le rĂ©seau interne `studio-network` + - Assigner les ressources GPU via `deploy.resources.reservations` + - Mapper les ports : `3000` (public) pour le WebUI, les autres en accĂšs restreint + +- [ ] **Gestion de la VRAM & RAM** + - ImplĂ©menter des limites mĂ©moire par container + - Configurer le swap pour Ă©viter les crashs lors des chargements de modĂšles lourds + +--- + +## 🔌 Phase 4 — Connexion de la "Glue" (Le CĂąblage) + +> Configuration de l'intelligence centrale pour piloter les outils. + +- [ ] **Configuration Ollama** : Connecter Open WebUI au container LLM via `http://ollama:11434` + +- [ ] **DĂ©veloppement des "Functions"** : Coder les ponts Python internes Ă  Open WebUI vers : + - `http://ace-step:7860` — Musique + - `http://zonos:7862` — Voix + - `http://comfyui:8188` — Image + - `http://hunyuan-foley:7864` — Foley + +- [ ] **System Prompt** : Configurer l'assistant "Studio Manager" pour qu'il route les requĂȘtes vers les bons services + +--- + +## 🚀 Phase 5 — Optimisation & Production + +> Passage Ă  l'Ă©chelle et fluidification de l'expĂ©rience. + +- [ ] **TĂ©lĂ©chargement des modĂšles** : Finaliser les scripts `download_models.sh` + *(utilisation de `wget -c` pour la reprise sur erreur)* + +- [ ] **Persistance** : Valider le montage des volumes pour que les fichiers gĂ©nĂ©rĂ©s soient accessibles hors des containers + +- [ ] **Snapshot final** : Une fois la configuration stable, crĂ©er un Snapshot Vast.ai pour un dĂ©ploiement instantanĂ© *(Warm Boot)* + +--- + +## đŸ› ïž Pourquoi cette architecture gagne en 2026 + +| Avantage | DĂ©tail technique | +|---|---| +| **ModularitĂ©** | Tu veux changer de modĂšle de voix ? Tu mets Ă  jour 1 seul container sans toucher au reste. | +| **RĂ©silience** | Si le service d'image plante, tu peux toujours chatter et gĂ©nĂ©rer de la musique. | +| **ScalabilitĂ©** | Demain, tu peux mettre Ollama sur un GPU et ACE-Step sur un autre sans réécrire le code. | \ No newline at end of file