retrotoon-studio/server
Ubuntu 239edf50c7 feat: propagation des calques à toute la séquence (batch insert)
Travailler frame par frame sur un projet de 740 frames est impraticable.
Maintenant un calque satisfaisant sur une frame peut être propagé sur
toutes les frames de sa séquence en 1 clic.

Backend:
- db.propagateLayerToSequence(sourceLayerId, startFrame, endFrame)
  * Récupère TOUTES les frames cibles en 1 query
  * Récupère TOUS les layers existants en 1 query (inArray)
  * Sépare en deux groupes: à insérer / à mettre à jour
  * Batch INSERT par chunks de 100 lignes (1 query par chunk)
  * Updates en parallèle par chunks de 20 (Promise.all)
  * Skip les layers verrouillés
  * Copie sourceVariantId, transform, opacity, blendMode, visible, maskUrl, name

- Endpoint tRPC layers.propagateToSequence(layerId)
  * Auto-détecte la séquence à laquelle appartient la frame source
  * Fallback sur toutes les frames si pas de séquence trouvée
  * Optional startFrame/endFrame pour override manuel

Performance:
- Avant: 1 query SELECT + 1 INSERT par frame cible
  → 740 INSERTs × ~200ms (latence TiDB Cloud US) = ~150s
- Après: 1 SELECT batch + 1-8 INSERT batch + parallèles updates
  → 736 layers créés en 3.05s (60x plus rapide)

Frontend (CompositionStudio):
- Bouton "Appliquer à la séquence" (violet, prominent) dans
  les actions de l'inspecteur
- Confirm dialog avant exécution (warn que ça remplace les layers
  existants non verrouillés)
- Toast détaillé après: "X créés, Y mis à jour, Z verrouillés"
- Loading spinner pendant l'opération
- Tooltip explicatif sur le bouton

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-21 17:40:58 +00:00
..
_core feat(M3): Édition par zone - inpainting localisé via masque 2026-05-21 06:48:21 +00:00
assistantOperator.ts feat: pipeline complet - annotation, compositing réel, auto-compose, drag-drop layers 2026-05-21 05:19:07 +00:00
auth.logout.test.ts fix: audit complet et pipeline fonctionnel RetroToon Studio 2026-05-21 01:37:08 +00:00
db.ts feat: propagation des calques à toute la séquence (batch insert) 2026-05-21 17:40:58 +00:00
ffmpegLocal.ts fix: audit complet et pipeline fonctionnel RetroToon Studio 2026-05-21 01:37:08 +00:00
gemini.test.ts feat: Import vidéo robuste + Multi-LLM Gemini + NLE Workspace complet 2026-05-20 01:51:58 +00:00
keyboardShortcuts.test.ts Checkpoint: Refactoring complet du système de raccourcis clavier : remplacement du hook useKeyboardShortcuts par un ShortcutsContext React partagé. Le ViewportPanel et le ShortcutSettings partagent désormais le même état via un Provider unique. Les listeners sont automatiquement désactivés pendant l'enregistrement d'un nouveau raccourci pour éviter les conflits. Les modifications sont immédiatement reflétées dans les tooltips et le listener actif. 47 tests passants, zéro erreur TypeScript. 2026-05-20 00:37:46 +00:00
llmConfig.ts feat: migration complète Manus -> auto-hébergé (MinIO + Gemini) 2026-05-21 04:27:48 +00:00
routers.test.ts fix: audit complet et pipeline fonctionnel RetroToon Studio 2026-05-21 01:37:08 +00:00
routers.ts feat: propagation des calques à toute la séquence (batch insert) 2026-05-21 17:40:58 +00:00
segmentationService.ts feat(M2): Manipulation spatiale des calques personnage 2026-05-21 07:06:26 +00:00
servicesConfig.test.ts Checkpoint: Intégration complète du module servicesConfig : les pipelines FFmpeg (extraction, audio, export) et SAM 2 (segmentation, propagation) lisent la configuration admin et basculent entre mode simulé et service externe. Stratégie de génération LoRA/IP-Adapter avec sélection automatique basée sur modelType du personnage. Contraintes ControlNet/pose intégrées dans le prompt engineering. Cache invalidé automatiquement après sauvegarde admin. 41 tests passants. 2026-05-20 00:15:37 +00:00
servicesConfig.ts Checkpoint: Intégration complète du module servicesConfig : les pipelines FFmpeg (extraction, audio, export) et SAM 2 (segmentation, propagation) lisent la configuration admin et basculent entre mode simulé et service externe. Stratégie de génération LoRA/IP-Adapter avec sélection automatique basée sur modelType du personnage. Contraintes ControlNet/pose intégrées dans le prompt engineering. Cache invalidé automatiquement après sauvegarde admin. 41 tests passants. 2026-05-20 00:15:37 +00:00
storage.ts feat: migration complète Manus -> auto-hébergé (MinIO + Gemini) 2026-05-21 04:27:48 +00:00
uploadRoute.ts feat: migration complète Manus -> auto-hébergé (MinIO + Gemini) 2026-05-21 04:27:48 +00:00
videoProcessor.test.ts Checkpoint: RetroToon Studio v4 - Ajout de l'algorithme de détection de cuts basé sur chi-squared histogramme (hard cuts + dissolves), export vidéo avec bouton fonctionnel dans le workspace, suppression de projet avec cascade complète, compositing amélioré avec alpha blending et propagation temporelle des masques avec drift detection, utilisation effective du maskUrl dans l'inpainting. 34 tests vitest passants, 0 erreur TypeScript. 2026-05-20 00:04:26 +00:00
videoProcessor.ts feat: migration complète Manus -> auto-hébergé (MinIO + Gemini) 2026-05-21 04:27:48 +00:00