5.2 KiB
🎙️ Feuille de Route : Studio IA Multimodal v3 (2026)
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.shpour 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
- Définir le réseau interne
-
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— Musiquehttp://zonos:7862— Voixhttp://comfyui:8188— Imagehttp://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 dewget -cpour 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. |