33800 Docs

← Retour

AI Orchestrator - Patches et configurations win11

Date création : 18/01/2026 Dernière MAJ : 24/01/2026


Vue d'ensemble

L'AI Orchestrator gère 10 outils IA sur win11 (RTX 3090 24 Go). Certains outils nécessitent des patches pour fonctionner correctement.

Patches appliqués

1. Wan2.1 - Mode CLI + Attention fallback

Problème :

Fichier modifié : I:\Wan2.1\wan\modules\model.py

# AVANT (ligne ~10)
from .attention import flash_attention

# APRÈS
from .attention import attention as flash_attention

Explication : La fonction attention() dans attention.py a un fallback vers torch.nn.functional.scaled_dot_product_attention quand Flash Attention n'est pas disponible.

Mode d'exécution : L'orchestrator utilise generate.py (CLI) au lieu de l'interface Gradio pour éviter les problèmes de connexion.

Transfert fichier : SFTP avec format /I:/path (SCP ne supporte pas les chemins Windows)


2. TripoSR - PyMCubes au lieu de torchmcubes

Problème :

Fichier modifié : I:\TripoSR\tsr\models\isosurface.py

# AVANT
try:
    import torchmcubes
    TORCHMCUBES_AVAILABLE = True
except ImportError:
    TORCHMCUBES_AVAILABLE = False

# APRÈS
try:
    import mcubes
    MCUBES_AVAILABLE = True
except ImportError:
    MCUBES_AVAILABLE = False

# Et remplacer l'appel à torchmcubes par mcubes

Installation : pip install PyMCubes dans le venv TripoSR


3. SadTalker - Patches NumPy + Modèles

Problèmes :

Fichiers modifiés :

  1. I:\SadTalker\src\face3d\util\my_awing_arch.py (ligne 18)
    
    # AVANT
    preds = preds.astype(np.float, copy=False)

APRÈS

preds = preds.astype(float, copy=False)


2. `I:\SadTalker\src\face3d\util\preprocess.py` (ligne ~101)
```python
# AVANT
trans_params = np.array([w0, h0, s, t[0], t[1]])

# APRÈS
trans_params = np.array([w0, h0, float(s), float(t[0]), float(t[1])])

Modèles requis (à télécharger manuellement) :

Mode d'exécution : CLI (inference.py) recommandé - Gradio API renvoie 500.

Temps de rendu : ~7s par frame (38 frames pour 3s d'audio = ~5 min)


Configuration Orchestrator

Wan2.1 Executor (mode CLI)

Le code dans app/main.py :

  1. Écrit le prompt en base64 dans un script Python temporaire
  2. Exécute le script via SSH
  3. Attend la fin de génération
  4. Copie le fichier via SFTP

Timeout : 30 minutes max pour génération

TripoSR Executor (mode Gradio 2 étapes)

  1. Upload image via /upload
  2. Preprocess via /call/preprocess
  3. Generate via /call/generate
  4. Récupère le fichier GLB

Vérification des patches

# Wan2.1
ssh gouro@192.168.1.30 'type I:\Wan2.1\wan\modules\model.py | findstr "from .attention"'
# Doit afficher: from .attention import attention as flash_attention

# TripoSR
ssh gouro@192.168.1.30 'type I:\TripoSR\tsr\models\isosurface.py | findstr mcubes'
# Doit afficher: import mcubes

Mise à jour des outils

ATTENTION : Lors de mise à jour des outils IA, les patches seront écrasés.

Procédure de mise à jour

  1. Sauvegarder les fichiers patchés
  2. Mettre à jour l'outil
  3. Ré-appliquer les patches
  4. Tester via l'orchestrator

Sauvegarde des patches

# Copier les fichiers patchés
scp gouro@192.168.1.30:"I:/Wan2.1/wan/modules/model.py" /stock_8to/backups/win11-patches/
scp gouro@192.168.1.30:"I:/TripoSR/tsr/models/isosurface.py" /stock_8to/backups/win11-patches/

Tests de validation

Wan2.1

curl -X POST 'http://192.168.1.12:5501/api/jobs' \
  -H 'Content-Type: application/json' \
  -d '{"tool_id":"wan21","job_type":"t2v","input_params":{"prompt":"a cat","steps":5}}'

Résultat attendu : status: completed après ~3-4 minutes

TripoSR

curl -X POST 'http://192.168.1.12:5501/api/jobs' \
  -H 'Content-Type: application/json' \
  -d '{"tool_id":"triposr","job_type":"3d","input_params":{"image_url":"https://example.com/image.png"}}'

Résultat attendu : status: completed avec fichier .glb



Système Pause/Resume (24/01/2026)

Permet de libérer le GPU pour jouer à un jeu, puis reprendre le traitement des jobs.

Comportement

  1. Pause (POST /api/worker/pause?stop_tools=true)

    • Arrête le worker (ne prend plus de jobs)
    • Arrête tous les outils actifs (Ollama, etc.)
    • VRAM libérée pour gaming
  2. Resume (POST /api/worker/resume)

    • Reprend le traitement des jobs
    • Les outils redémarrent automatiquement au premier job qui en a besoin (~8s pour Ollama)

Dashboard

Bouton Pause/Resume disponible sur https://dashboard.nowhere84.com/ai-jobs.html

Commandes curl

# Pause (arrête Ollama, libère VRAM)
curl -X POST "https://ai-orchestrator.33800.nowhere84.com/api/worker/pause?stop_tools=true"

# Resume
curl -X POST "https://ai-orchestrator.33800.nowhere84.com/api/worker/resume"

# Status
curl "https://ai-orchestrator.33800.nowhere84.com/api/worker/status"

Commits


Contacts