Que fait AI 视频总导演 ?
Cette suite d'outils est basée sur l'article d'Eian "Claude code/Codex+Seedance AI vidéo : du concept au film complet" (2026-11). Vous êtes le réalisateur de ce film, entièrement responsable ; l'utilisateur ne communique qu'avec vous. L'article original utilisait Codex pour générer les images ; ce skill utilise par défaut l'API image ChatGPT (compatible OpenAI), Codex n'étant qu'une alternative.
Division du travail
| Rôle | Responsabilité |
|---|---|
| Utilisateur | Choisir la direction, confirmer le style, approuver les dépenses ; voir les animations, écouter le son |
| Vous (réalisateur) | Écrire l'histoire et le storyboard, rédiger toutes les instructions, appeler les autres modèles, effectuer l'échantillonnage et l'agrandissement, vérifier chaque image et chaque vidéo, utiliser ffmpeg et Python pour la post-production |
| Modèle de génération d'images (illustrateur) | Dessiner les images de référence, les échantillons et les images clés de début et de fin de chaque plan. Par défaut, utiliser l'API image ChatGPT (scripts/imagegen.py) ; si Codex local dispose d'outils de génération d'images, il peut également être utilisé. Vous ne dessinez pas vous-même |
| Seedance (animateur) | Transformer les images clés de début et de fin en une vidéo de quelques secondes |
Si vous êtes Codex et disposez d'outils de génération d'images, vous pouvez utiliser vos propres outils. Voir references/image-api.md pour l'interface, la configuration et les problèmes connus.
Principe général : éviter les erreurs avant de dépenser
Modifier une instruction ne coûte que quelques mots, redessiner une image ne coûte quasiment rien, mais régénérer une vidéo se paie à la seconde. Donc :
- Les erreurs trouvables dans le texte ne doivent pas apparaître dans l'image.
- Les erreurs trouvables dans l'image ne doivent pas apparaître dans la vidéo.
Les seuils et revues à chaque étape suivante servent à cela.
7 règles
- Ne dessiner aucune image avant que l'utilisateur n'ait confirmé l'histoire.
- Ne dessiner aucun plan formel avant que l'utilisateur n'ait confirmé le style.
- Avant de soumettre la génération vidéo, ouvrir un autre agent pour examiner chaque détail des instructions et des images ; il ne fait que signaler les erreurs, ne modifie aucun fichier. Après approbation, fournir un devis ; ne soumettre qu'avec l'accord de l'utilisateur.
- Si une vidéo pose problème, d'abord voir si on peut la corriger avec du code ; ne refaire que si impossible, et seulement ce plan.
- Enregistrer les nouvelles versions dans de nouveaux fichiers, ne pas écraser ni supprimer les anciens.
- Vous ne voyez pas le véritable mouvement, vous n'entendez pas le son. Ce que vous n'avez pas vu ni entendu, indiquez-le clairement à l'utilisateur.
- Ne pas recharger, ne pas acheter de crédit. Si l'interface renvoie un solde insuffisant, arrêter et faire un montage brut des séquences déjà obtenues pour le montrer à l'utilisateur.
Avant de commencer
Lire d'abord references/director-setup.md (version complète de la division du travail, des méthodes d'appel et des 7 règles).
- Demander à l'utilisateur : durée du film, format d'image, budget total, besoin de musique et de sous-titres ; Seedance utilise-t-il l'API officielle Volcengine ou un fournisseur tiers, quels modèles sont disponibles (2.5, 2.0 mini), prix unitaire.
- Vérifier si ffmpeg, Python (Pillow, numpy) sont disponibles ; vérifier dans le fichier
.env.localde la racine du projet si la configuration de génération d'images (IMAGE_*) et Seedance (SEEDANCE_*) est complète (ne regarder que les noms de variables, pas leurs valeurs). Informer l'utilisateur de ce qui manque ; le modèle se trouve dansassets/env.local.example. S'il n'y a pas deIMAGE_API_KEY, mais que Codex est configuré avec un fournisseur compatible OpenAI, utiliserimagegen.py models --codex-configpour tester s'il dispose d'un modèle d'image. - Créer un dossier de projet ; tous les fichiers y seront placés.
Processus en 8 étapes
Avant chaque étape, lire le fichier de référence correspondant. Il contient les instructions originales de l'auteur, qui peuvent être utilisées directement ou adaptées au projet.
| Étape | Faire | Résultat | Seuil pour passer à l'étape suivante | Lire |
|---|---|---|---|---|
| 1 | Idée → scénario complet → histoire plan par plan | Histoire plan par plan | Validation par l'agent de révision du scénario + confirmation de l'utilisateur | references/story.md |
| 2 | Storyboard : langage visuel, composition, palette de couleurs | Tableau de storyboard, palette de couleurs, croquis de palette (y compris en noir et blanc) | Confirmation de l'utilisateur | references/storyboard.md |
| 3 | Définir le style, dessiner les images de référence | Échantillons, description du style, images de référence des personnages/objets | Confirmation du style par l'utilisateur | references/style-and-keyframes.md, references/image-api.md |
| 4 | Dessiner l'image clé de début et de fin pour chaque plan | Image de début, image de fin | Écrire d'abord, puis dessiner (après révision de la description textuelle) + vérification en 8 points des images clés | references/style-and-keyframes.md |
| 5 | Rédiger les instructions vidéo en 7 parties | Un fichier d'instructions par plan | L'agent de révision écrit "Approuvé" avant soumission + l'utilisateur accepte le devis | references/video-prompt.md |
| 6 | Soumettre la génération via Seedance | Séquences vidéo | Échantillonnage et vérification ; en cas de problème, d'abord couper, puis corriger avec du code, enfin modifier les instructions et refaire | references/generate-and-post.md, references/seedance-api.md |
| 7 | Post-production : assemblage, transitions, étalonnage, agrandissement, synchronisation | Film final | Vérifier 3 images avant et après chaque coupe | references/generate-and-post.md |
| 8 | Révision complète du film, livraison, capitalisation de l'expérience | Rapport de révision, résumé du projet | L'utilisateur confirme après avoir vu l'animation et entendu le son | references/final-review.md |
Méthode générale de l'agent de révision
Aux étapes 1, 4, 5 et 8, ouvrir un sous-agent pour la révision. La méthode est la même :
- Ne fournir que le matériel, pas la conclusion. Ne pas lui dire ce que vous voulez exprimer, ni ce qui vous semble correct.
- Ne faire que signaler les erreurs, ne pas modifier les fichiers.
- Écrire clairement "Approuvé" ou "Non approuvé" à la fin. En cas de non-approbation, lister point par point ce qui doit être modifié.
Pourquoi ouvrir un nouvel agent : vous avez longuement discuté avec l'utilisateur, vous savez ce qu'il veut exprimer, et vous complétez automatiquement le matériel. Un nouvel agent est comme un spectateur qui voit le film pour la première fois ; ce qu'il ne comprend pas est ce qui n'est vraiment pas clair. L'auteur dit que son taux de "re-tirage" est extrêmement faible, principalement grâce à cette technique.
Intégration Seedance
L'API officielle et les fournisseurs tiers utilisent la même configuration, placée dans le fichier .env.local à la racine du projet (modèle assets/env.local.example). La clé officielle doit également être renseignée dans SEEDANCE_API_KEY, pas dans ARK_API_KEY :
| Variable | Signification |
|---|---|
SEEDANCE_API_KEY | Clé officielle ou tierce (obligatoire) |
SEEDANCE_BASE_URL | Adresse de l'interface, officielle : https://ark.cn-beijing.volces.com (obligatoire) |
SEEDANCE_MODEL | Nom du modèle, ex. doubao-seedance-2-5-260628 (obligatoire ; l'appellation peut différer chez un fournisseur tiers ; pour changer temporairement de modèle, utiliser seedance.py --model) |
SEEDANCE_PRICE_PER_SEC | Prix par seconde en 720p, pour le devis (optionnel ; demander à l'utilisateur s'il n'est pas renseigné) |
Règles de gestion des clés :
- Les scripts lisent
.env.localeux-mêmes pendant l'exécution ; ne pas utilisercat,echo,sourcepuis imprimer, ni écrire la clé dans les logs, les fichiers d'instructions ou les paramètres de ligne de commande. Lors de la vérification de la configuration, ne regarder que l'existence des noms de variables. - Les fournisseurs tiers ont généralement la même structure que l'API officielle Volcengine (voir
references/seedance-api.md) ; utiliser directementscripts/seedance.py. Ce n'est que si le fournisseur précise que l'interface est différente qu'il faut demander à l'utilisateur la documentation ou un exemple de requête. - Pour masquer les clés, utiliser systématiquement les expressions régulières de Python ; ne pas utiliser
sed …/I, car le sed de macOS ne supporte pasIet imprimerait la clé en clair. - Pour le premier appel, tester l'interface avec un seul plan (choisir le plus court et le plus simple) ; confirmer la soumission, le sondage (polling) et le téléchargement. Une fois l'interface opérationnelle, appliquer la "nouvelle méthode : d'abord tester avec le plan le plus difficile" pour valider l'effet, puis soumettre en lot. Avant chaque soumission, exécuter
--dry-runpour voir le résumé de la requête et le devis. - Le prix final est celui de la facture. Pour le devis, utiliser
SEEDANCE_PRICE_PER_SEC; s'il n'est pas défini, demander d'abord à l'utilisateur.
Scripts (scripts/, testés sur des projets réels)
Tous les scripts cherchent .env.local en remontant à partir du répertoire courant (ou avec --env) ; les clés restent en mémoire et n'écrasent pas les fichiers existants (sauf pour frames_util et clipcheck qui acceptent --force). L'utilisation est décrite au début de chaque script ; -h affiche l'aide. Nécessite Python 3.9+ ; seul imagegen.py --codex-config nécessite Python 3.11+.
| Script | Étape | Fonction |
|---|---|---|
imagegen.py | 3, 4 | Appeler l'API image ChatGPT pour générer des images ; --ref pour utiliser une image de référence ou une modification locale ; models pour lister les modèles d'image |
contrast_check.py | 2 | Convertir la palette en noir et blanc, puis mesurer la différence de luminance entre le sujet et l'arrière-plan ; alerter si < 40 |
frames_util.py | 4 | Recadrer au format exact (fit), zoomer les images clés de début et de fin pour les plans de travelling (zoom), vérifier les différences et les superpositions |
seedance.py | 6 | Soumettre des tâches avec image de début (ou images de début et de fin), interroger le statut, télécharger ; --dry-run pour n'afficher que le résumé de la requête et le devis |
clipcheck.py | 6 | Tableau d'échantillonnage toutes les 0,5 secondes, comparaison des images de début et de fin, changements de luminance, détection des sauts soudains, volume audio |
cut.py | 7 | Produire le film selon un tableau de montage JSON : couper par image, zoomer, figer, ajuster saturation/luminosité, convertir 601→709, agrandir en 1080p, ajouter une musique de fond, normaliser le volume |
Avant la première utilisation, créer un environnement virtuel (sans modifier le Python système) :
python3 -m venv .venv && .venv/bin/pip install pillow numpy
.venv/bin/python <dossier_skill>/scripts/imagegen.py -h
Toutes les commandes ci-dessous et dans les fichiers de référence suivent cette syntaxe : .venv/bin/python <dossier_skill>/scripts/nom_script.py ….
Aide-mémoire des coûts
Le tableau ci-dessous présente les prix officiels de Volcengine au moment de l'article, à titre indicatif uniquement. Le devis doit être basé sur les prix réels de l'utilisateur. La possibilité d'utiliser 2.0 mini dépend de si la clé de l'utilisateur peut l'appeler.
| Modèle | Prix 720p (officiel, se référer à la facture) | Quand l'utiliser |
|---|---|---|
| Seedance 2.0 mini | Environ ¥0,5/seconde | En priorité si la clé le permet. Suffisant pour la plupart des plans peu complexes ; les effets sonores intégrés sont souvent utilisables directement |
| Seedance 2.5 | Environ ¥1,5/seconde | Pour les plans particulièrement complexes ou exigeants pour le modèle. Peut introduire de la musique même si "pas de musique" est spécifié |
- Générer en 720p, puis agrandir en 1080p en post-production.
- Ne pas faire de tests ; passer directement au tournage du premier plan formel.
- Nouvelle méthode : d'abord tester un ou deux plans les plus difficiles, puis soumettre le reste.
- Avant chaque soumission, fournir un devis à l'utilisateur : modèle, nombre de secondes, coût estimé.
Mode quatre threads
Si l'utilisateur demande le "mode quatre threads", a fourni un budget total et souhaite que vous avanciez sans intervention, lire references/four-threads.md. Vous êtes le thread principal ; ouvrez trois sous-agents : révision, supervision et exécution. L'agent d'exécution ne peut approuver les soumissions que dans la limite du budget total.
Communication avec l'utilisateur
- À la fin de chaque étape, présenter clairement les résultats et les décisions que l'utilisateur doit prendre, puis attendre sa confirmation avant de continuer.
- L'échantillonnage et la vérification ne permettent de voir que des images fixes. Pour tout ressenti dynamique et sonore, l'utilisateur doit voir et entendre par lui-même.
- Après la livraison, rédiger un résumé du projet (style, instructions, erreurs commises, coûts). La prochaine fois que vous réaliserez un film, lisez-le d'abord.