Des storyboards aux pipelines d’IA – Redéfinir l’animation

La plupart des gens pensent que la vidéo IA signifie « texte entrant, extrait ». Mais si vous visez un contrôle cinématographique au niveau du réalisateur, c'est un jeu complètement différent.
Dans l'animation traditionnelle, chaque détail compte: la conception des personnages, la continuité des mouvements, le timing et les transitions de scène. Notre objectif est de faire en sorte que l’IA corresponde à ce niveau de précision.
L’animation est aujourd’hui à la fois un art et un défi d’orchestration structurée. Nous pensons comme des réalisateurs, mais construisons comme des ingénieurs.
C'est pourquoi nous construisons des pipelines de génération contrôlée au lieu d'une génération ponctuelle. Ces pipelines allient structure et créativité:
Pipeline de génération vidéo IA
Le pipeline de génération vidéo IA transforme les invites textuelles en vidéos soignées via des étapes structurées avec des entrées, des sorties et des configurations explicites.
- JSON-first design: chaque scène est adressable et scriptable (scene_id, shot_id)
- Workflows basés sur ComfyUI: DAGs modulaires, reproductibles et composables pour la génération image/video
- Contrôle temporel et multimodal: graines cohérentes, intégration de personnages et timing entre les modalités
Passons maintenant à un exemple simple pour montrer comment les pipelines d'IA fonctionnent dans la pratique.
Étape 1: Commencez par une invite de base
Une jeune fille se tient debout dans une gare à minuit, les cheveux soufflés par le vent.
Avec l'aide de GPT ou d'un LLM local, nous développons cela en un objet JSON structuré avec un style global, des définitions de personnages et une répartition par scène.
A young woman standing alone on a midnight train platform, dim lights reflecting off the wet ground, wind blowing her hair, cinematic lighting, anime art style, 4KÉtape 2: Convertir l'invite en tableau de storyboard
| Scene | Shot | Camera | Visual | Dialogue |
|---|---|---|---|---|
| 1 | Wide | Sway | The girl waits alone at the platform. Wet pavement reflects dim station lights. Wind gently lifts her hair. | (No dialogue – ambient station sounds) |
| 2 | Medium | Push | The camera slowly zooms in on her eyes. A distant light appears — a train approaches. | She whispers, "It's time." |
| 3 | Close-up | Static | Her hand tightens on an old ticket, knuckles white. Her gaze flickers with nerves and resolve. | (No dialogue – deep inhale) |
| 4 | Wide | Handheld | The train screeches in, spraying mist. The doors open with a hiss. | (No dialogue – train arrival and footsteps) |
| 5 | Over-the-shoulder | Track | From behind, she steps inside. Her silhouette framed by the train's pale light. | She says softly, "I hope you're there." |
| 6 | Inside train | Swivel | She sits beside an empty seat, the world passing in blurred streaks outside. | (No dialogue – distant announcement echoes) |
| 7 | Insert | Static | Close-up of her phone: a message reads "I'm waiting." Her lips form a faint smile. | |
| 8 | Medium | Dolly | The train slows. She stands and approaches the door, breath catching in anticipation. | (No dialogue – heartbeat and brakes squeal softly) |
🛠️ 🛠️ Étape 3: Générer des visuels
Générez des images clés de haute qualité pour chaque prise de vue à l'aide de Stable Diffusion via un flux de travail ComfyUI.
- 🎨 Utilisez Stable Diffusion ou ComfyUI pour transformer chaque ligne de `storyboard_v1.csv` en une image clé haute résolution.
- Gardez le style cohérent en utilisant le même point de contrôle de base, la même pile LoRA, l'échantillonneur et la même politique de départ pour tous les plans.
- Affinez les images avec l'inpainting (pour faces/hands) et l'outpainting (pour les compositions étendues et le mouvement de la caméra).
🎬 🎬 Étape 4: Ajouter du mouvement et de l'atmosphère dans After Effects
Améliorez les images clés statiques avec du mouvement, de la parallaxe et de l'atmosphère à l'aide de Adobe After Effects (ou d'un compositeur équivalent).
- Importez des séquences d'images ou des images clés dans Adobe After Effects sous forme de compositions en couches.
- Appliquez des animations d'images clés: panoramique, zoom, calques de parallaxe, superpositions de brouillard, lueur et scintillement de la lumière.
- Ajoutez des signaux sonores ambiants et des transitions cinématiques entre les scènes.
🎧 🎧 Étape 5: Ajouter une voix et des sous-titres
Générez une voix off alignée sur le storyboard et attachez des sous-titres pour plus d'accessibilité et de clarté.
- Utilisez XTTS ou ElevenLabs pour générer des voix off naturelles à partir du script, en utilisant un profil de locuteur cohérent.
- Pour les acronymes (comme API, NBA), générez des extraits d'anglais séparément et fusionnez-les dans la publication pour garder une prononciation claire.
- Ajoutez des sous-titres à l'aide des fichiers de chronologie `.srt` ou `.json` synchronisés avec la piste de voix off.
📦 Étape 6: Composition finale avec FFMPEG
Utilisez FFMPEG pour combiner toutes les pièces en un seul fichier vidéo final avec audio et sous-titres.
ffmpeg -f concat -safe 0 -i mylist.txt -c copy output_temp.mp4
ffmpeg -i output_temp.mp4 -i music.mp3 -filter_complex "[0:a][1:a]amix=inputs=2" output_final.mp4
# -filter_complex: Apply audio filter to mix both audio tracks
# [0:a][1:a]amix=inputs=2: Mix both audio streams (from video and music)
# output_final.mp4: Final output file with video and mixed audio📁 Ce dont vous aurez besoin
- storyboard.json – short scene descriptions
{ "project_name": "Midnight Train", "scenes": [ { "scene_number": 1, "shot_type": "Wide", "camera_movement": "Sway", "description": "Girl waits alone at a midnight train platform. Wet pavement reflects dim station lights. Wind gently lifts her hair.", "duration_seconds": 5, "visual_elements": ["night", "train station", "wind effect", "reflections"], "audio_cues": ["ambient station sounds", "distant train"] }, { "scene_number": 2, "shot_type": "Medium", "camera_movement": "Push", "description": "Camera slowly zooms in on her eyes. A distant light appears — a train approaches.", "duration_seconds": 4, "visual_elements": ["close-up", "eyes", "approaching train light"], "audio_cues": ["train approaching", "whisper"] } ], "style": "cinematic anime", "aspect_ratio": "16:9", "fps": 24 } - prompts.json – GPT-expanded prompts
{ "base_prompt": "A girl stands at a midnight train station, wind blowing her hair.", "expanded_prompts": { "scene_1": { "visual_description": "A young woman standing alone on a midnight train platform, dim lights reflecting off the wet ground, wind blowing her hair, cinematic lighting, anime art style, 4K", "camera_instructions": "Wide shot, slight camera sway to create tension, shallow depth of field", "lighting": "Low-key lighting with high contrast, blue hour ambiance, artificial station lights casting long shadows" }, "scene_2": { "visual_description": "Close-up of the woman's eyes, reflecting the approaching train light, detailed eyelashes, subtle eye movement, cinematic anime style", "camera_instructions": "Slow push-in, slight handheld shake for intensity, focus pull from eyes to reflection", "lighting": "Chiaroscuro lighting, single key light source from the approaching train" } }, "style_guide": { "color_palette": ["#0a1a2f", "#1a3a5f", "#4a90e2", "#f5f5f5"], "mood": "Mysterious, anticipatory, cinematic", "art_references": ["Makoto Shinkai's night scenes", "Ghost in the Shell lighting"] } } - scene1.png, scene2.png – image outputs
- scene1.wav – voice narration per scene
- build_project.jsx – AE import + animation script
- combine_video.sh – FFMPEG merge script