Communitygithub.com

小Lin说讲解包装

以「小Lin说」风格为财经、科普讲解视频提供包装。包含 Remotion 版式组件库、资料检索规范、分镜 API、分块渲染、混音与逐帧质检。

O que é 小Lin说讲解包装?

Este skill transforma gravações de pessoas falando (A-roll) em vídeos explicativos no estilo do canal

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Empacotamento para Explicação ao Estilo XiaoLin

Empacotar um conjunto de clipes de apresentação com fala (A-roll) e falas em um vídeo explicativo no estilo XiaoLin. As imagens de apresentação são geradas ou filmadas por outras ferramentas. Esta skill é responsável por consultar os materiais necessários para o empacotamento, bem como pelas imagens explicativas, legendas, transições e áudio.

Se houver um design-aesthetic-standard no ambiente, os julgamentos criativos visuais e sonoros devem segui-lo. Se houver video-generation, a geração e edição dos clipes de apresentação seguem essa skill.

Documentos de Referência (leitura conforme necessário)

  • references/style-bible.md: Sua linguagem gráfica, 6 regras rígidas, paleta de cores, fontes, picture-in-picture, estatísticas de transição, níveis de áudio. Deve ser lido antes de planejar as cenas.
  • references/research.md: Que materiais consultar para cada formato, classificação das fontes, onde pesquisar, direitos de imagem. Leia ao planejar as cenas.
  • references/layouts.md: Parâmetros de cada componente de formato, exemplos de chamada e armadilhas. Leia ao escrever o storyboard.
  • references/storyboard-api.md: Formato de timeline.json e project.json, API de storyboard, temporização de palavras-chave, comandos de revisão e renderização. Leia ao configurar o projeto pela primeira vez.

