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.
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.
🎬 🎬 É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).
🎧 🎧 É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é.
📦 É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

