Que fait 小Lin说讲解包装 ?
Transformez un ensemble de séquences d'enregistrement (A-roll) et un script en une vidéo explicative dans le style de Xiao Lin Shuo. Les séquences d'enregistrement sont générées ou filmées par un autre outil. Ce skill gère la recherche des informations nécessaires à la mise en page, les images explicatives, les sous-titres, les transitions et le son.
Si l'environnement contient design-aesthetic-standard, les jugements créatifs visuels et sonores doivent également le respecter. Si video-generation est présent, la génération et le montage des séquences d'enregistrement sont décrits dans ce document.
Documents de référence (à lire selon les besoins)
references/style-bible.md: son langage graphique, 6 règles strictes, palette de couleurs, polices, incrustation dans l'image, statistiques de transitions, niveaux sonores. À lire avant la planification des scènes.references/research.md: quoi rechercher pour chaque type de mise en page, hiérarchie des sources, où chercher, droits d'image. À lire lors de la planification des scènes.references/layouts.md: paramètres, exemples d'appels et pièges pour chaque composant de mise en page. À lire lors de la rédaction du storyboard.references/storyboard-api.md: formatstimeline.jsonetproject.json, API du storyboard, timing par mots-clés, commandes de visionnage et de rendu. À lire lors de la première configuration du projet.
Environnement
- Node ≥ 18, ffmpeg, python3 (avec numpy et Pillow).
npm installet le premier rendu nécessitent une connexion Internet (Remotion télécharge Chrome). - Testé uniquement sur macOS (Apple Silicon). Sur d'autres systèmes, le rendu logiciel par défaut est
swangle; vous pouvez le modifier avec la variable d'environnementREMOTION_GL. - Polices : le modèle inclut 6 polices sous licence SIL OFL. Les licences se trouvent dans
templates/engine/public/fonts/LICENSES.txt. La police YouShe Title Black (YouShe.ttf) peut ne pas être incluse. Le scriptnew_project.shcherche dans$YOUSHE_TTFet les répertoires de polices courants ; si elle est introuvable, l'utilisateur est invité à la télécharger depuis https://www.uisdc.com/uisdc-first-free-font et à la placer danspublic/fonts/YouShe.ttf. Sans cette police, les titres et sous-titres utilisent la graisse la plus épaisse (900) de Source Han Sans, sans inclinaison, ce qui affaiblit nettement le style. - Licence Remotion : les particuliers, entreprises de moins de 3 personnes et organisations à but non lucratif peuvent l'utiliser gratuitement, y compris à des fins commerciales. Les entreprises de plus de 4 personnes doivent acheter une licence d'entreprise (https://www.remotion.pro/license).
Flux de travail
1. Préparation des entrées
- Séquences d'enregistrement : un mp4 1920×1080 par phrase, placé dans
public/clips/<id>.mp4. - Script : chaque phrase a un texte lu
say(en caractères chinois) et un texte de sous-titresub. - Fichier factuel : copié depuis
templates/facts_template.md. Les faits et sources déjà connus sont renseignés ; ceux manquants sont recherchés à l'étape 4. - Optionnel : images réelles ou générées par IA (
public/broll/), photos (public/photos/), musique (public/music/), nouvelles icônes (public/icons/).
2. Création du projet
<skill>/scripts/new_project.sh <répertoire_du_projet> # Ajoutez --demo pour générer 4 fausses séquences d'enregistrement et un storyboard de démonstration pour un test de fumée
Ensuite, écrivez timeline.json. Transcrivez chaque séquence d'enregistrement, définissez tin/tout, supprimez le silence au début et à la fin ; les erreurs de lecture au milieu sont indiquées dans cuts. Modifiez brand et music dans project.json.
3. Planification des scènes (d'abord un tableau, puis le code)
Après avoir lu style-bible.md et research.md, créez un tableau : nom de la scène | quelles phrases elle couvre | type de mise en page | fond sombre ou blanc | mode d'incrustation | informations nécessaires. Vérifiez les 5 points suivants :
- Une scène couvre 2 à 8 phrases, pas une page par phrase.
- Chaque scène doit indiquer "le sujet est recadré" ou "le sujet occupe plus de 60 % de l'écran" (R1).
- Entre 2 à 3 scènes à fond sombre, il doit y avoir 1 scène à fond blanc (R2).
- Les citations originales utilisent
docpage, et la citation est une citation textuelle réelle. - Les accroches d'ouverture, les phrases de point de vue, les tournants et la conclusion sont laissés en plein écran sans recouvrir l'image d'explication.
4. Recherche d'informations
Pour chaque entrée de la colonne "informations nécessaires" du tableau des scènes, effectuez les recherches comme décrit dans research.md. Chaque résultat est inscrit dans le fichier factuel avec un numéro, la citation originale, le lien source et la date. Les photos sont recherchées et téléchargées via scripts/commons_photo.py.
Après les recherches, revenez modifier le tableau : si aucune citation textuelle n'est trouvée, n'utilisez pas docpage ; si les données à la même source sont incomplètes, n'utilisez pas paper. Si les chiffres du script ne correspondent pas au fichier factuel, modifiez d'abord le script, puis générez ou remontez la séquence d'enregistrement.
5. Rédaction du storyboard
Copiez le modèle à partir de templates/scenes_example.py. Chaque scène doit :
- Aligner l'entrée des éléments sur le mot-clé :
S.k('mot', -0.15). - L'élément courant est en surbrillance, les autres sont assombris (
focus/hl/lit). La caméra suit l'élément courant (sc.cam/look). - Utilisez
KF.append((étiquette, instant))pour enregistrer au moins 1 image de visionnage.
Exécutez python3 story_core.py timeline.json scenes.py, vérifiez que gaps/overlaps [].
6. Visionnage des images clés (au moins 2 séries)
python3 -c "import json;print(' '.join(str(f) for _,f in json.load(open('keyframes.json'))))" | xargs node render.mjs stills stills/k1
python3 <skill>/scripts/sheet.py stills/k1 keyframes.json 6
Examinez chaque assemblage d'images, modifiez selon la liste de contrôle ci-dessous, puis ré-rendez les images modifiées. Si vous disposez de la vidéo originale, capturez des images de même type et comparez-les côte à côte.
7. Montage complet, mixage, synthèse et inspection qualité
<skill>/scripts/render_chunks.sh video.mp4
python3 <skill>/scripts/mix_audio.py timeline.json mix_raw.wav
<skill>/scripts/finalize.sh video.mp4 mix_raw.wav final.mp4
python3 <skill>/scripts/audit.py video.mp4 72 # Comparaison image par image entre la vidéo et les images fixes ; flagged doit être 0
Version mobile : ffmpeg -i final.mp4 -c:v libx264 -crf 23 -preset medium -pix_fmt yuv420p -c:a aac -b:a 128k -movflags +faststart final_phone.mp4.
Liste de contrôle du visionnage
Chaque image clé doit vérifier :
- Le sujet est suffisamment grand ou recadré par le bord. Pas de grandes zones vides autour.
- L'élément en cours de discussion est le plus lumineux, la caméra est à proximité.
- Au maximum 2 étiquettes par image.
- Rien n'est masqué par les sous-titres (coordonnées y 905–960), l'incrustation, le logo ou les annotations IA.
- Pas de caractères manquants (glypes), pas de mots coupés en deux lignes verticales, pas de texte débordant des cartes.
- Les chiffres, unités et citations originales correspondent au fichier factuel, la ligne de source existe, les photos CC BY sont créditées.
- Les scènes à fond blanc et à fond sombre alternent.
Pièges connus
- Lorsque le mot-clé est en début de phrase,
S.k(mot, -0.3)peut être antérieur au début de la séquence. Utilisezmax(S.t0, …)pour le couper. - La largeur des colonnes de jetons de
formula6est égale àiw.iwdoit être ≥ nombre de caractères ×fs. - Coordonnées à l'écran : x écran = (x monde − x caméra) × s + 960.
piprectoccupe x écran 110–560, le sujet est placé à ≥ 600. En modifiant la position de la caméra, la position du sujet à l'écran change également. - L'unité par défaut du résultat
uiest "元/月" ; utilisezu=pour la modifier. - Le bord inférieur de la carte
paperdoit avoir une coordonnée y écran ≤ 900. - Les drapeaux
ent6ne sont queclcndefrjpus. - Si le chemin de l'image n'existe pas, le rendu de cette image échoue (
FAIL ... Error loading image). Vérifiez d'abord avecls public/<chemin>. - Une image fixe normale ne garantit pas une vidéo normale. Après le montage complet, exécutez toujours
audit.py. - Un texte 3D en dégradé de plus de 600 px peut bloquer Chrome. Ne supprimez pas les limites de calques et de flou de
GText.
Limites d'utilisation
- C'est un outil de reproduction de style. Les vidéos finalisées conservent la mention "AI généré · Pas la personne réelle" de
brand.label; ne la supprimez pas. brand.logoest vide par défaut. Utilisez votre propre logo ; ne remplissez pas le logo de "小Lin说" ou d'autres créateurs réels avant publication publique.- N'utilisez pas le portrait ou la voix de créateurs réels pour générer des séquences d'enregistrement avant publication publique.
- Ne publiez pas la vidéo finalisée comme étant l'œuvre de la personne réelle, et ne l'utilisez pas pour induire le public en erreur.
- Toutes les données, citations originales et réglementations affichées à l'écran doivent pouvoir être retracées jusqu'à leur source.