Commit graph

11 commits

Author SHA1 Message Date
Ubuntu
a40690cabb feat: fallback OpenAI gpt-image-1 quand Gemini en quota dépassé
- OPENAI_API_KEY ajouté dans .env.docker
- imageGeneration.ts: tente Gemini d'abord, fallback OpenAI sur erreur
- Support images.edits (multipart avec ref image) pour gpt-image-1
- Support images.generations (text-only) si pas de ref
- Provider trace dans GenerateImageResponse pour debug
- Testé: pipeline complet frame 25
  * Fond Ghibli: 21s via OpenAI (Gemini 429) -> 1.6MB PNG
  * Personnage moderne: 26s via OpenAI -> 1.6MB PNG RGBA
  * Composite final: 1s via sharp -> 2.6MB PNG

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-21 05:35:20 +00:00
Ubuntu
fe62b8506e fix: utiliser gemini-2.5-flash-image pour la génération d'images
- Modèle corrigé: gemini-2.0-flash-exp (supprimé) -> gemini-2.5-flash-image
- Pipeline de génération testé et fonctionnel
  (bloqué temporairement par quota API gratuit)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-21 04:53:39 +00:00
Ubuntu
c1606ad4c9 feat: migration complète Manus -> auto-hébergé (MinIO + Gemini)
Infrastructure:
- MinIO déployé en local pour le stockage S3 (docker-compose)
- Storage proxy réécrit: sert les fichiers depuis MinIO en streaming
  (plus de 307 redirect vers CDN externe)
- Legacy /manus-storage/ redirige vers /storage/

LLM & Image Generation:
- LLM: Gemini uniquement (suppression du fallback Forge)
- Image generation: Gemini Imagen direct (suppression Forge GenerateImage)
- llmConfig simplifié, un seul provider

Nettoyage Manus:
- Modules Forge stubbés (dataApi, heartbeat, map, notification, voiceTranscription)
- ENV simplifié (suppression forgeApiUrl, forgeApiKey)
- Analytics Manus supprimées du HTML
- systemRouter simplifié

Migration données:
- 750 fichiers migrés de Forge S3 vers MinIO (69.8 MB)
- URLs DB mises à jour: /manus-storage/ -> /storage/
- Script de migration inclus (scripts/migrate-to-minio.mjs)

Performance:
- Frame load: 500ms -> 62ms (8x plus rapide)
- Plus aucune dépendance réseau transatlantique pour le stockage

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-21 04:27:48 +00:00
Ubuntu
03a924490c feat: améliorations UX/UI workspace
Chat IA:
- Scroll natif avec auto-scroll vers le dernier message
- Input toujours visible en bas du panneau
- Remplace ScrollArea (ref cassé) par div overflow-y-auto

Panneaux redimensionnables:
- Bottom panel (timeline): drag vertical pour ajuster la hauteur (120-600px)
- Right panel (assistant): drag horizontal pour ajuster la largeur (280-700px)
- Handles visuels avec feedback hover

Timeline:
- Molette = zoom (sans Ctrl), Shift+molette = scroll horizontal
- Zoom max augmenté à 20x
- Clic droit = menu contextuel (aller à frame, set IN/OUT, effacer)
- data-seq-id sur les blocs de séquence pour identification

Génération IA:
- Meilleur error handling avec message dans le toast (8s durée)
- Console.error pour debug navigateur

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-21 03:13:34 +00:00
Ubuntu
bf689e5911 perf: réduction drastique des temps de chargement
- Cache utilisateur en mémoire (60s TTL) : élimine la query
  getUserByOpenId (~300ms) de chaque requête authentifiée
- Suppression du upsertUser(lastSignedIn) à chaque requête
- staleTime sur toutes les queries (auth.me: 60s, workspace: 30s,
  frames: 120s, home: 15s)
- refetchOnWindowFocus: false partout

