Communitygithub.com

XLBen/archival-film (Archival Film - arquivo cinematográfico)

Crie vídeos de histórias de arquivo (archival story videos), em formato vertical 9:16, em chinês, com cerca de 3 minutos, a partir de material real de domínio público (fotos, gravuras, mapas, selos, documentos, filmes antigos, discos de 78 rpm), com animações processadas por código (Three.js/WebGL/GLSL/GSAP, paralaxe de profundidade, efeitos visuais de impressão em Python), roteiro com design de marketing, narração em IA com voz grave que lê as legendas na tela, módulos de efeitos colagem ou modernos (dot morph, darkroom, kinetic type, investigation board, ink fluid, point cloud…), trilha sonora stock com cortes rítmicos, efeitos sonoros reais densos, mixagem a −14 LUFS, além de uma capa projetada e cópia para Douyin/Xiaohongshu. Use esta habilidade sempre que o usuário quiser um vídeo de história/biografia/história da arte/história de cidade ou qualquer vídeo com material antigo (历史短视频、人物传记、艺术史、城市史、档案视频、纪录短片), uma refilmagem ou revisão de um, ou alterações em seu roteiro, visual, música, narração, som, renderização ou entrega — mesmo que ele não nomeie a habilidade ou as ferramentas.

O que é archival-film (Archival Film - arquivo cinematográfico)?

Esta habilidade (skill) para agentes de IA, projetada para ferramentas como Claude Code, Cursor ou Codex, permite criar vídeos narrativos de arquivo com qualidade cinematográfica, inteiramente gerados por código. O coração do sistema é a capacidade de transformar material histórico de domínio público (fotografias, gravuras, mapas, selos, documentos, filmagens antigas e gravações de áudio) em vídeos verticais (9:16, 1080×1920) de aproximadamente 3 minutos, com cada frame sendo computado via WebGL (em Chrome headless) ou Python, garantindo reprodutibilidade, legendas exatas e verificação de licenciamento de cada fonte. A skill funciona através de um fluxo de trabalho estruturado em 9 etapas, com 4 pontos de verificação com o usuário: briefing, pesquisa de fatos e materiais, roteiro com design de marketing (com gancho nos primeiros 3 segundos e pergunta central), escolha de música, paleta e efeitos visuais (com opções como colagem animada por recortes ou módulos modernos como dot morph, darkroom, kinetic type, investigation board, ink fluid, point cloud), sincronização de narração (voz grave de documentário, 1.1–1.25× da velocidade normal), design denso de som (cada efeito é uma gravação real baixada de arquivos online), mixagem a −14 LUFS, renderização em MP4 com capa e cópia para plataformas sociais chinesas (Douyin, Xiaohongshu). A habilidade prioriza: uso exclusivo de material real de arquivo (sem modelos 3D ou emblemas desenhados); uma história clara para um estranho, mostrando pessoas pequenas versus grandes eventos históricos sem pregação; pensamento de animador (os pedaços se movem, não a câmera — zooms e cortes bruscos são rejeitados); ênfase de cor forte com significado (nunca sépia uniforme); cada cena com um sujeito central para onde o efeito guia o olhar, na palavra que o nomeia; e uma única faixa de fundo stock (CC BY/CC0) para todo o filme, com clima adequado. As referências de estilo, narrativa, sourcing e verificação são mantidas em arquivos markdown no repositório, permitindo que o agente as consulte para decisões consistentes.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/XLBen/video-skill-claude/tree/HEAD

Perguntar na sua IA favorita

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

Documentação

Archival Film (档案影像)

Filmes de história gerados por código, construídos a partir de material de arquivo real. Cada quadro é computado (WebGL em Chrome headless, Python onde couber), para que os resultados sejam reproduzíveis, as legendas sejam exatas e cada fonte tenha sua licença verificada. O usuário direciona o gosto; references/style-canon.md contém tudo o que ele já pediu — leia-o primeiro, pois ele substitui seus padrões.

Padrões (altere apenas se o usuário pedir)

Chinês, vertical 1080×1920, cerca de 3 minutos + créditos após o corte principal. Narração ativada (voz neural Edge, tom documental masculino grave, 1,2× — a faixa do usuário 1,1–1,25×) lendo as legendas. Música: uma faixa de biblioteca stock para todo o filme, créditos incluídos. Entrega = MP4 + capa projetada + cópia para Douyin e Xiaohongshu. Memória: todos os processos de renderização/captura/modelo juntos usam no máximo um quarto da RAM (8 GB → 2 GB). Mais lento é aceitável.

