Communitygithub.com

小Lin说讲解包装

Transforme des séquences de présentation en une vidéo explicative dans le style de Xiao Lin Shuo, avec mise en page, infographies, sous-titres, transitions et mixage audio.

Qu'est-ce que 小Lin说讲解包装 ?

Ce skill permet de transformer des séquences d'enregistrement (A-roll) accompagnées d'un script en une vidéo explicative complète, dans le style caractéristique de la créatrice chinoise Xiaolin Shuo (小Lin说). Il s'appuie sur une bibliothèque de composants graphiques (Remotion) prêts à l'emploi : affichage de chiffres géants, murs de cartes, diagrammes sur fond blanc, pages entières surlignées, cartes physiques, grandes formules, calculatrices sur fond blanc, titres de chapitre, incrustation d'image dans l'image (PIP) et transitions. La partie sonore intègre le mixage de la voix, de la musique et des effets sonores.Vous trouverez également des directives précises pour la recherche d'informations, un format de fichier source structuré (avec hiérarchie des sources), un modèle de fiche factuelle, ainsi qu'un script de téléchargement de photos sous licence libre Wikimedia Commons. Le skill gère le découpage en séquences (storyboard) avec un timing automatique basé sur les mots-clés du script, le rendu par blocs, le mixage audio final et une inspection image par image (audit). Il est compatible avec Claude Code, Codex et Cursor, mais nécessite Node.js, ffmpeg et Python. Bien que testé sur macOS (Apple Silicon), il fonctionne sur d'autres systèmes avec rendu logiciel (swangle) en modifiant la variable d'environnement. Le style visuel est défini par un fichier de référence (style-bible.md) qui verrouille les couleurs, les polices et les règles de mise en page, garantissant une reproduction fidèle du langage graphique de Xiaolin Shuo.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/howoneai/xiaolin-explainer-packaging/tree/main/xiaolin-explainer-packaging

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

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 : formats timeline.json et project.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 install et 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'environnement REMOTION_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 script new_project.sh cherche dans $YOUSHE_TTF et 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 dans public/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-titre sub.
  • 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 :

  1. Le sujet est suffisamment grand ou recadré par le bord. Pas de grandes zones vides autour.
  2. L'élément en cours de discussion est le plus lumineux, la caméra est à proximité.
  3. Au maximum 2 étiquettes par image.
  4. Rien n'est masqué par les sous-titres (coordonnées y 905–960), l'incrustation, le logo ou les annotations IA.
  5. Pas de caractères manquants (glypes), pas de mots coupés en deux lignes verticales, pas de texte débordant des cartes.
  6. Les chiffres, unités et citations originales correspondent au fichier factuel, la ligne de source existe, les photos CC BY sont créditées.
  7. 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. Utilisez max(S.t0, …) pour le couper.
  • La largeur des colonnes de jetons de formula6 est égale à iw. iw doit être ≥ nombre de caractères × fs.
  • Coordonnées à l'écran : x écran = (x monde − x caméra) × s + 960. piprect occupe 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 ui est "元/月" ; utilisez u= pour la modifier.
  • Le bord inférieur de la carte paper doit avoir une coordonnée y écran ≤ 900.
  • Les drapeaux ent6 ne sont que cl cn de fr jp us.
  • Si le chemin de l'image n'existe pas, le rendu de cette image échoue (FAIL ... Error loading image). Vérifiez d'abord avec ls 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.logo est 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.

Skills associés