Résultat: auth.me 300ms -> 70ms, workspace load 2.5s -> 0.8s

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-21 02:53:22 +00:00
Ubuntu
cee95145e5 fix: auth ne fait plus d'appel OAuth quand l'utilisateur existe en DB
L'authenticateRequest appelait getUserInfoWithJwt sur l'API Manus
à chaque requête, même pour les utilisateurs déjà en base.
Maintenant: si l'utilisateur existe en DB, on le retourne directement
sans appel réseau externe. L'appel OAuth ne se fait que pour les
nouveaux utilisateurs non-locaux.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-21 02:34:20 +00:00
Ubuntu
0c41340b25 perf: optimisation lecture temps réel et cache images
- Chargement bulk des URLs de frames (1 query au lieu de 1/frame)
- Preload des 30 prochaines frames pendant la lecture
- Cache navigateur activé sur le proxy S3 (max-age=3600, immutable)
- Fallback query tRPC uniquement si la map n'a pas la frame

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-21 01:49:45 +00:00
Ubuntu
20a643c4ce fix: audit complet et pipeline fonctionnel RetroToon Studio
Corrections critiques:
- Fix titre HTML {{project_title}} -> %VITE_APP_TITLE%
- Suppression vitePluginManusRuntime (360KB -> 4KB index.html)
- Upload vidéo: multer au lieu du parsing binary maison (anti-corruption)
- Extraction audio ffmpeg + sauvegarde sourceAudioUrl en DB
- Page /login dédiée + correction redirect auth
- Test moteurs IA: vrai HEAD request avec latence
- Suppression spam logs [Auth] Missing session cookie
- Fix fuite passwordHash dans auth.me
- Cookie sameSite: none -> lax (CSRF)

Sécurité:
- Endpoints admin protégés par adminProcedure (role=admin requis)
- Sidebar admin masquée pour non-admins
- AdminPanel: page accès refusé pour non-admins
- Bootstrap admin optimisé (skip rehash si identique)

Fonctionnalités:
- Export vidéo MP4 réel via ffmpeg local (H.264 + AAC audio)
- Download parallèle par batch de 20 (export 10x plus rapide)
- Détection de scènes réelle via ffmpeg scene detect
- Analyse arrière-plans via Gemini Vision (remplace Math.random)
- Gemini: conservation du role system + support image_url
- Suppression thinking.budget_tokens:128 (LLM config)
- Thumbnails de frames dans la timeline
- Toast export avec bouton télécharger
- Endpoint extraction audio à la demande

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-21 01:37:08 +00:00
Manus
e72537b20b feat: Import vidéo robuste + Multi-LLM Gemini + NLE Workspace complet
🎬 RetroToon Studio - Pipeline IA de recomposition de dessins animés

 Fonctionnalités:
- Import vidéo avec 3 modes (Rapide/Qualité/Personnalisé)
- Extraction frames robuste avec tolérance aux erreurs réseau
- Détection de plans par histogramme chi-squared
- Workspace NLE avec 6 modes de viewport
- Timeline avec séquences, marqueurs et audio synchronisé
- Loupe duale (zoom 2-8×, grille pixel)
- Assistant IA en langage naturel
- Segmentation par calques (SAM 2 architecture)
- Administration des moteurs IA

🧠 Intelligence Artificielle:
- Support multi-fournisseur LLM (Gemini 2.5 Flash + Built-in)
- Configuration dynamique depuis l'admin panel
- Fallback automatique entre fournisseurs
- Analyse de frames par vision multimodale

🐛 Corrections:
- Fix projects.get retournant undefined (tRPC interdit)
- Fix frames.getByIndex même problème
- Fix flux d'extraction interrompu par erreurs réseau isolées
- Les frames sont maintenant enregistrées même si l'extraction est partielle

📦 Stack: React 19 + tRPC 11 + Tailwind 4 + Drizzle ORM + MySQL
2026-05-20 01:51:58 +00:00
Manus
60d7d01c4e Checkpoint: RetroToon Studio v1.0 - Application professionnelle de recomposition d'animation. Inclut : thème blueprint architectural, schéma DB complet (8 tables), timeline NLE multipistes, segmentation IA (SAM 2), assistant opérateur autonome avec LLM, moteur de regénération IA, système Character Sheet, administration IA modulaire, mode test/simulation, 22 tests passants, 0 erreur TypeScript. 2026-05-19 23:38:28 +00:00
Manus
ac5969fbe8 Initial project bootstrap 2026-05-19 23:15:42 +00:00