Configuração (uma vez por máquina, depois uma vez por filme)

  • sh scripts/setup.sh → ~/.cache/archival-film/: um ambiente virtual Python 3.11 ($AF/py: numpy, pillow, onnxruntime, edge-tts), o modelo de profundidade, a gravação da máquina de escrever, pacotes node para WebGL. Fica fora das pastas do projeto, portanto limpar um projeto nunca quebra as ferramentas. Fontes: PROJECT=~/.cache/archival-film/assets sh scripts/fetch_fonts.sh classic.
  • sh scripts/new_project.sh <dir> → pasta do projeto com plates/ depth/ music/ sfx/ footage/ out/ prev/ web/, fontes/máquina de escrever/node_modules vinculados, o kit web e um modelo film.py. Execute scripts como PROJECT=<dir> FILM=film $AF/py <skill>/scripts/<script>.py ….

Modo de teste rápido

Quando o usuário pedir um teste curto ("随便做个10s试试", uma amostra, um teste da habilidade), pule os quatro pontos de verificação, mantenha todo o resto (material real, fatos, narração, som, visual) e diga na entrega quais escolhas você fez em nome dele. Um exemplo de 10 s funcional está em templates/film_collage_example.py (+ templates/cuts_example.json).

Fluxo de trabalho — com os quatro pontos de verificação do usuário

  1. Briefing — tópico, duração, restrições. Para uma refilmagem, liste tudo o que as versões anteriores usaram e evite tudo (references/narrative.md § Remakes).
  2. Fatos e material — lista de fatos com fontes; encontre e baixe material com licenças (references/sourcing.md, scripts/cands.py, scripts/fetch_commons.py); filmagens e restauração se útil (references/enhancement.md); mapas de profundidade (scripts/depth.py); contatos com marcas de grade.
  3. Roteiro — projete-o como um marketeiro para um estranho (references/narrative.md): premissa com uma contradição nos primeiros 3 s, uma pergunta em aberto paga no final, âncoras para nomes/lugares desconhecidos, um substituto para o espectador, escalada a cada 20–30 s, legendas escritas para serem lidas em voz alta dentro do orçamento de fala (references/narration.md). → Ponto de verificação 1: roteiro. Mostre o texto completo da legenda, o gancho, a pergunta em aberto e a promessa planejada do título/capa. Aguarde aprovação antes de qualquer trabalho com imagens.
  4. Música, paleta, visual, voz — proponha 2–3 visuais de references/style-menu.md adequados ao assunto, uma paleta ousada e simples (1–2 cores fortes por época + preto + papel; mostre-a em um still bruto real, não apenas como amostras), uma faixa de biblioteca stock para todo o filme, encontrada online (Kevin MacLeod / FMA / CC0 — references/audio.md; clássica apenas se o usuário quiser música de época; nunca mude a música entre seções — "全局用一个bgm") com um clima/direção que se encaixe (meça com scripts/beats.py; animado para negócios/tecnologia), e audições de voz (scripts/narrate.py). → Ponto de verificação 2: música + paleta (+ visual e voz).
  5. Temporização — encaixe a faixa única com Kit.music_bed() (→ scripts/music_edit.py); gere a narração (scripts/narrate.py), corrija todos os excessos que ela relatar, sincronize a digitação com a voz (apply_narration); coloque cortes e acentos nos ataques da música.
  6. Imagens — por padrão uma animação de colagem (剪报画), leia references/collage.md: corte o material em pedaços com scripts/cutout.py (figuras recortadas com tesoura, recortes rasgados, manchetes reais, regiões de mapa), anime os pedaços — nunca a câmera — como COLLAGE em film.py (keyframes, looks de impressão foto/meio-tom/marca/preenchimento/tinta/cor, rasgo, crescer, sacudir, balançar), exporte com scripts/export_web.py, renderize com web/collage.js. Uma cor de destaque com significado, nunca um sépia uniforme. Adicione outras técnicas onde couberem (references/style-menu.md paleta; fragmentação e montagem de pontos em web/example_opening.js, looks de impressão Python em references/looks.md). O movimento de câmera contínua web/journey.js foi rejeitado como padrão (references/webgl.md). Colorização apenas como efeito P&B→cor, com créditos. Escreva com scripts/collage_kit.py (legendas da voz, pedaços pousando nos acentos, empilhamento por chegada). Ou faça o filme a partir dos módulos de efeito modernos (web/fx.js, references/fx.md): dot morph, wirephoto, darkroom, kinetic type, investigation board, footage montage + woodcut rotoscope, ink fluid, pixel sort, point cloud, character portrait, mais hold e marcas de guia SVG. Primeiro escreva a lista de planos — por linha: o único sujeito a ser visto, onde, a palavra de destaque (Kit.W), como o efeito guia o olhar para lá, e por que esse efeito significa a linha; sem significado → um hold. O efeito atinge o pico na palavra de destaque e resolve em um sujeito limpo ("特效要有明确的视觉引导,而不是堆砌素材"). Escreva com scripts/fx_plan.py → Kit.fx_cuts(), verifique cada quadro com scripts/fx_sheet.py (o see é a primeira coisa que você vê?) antes de renderizar. Ofereça no ponto de verificação 2 ao lado da colagem para assuntos modernos / empresariais / tecnológicos. → Ponto de verificação 3: stills / amostra. Envie uma folha de contato de stills-chave e uma amostra de 10–20 s com som — ou o filme inteiro como um corte bruto (scripts/rough.py, ~150 MB) quando a memória estiver apertada ou o usuário quiser ver tudo.
  7. Som — cada efeito é uma gravação real encontrada online com scripts/fetch_sfx.py (Commons, Internet Archive 78s e gravações de campo, Freesound com uma chave; licença registrada, cortada automaticamente em sfx/bank.json). Design denso: Kit.sfx_events() coloca um tapa/baque/rasgo em cada pouso e rasgo (Kit.fx_sfx_events() faz o mesmo para filmes de efeito: whoosh, radiofax, pour/slosh, projetor, glitch, vento, teclas); adicione ambiência por seção e sons diegéticos; vozes de época de discos de domínio público (references/audio.md, scripts/sfx_build.py). → Ponto de verificação 4: lista de som. Envie a lista de efeitos e vozes de época com tempos e fontes antes da renderização final.
  8. Renderizar e mixar — scripts/run_chunks.py (orçamento de memória, blocos quebrados são reexecutados), concatene, depois scripts/mixdown.py --voice … (voz com duck, −14 LUFS / −1 dBTP).
  9. Entregar — verifique (references/verification.md), depois envie o MP4, a capa e a cópia da plataforma (references/platform-copy.md); uma prévia em 720p com menos de 30 MB se o usuário estiver acompanhando de um celular.