Ambiente

  • Node ≥ 18, ffmpeg, python3 (com numpy e Pillow). npm install e a primeira renderização precisam de internet (Remotion fará o download do Chrome).
  • Testado apenas em macOS (Apple Silicon). Outros sistemas usam renderização por software swangle por padrão, pode ser alterado pela variável de ambiente REMOTION_GL.
  • Fontes: O modelo inclui 6 fontes SIL OFL, licenças em templates/engine/public/fonts/LICENSES.txt. A fonte YouShe.ttf (优设标题黑) pode não estar no pacote. new_project.sh procura em $YOUSHE_TTF e diretórios de fontes comuns; se não encontrar, solicita ao usuário que baixe de https://www.uisdc.com/uisdc-first-free-font e salve como public/fonts/YouShe.ttf. Sem essa fonte, títulos e legendas revertem para o peso mais grosso (900) da fonte Noto Sans CJK SC (思源黑体), sem inclinação, e o estilo fica visivelmente mais fraco.
  • Licença Remotion: Indivíduos, empresas com até 3 pessoas e organizações sem fins lucrativos podem usar gratuitamente, incluindo uso comercial. Empresas com 4 ou mais pessoas precisam adquirir uma licença corporativa (https://www.remotion.pro/license).

Fluxo de Trabalho

1. Preparar Entrada

  • Clipes de apresentação: Um mp4 1920×1080 por frase, colocar em public/clips/<id>.mp4.
  • Falas: Cada frase tem um texto lido say (escrita em caracteres chineses) e texto de legenda sub.
  • Arquivo de fatos: Copiar de templates/facts_template.md. Escreva os fatos e fontes já existentes, os que faltam serão pesquisados na etapa 4.
  • Opcional: filmagens reais ou imagens AI (public/broll/), fotos (public/photos/), música (public/music/), novos ícones (public/icons/).

2. Criar Projeto

<skill>/scripts/new_project.sh <diretório_do_projeto>          # Adicionar --demo gera 4 falas falsas e storyboard de exemplo para teste de fumaça

Depois escreva timeline.json. Transcreva cada clipe de vídeo de apresentação, determine tin/tout, corte o silêncio inicial e final; os erros de fala no meio escreva em cuts. Modifique brand e music em project.json.

3. Planejar Cenas (primeiro escrever tabela, depois código)

Após ler style-bible.md e research.md, faça uma tabela: Nome da cena | Quais frases cobre | Formato | Fundo escuro ou papel branco | Modo picture-in-picture | Materiais necessários. Verifique os seguintes 5 pontos:

  • Uma cena abrange 2–8 frases, não uma página por frase.
  • Cada cena pode indicar "sujeito cortado" ou "sujeito ocupa mais de 60% da tela" (R1).
  • Entre cada 2–3 cenas de fundo escuro, há 1 cena de fundo claro (R2).
  • Onde há citação textual, use docpage, e a citação é uma transcrição real palavra por palavra.
  • Deixe o gancho de abertura, as frases de opinião, as frases de virada e a conclusão para a apresentação em tela cheia, não cubra tudo com imagens explicativas.

4. Pesquisar Materiais

Pesquise item por item conforme a coluna "Materiais necessários" da tabela de cenas, métodos em research.md. Escreva cada resultado no arquivo de fatos, com número, texto original, link da fonte e data. Fotos use scripts/commons_photo.py para pesquisar e baixar.

Após pesquisar, revise a tabela de cenas: se não encontrar o texto original palavra por palavra, não use docpage; se não conseguir dados com a mesma metodologia, não use paper. Se números nas falas e no arquivo de fatos forem inconsistentes, corrija as falas primeiro, depois gere ou recorte novamente os clipes de apresentação.

5. Escrever Storyboard

Copie os métodos de escrita de templates/scenes_example.py. Cada cena deve:

  • Alinhar a entrada do elemento com a palavra-chave: S.k('palavra-chave', -0.15).
  • Iluminar o item atual, escurecer os outros (focus / hl / lit). A câmera segue o item atual (sc.cam / look).
  • Registrar pelo menos 1 quadro de revisão usando KF.append((rótulo, momento)).

Execute python3 story_core.py timeline.json scenes.py, confirme gaps/overlaps [].

6. Revisão de Quadros-Chave (mínimo 2 rodadas)

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

Examine cada mosaico, modifique conforme a lista de verificação de revisão abaixo e re-renderize os quadros alterados. Se houver vídeos originais dela, capture quadros de formato similar e compare lado a lado.

7. Filme Completo, Mixagem, Síntese, Controle de Qualidade

<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        # Comparar vídeo e quadros estáticos quadro a quadro, flagged deve ser 0

Versão para celular: 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.

Lista de Verificação de Revisão

Para cada quadro-chave, verificar:

  1. O sujeito é grande o suficiente ou cortado pela borda. Sem grandes áreas vazias ao redor.
  2. O item que está sendo falado é o mais brilhante, a câmera está perto dele.
  3. No máximo 2 rótulos por quadro.
  4. Nada está obstruído por legendas (tela y 905–960), picture-in-picture, logotipo e marcação AI.
  5. Sem caracteres em caixa (falta glifo), sem palavras quebradas em linhas verticais, sem caracteres que transbordam do cartão.
  6. Números, unidades e texto original estão consistentes com o arquivo de fatos, a linha da fonte existe, fotos CC BY têm atribuição.
  7. Cenas de fundo claro e fundo escuro alternam.

Armadilhas Conhecidas

  • Quando a palavra-chave está no início da frase, S.k(palavra, -0.3) pode ser antes do início do clipe. Use max(S.t0, …) para limitar.
  • A largura da coluna de token do formula6 é igual a iw. iw deve ser ≥ número de caracteres × fs.
  • Tela x = (mundo x − câmera x) × s + 960. piprect ocupa tela x 110–560, coloque o sujeito em ≥ 600. Ao mudar posição da câmera, a posição do sujeito na tela também muda.
  • O resultado de ui tem unidade padrão "元/月", use u= para alterar.
  • O y inferior do cartão paper na tela deve ser ≤ 900.
  • As bandeiras de ent6 são apenas cl cn de fr jp us.
  • Se o caminho da imagem não existir, a renderização desse quadro falha (FAIL ... Error loading image). Primeiro confirme com ls public/<caminho>.
  • Quadro estático normal não significa vídeo normal. Após o filme completo, execute audit.py.
  • Texto gradiente 3D acima de 600px pode travar o Chrome. Não remova o limite de camadas e desfoque do GText.

Limites de Uso

  • Esta é uma ferramenta de recriação de estilo. O produto final deve manter a marcação brand.label de "Gerado por AI · Não é a pessoa real", não remova.
  • brand.logo é vazio por padrão. Preencha com o logotipo do próprio usuário; não preencha com "小Lin说" ou logotipos de outros criadores reais e depois publique publicamente.
  • Não use retratos ou vozes de criadores reais para gerar imagens de apresentação e depois publique publicamente.
  • Não publique o produto final como se fosse obra do criador original, nem o use para enganar o público.
  • Todos os dados, textos originais e políticas exibidos na tela devem ser rastreáveis até a fonte.

Habilidades Relacionadas