J’ai récemment publié une première ébauche du trailer de Darkwood :
Et oui… on peut dire que c’est probablement la vidéo la plus chère de ma chaîne YouTube.
Pourquoi faire un trailer maintenant ?
C’est quelque chose que j’avais en tête depuis un moment.
Aujourd’hui, le gameplay présenté sur Darkwood reste encore assez limité : 👉 https://darkwood.com/rules-of-the-game
Le système fonctionne, mais il manque encore de matière pour vraiment projeter les joueurs dans l’univers.
👉 Le trailer est là pour ça.
Un trailer 100% généré par IA
Ce trailer a été entièrement généré à partir :
-
d’un scénario écrit à la main
-
de modèles IA de génération vidéo
-
de modèles IA de génération audio
👉 Le résultat ?
-
Ce n’est pas encore au niveau attendu
-
C’est même loin de ce que j’imaginais
Mais pour un MVP :
👉 c’est acceptable
Et surtout :
-
j’ai passé plusieurs heures à itérer sur le scénario
-
à comprendre les limites des modèles
-
à structurer la génération
⚠️ Pourquoi la vidéo est difficile à comprendre
Si vous regardez le trailer :
👉 vous allez probablement trouver qu’il manque de cohérence
Et c’est normal.
Chaque scène est générée indépendamment, ce qui crée :
-
des ruptures visuelles
-
des personnages incohérents
-
une narration difficile à suivre
👉 Du coup, je vais spoiler le scénario initial pour expliquer ce que je voulais vraiment produire.
Voici une version plus narrative, immersive et volontairement mystérieuse, sans expliquer la finalité :
🎭 Le scénario
Le trailer se déroule en trois mouvements.
🌑 Darkwood
Tout commence dans le silence.
Une lueur froide éclaire la surface de la lune. Puis, lentement, la chute.
La caméra descend, traverse les nuages, et vient s’écraser dans une forêt dense, noire, presque vivante. Des éclairs déchirent le ciel. Les arbres frémissent. Quelque chose fuit dans l’obscurité.
Un sentier apparaît.
Sinueux. Étroit. Il guide la caméra, comme s’il avait été tracé pour elle.
Au bout : un portail.
Forgé dans le fer, rongé par les ronces. Il s’ouvre sans être touché.
Un grincement. Long. Métallique.
Au-delà, un manoir. Isolé. Figé. Observateur.
La porte s’entrouvre.
À l’intérieur, l’air est lourd. Un hall immense, des ombres qui glissent le long des murs. Des rires. Discrets. Presque étouffés.
Un escalier. Puis un couloir. Puis une porte.
Elle s’ouvre.
Une bibliothèque.
Et là, dans la pénombre, une silhouette. Immobile, puis lentement animée.
Une marmite bouillonne. Des couleurs impossibles dansent à sa surface.
Une voix s’élève.
“Enfin… enfin… l’heure est arrivée…”
Un rire. Trop appuyé. Presque faux. Puis un autre.
Les mots se répètent, s’enchaînent, se perdent dans l’écho de la pièce.
La potion réagit. Elle tremble. Elle gonfle.
Puis elle cède.
Dans ce chaos liquide, quelque chose prend forme.
“Toi… être insignifiant…”
D’autres noms suivent. D’autres silhouettes. Des formes à peine définies, mais déjà présentes.
Et la voix continue.
Toujours.
🌈 Happyland
La lumière revient.
Douce. Chaude. Presque trop.
Une forêt. Calme. Accueillante.
Un homme marche. Tranquillement. Il cueille. Il observe.
Puis il chute.
Un simple faux pas. Une racine. Rien de plus.
Une voix surgit.
“Oh… tu es tombé ?”
Un sourire. Puis un rire.
Un autre rire répond. Puis un autre.
Ils se propagent.
L’homme se relève.
“Ce n’est rien.”
Mais déjà, quelque chose a changé.
Sur le chemin du retour, des regards. Des murmures.
“C’est lui… il est tombé…”
Au village, tout le monde semble déjà savoir.
La boulangère sourit. Un peu trop.
“Tout va bien ?”
Il répond oui.
Mais les rires ne cessent pas vraiment. Ils se déplacent.
Ils l’accompagnent.
Chez lui, enfin seul, il s’arrête.
Dos contre la porte.
Silence.
Puis les pensées.
Elles arrivent vite. Trop vite.
“Pourquoi… ?”
Les phrases s’enchaînent, se déforment, se mélangent. Logique. Absurde. Mathématique.
“Et si… ?”
Un doute. Puis un autre.
Et enfin, un sourire.
Un vrai.
“Oui… l’heure est arrivée…”
Un rire lui échappe.
⚖️ Narrateur
Deux figures.
L’une dans l’ombre. L’autre dans la lumière.
Ou peut-être l’inverse.
Un instant suspendu.
Puis une voix.
“Et maintenant… d’après vous…”
Un silence.
“…lequel est le plus bienveillant ?”
⚙️ Stack technique
🧠 Architecture
Le projet utilise une approche DDD (Domain-Driven Design) :
-
Trailer
-
Scene
-
Asset (audio / vidéo)
Avec un pipeline clair :
-
génération des scènes
-
génération des assets
-
fallback fake
-
rendu final
Le projet open source
Le dépôt utilisé pour générer le trailer est disponible ici :
🔁 Orchestration avec Flow
Flow permet :
-
de paralléliser les scènes
-
d’accélérer la génération
-
de structurer le pipeline
🤖 Provider IA : Replicate
🎥 Vidéo
-
bytedance/seedance-1-lite → utilisé pour le MVP ✅
-
minimax/hailuo-02-fast → nécessite des paramètres supplémentaires
-
p-video → nécessite une image d’entrée
🔊 Audio
-
minimax/speech-2.6-turbo → utilisé pour le MVP ✅
👉 Seedance a été choisi car :
-
simple à utiliser
-
fonctionne uniquement avec un prompt texte
-
suffisamment rapide pour itérer
Générer votre propre trailer
Vous pouvez générer votre propre vidéo à partir du projet.
Le scénario est défini dans un fichier YAML :
examples/trailer.yaml
Puis lancer la génération :
php bin/console app:trailer:generate examples/trailer.yaml --video-model=seedance
💸 Coût réel
Après plusieurs tests :
-
~30 minutes générées
-
~10 itérations
👉 total ≈ 75€
⚠️ Astuce
Un flag permet de : 👉 générer uniquement la première scène en réel
Le reste en fake.
✔️ évite d’exploser le budget
🧩 Problèmes identifiés
-
Add pvideo and hailuo support
-
Ajouter FX + ambiance sonore
-
Multi-voix (personnages + narrateur)
-
Rework Flow orchestration
👉 Contributions bienvenues
Conclusion
Aujourd’hui, Darkwood est capable de générer un trailer complet à partir d’un scénario.
Le résultat n’est pas encore au niveau attendu :
-
manque de cohérence
-
narration difficile à suivre
-
limitations des modèles
Mais :
👉 le pipeline fonctionne 👉 les coûts sont maîtrisables 👉 et surtout, le système est itérable
Ce trailer n’est pas une fin.
👉 C’est un point de départ.
⚠️ Accès à la beta Darkwood
Les clés API mentionnées ici :
⏳ valables jusqu’au 25 mars à minuit
Après : 👉 plus d’accès à la beta
👉 Pensez à récupérer votre clé sur Bonzai.
🎤 Sunday Labs #4 : ce que l’écosystème builder parisien cherche vraiment
🧩 Un agent IA aujourd’hui, c’est un stagiaire hypermotivé avec 400 onglets ouverts.
⬆️ Flowvox update : Symfony devient une plateforme d’agents vocaux temps réel
⚙️ NoLife Models - Vers une infrastructure locale des runtimes IA avec Symfony
💡 Devoxx France 2026 - L'Ère de l'Agentique au Cœur de Paris
💫 J’ai forcé 4 IA à recréer Mario de zéro avec Symfony AI et Godot
⚡️ Projection du film "Mon Extraordinaire"
✨ Le design transformatif : ne plus concevoir des usages, mais des métamorphoses
⚙️ Construire une architecture multi-agent gouvernée avec Symfony AI, Flow et Navi
🚀 Levée de fonds vs Bootstrap : deux chemins pour construire une boîte
🚀 J’ai reconstruit un LLM… avec des pixels.
🔊 DJ Matyo Live - Soundcloud set
🤖 Symfony AI in Action - Construire des systèmes IA réels avec Symfony
🐳 Agentic Workflows avec Docker - vers des systèmes autonomes, sécurisés et orchestrés
👨💻 Évaluation comparative de petits modèles de langage dans le monde réel
🚀 Sundays Lab #3 - Quand l’IA devient un terrain de jeu collectif
⚙️ Message-oriented vs Data-oriented orchestration - de la donnée à la connaissance
🤩 Relâcher les connecteurs - Des outils au langage
💡 J’ai créé une app IA RGPD en 1h avec Symfony
🗂️ Hellcats Over The Pacific - ouverture des archives