O que mais importa para este usuário (forma curta; razões em style-canon.md)

  • Apenas material de arquivo real; efeitos de código agem sobre ele. Nenhum objeto modelado, nenhum emblema autodesenhado.
  • Uma história clara para um estranho; pessoas pequenas vs. o grande evento mostrado por fatos, nunca pregado; sem slogans de IA; palavras tipográficas grandes vêm das fontes.
  • Pensamento de animador: as peças se movem, não a câmera (vôos eram "烂完了"); corte o material como uma colagem de jornal; sem zoom-e-depois-corte; sem flashes de cor em tela cheia como transições.
  • Ênfase de cor forte com significado — nunca um sépia/amarelo uniforme sobre tudo; use os efeitos para valer.
  • Cada quadro tem um sujeito para onde o efeito guia o olhar, na palavra que o nomeia — efeitos como o verbo da linha, nunca por si mesmos ou para empilhar material; holds simples entre eles. SVG apenas para marcas de guia, nunca para desenhar figuras.
  • Efeitos ricos e impressionantes — mas não extravagantes, ornamentos refinados ("太精致" foi rejeitado). Vanguarda sobre decorativo.
  • Uma faixa de fundo stock genérica para todo o filme (CC BY / CC0, encontrada online) cujo clima se encaixa — clássico soou "怪"; narração 1,1–1,25×; sem "ding"; máquina de escrever por caractere digitado, sem campainha; som real denso.
  • Legendas completas e mantidas até a próxima linha; paleta ousada e simples; peças posteriores por cima.
  • Legendas em blocos sólidos, legíveis em um celular; uma cor de tema forte; créditos após o corte principal.
  • Refilmagens não compartilham nada com versões anteriores (scripts/overlap_check.py).

Arquivos

  • scripts/ — imagem: render_print.py anim.py futur.py captions.py cjkwrap.py base.py cfg.py; material: cands.py fetch_commons.py fetch_ia.py depth.py cutout.py fetch_fonts.sh; filmes de colagem/efeito: collage_kit.py fx_plan.py fx_sheet.py rough.py; áudio: fetch_sfx.py beats.py onsets.py music_edit.py narrate.py sfx_build.py mixdown.py; ponte WebGL: export_web.py; renderização: run_chunks.py; verificações: contact.py grid.py overlap_check.py; ambiente: setup.sh new_project.sh.
  • web/ — index.html (carrega ?scene=NAME), fx.js + fx/*.js (módulos de efeito modernos, fx/hold.js imagem simples, fx/guide.js marcas de guia SVG), collage.js (a cena de animação de recorte padrão, dirigida por out/timeline.json), captions.js (blocos de legenda compartilhados), journey.js (cena de câmera contínua, rejeitada como padrão), example_opening.js (cena mais antiga construída à mão: fragmentação, campo de pontos — reutilize seus efeitos, não seus cortes/flashes), capture.mjs (captura determinística), package.json.
  • templates/film_template.py — o formato do módulo do filme (planos, legendas, especificação de impressão, eventos de som, créditos); templates/film_collage_example.py + cuts_example.json — um filme de colagem completo de 10 s (San Francisco 1906); templates/film_journey_example.py — a versão mais antiga de jornada dele.
  • references/ — style-canon, narrative, narration, style-menu, collage, looks, webgl, audio, sourcing, enhancement, platform-copy, verification, known-gaps (itens em aberto para as próximas rodadas de patches).

Habilidades Relacionadas