Communitygithub.com

portfolio-reel

Cria um vídeo de apresentação curto (~30 segundos) para criadores, freelancers ou desenvolvedores, em estilo motion design fixo e amigável (modelo "skill 2").

O que é portfolio-reel?

Esta skill gera um vídeo de portfólio de aproximadamente 30 segundos em 1080p60 MP4, com um estilo visual consistente e amigável, baseado no modelo "skill 2". Ela é ideal para criadores, freelancers, desenvolvedores e qualquer pessoa que precise de um vídeo de apresentação ou "me contrate". A skill funciona gerando cada quadro em código (usando headless Chrome), sem usar filmagens de estoque ou serviços de IA. O usuário fornece um avatar, clipes de trabalho, textos e estatísticas em um arquivo de configuração (`promo.json`), e a skill produz o vídeo completo com animações, transições, efeitos visuais e som. Suporta duas interfaces: "classic" (o modelo de template) e "app" (com elementos de interface modernos como barra de pesquisa, dashboard, carrossel e chat). Oferece 5 estilos de cores e 10 efeitos visuais, além de suporte para os idiomas inglês e khmer. O processo é totalmente automatizado, desde a pré-visualização até a renderização final, com normalização de áudio para -14 LUFS.

Funciona com~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/chydevit/Skill-create-videos/tree/HEAD/plugins/video-skills/skills/portfolio-reel

Perguntar na sua IA favorita

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

Documentação

Portfolio reel (modelo: "skill 2")

Esta skill gera um vídeo de introdução de ~30 segundos a partir de um único arquivo de configuração, promo.json. Uma cena de canvas desenha cada quadro em um Chrome headless e reproduz os clipes do usuário dentro dos cartões. Não há filmagens de estoque, vídeo gerado por IA nem serviço de template. A estrutura copia o ritmo do vídeo de referência skill2.MP4 (um vídeo de introdução de criador do TikTok). Apenas as técnicas são copiadas, nunca suas filmagens, palavras, nomes, handles ou marcas d'água.

Tempo (3 seções)Cena
0-2.3 sGradiente mostarda, dois grandes círculos suaves deslizam; a hook[0] digita palavra por palavra, então a hook[1] aparece grande e em negrito
2.3-2.9 sUm círculo branco varre de baixo para cima; o avatar aparece como um pequeno disco amarelo
2.9-6.4 sHerói do perfil em branco: o avatar cresce em um círculo grande (com um anel amarelo ou um duotono amarelo), então a pílula badge com uma estrela, hello palavra por palavra, roles separadas por barras finas e uma pílula button preta com ↑ em um círculo branco. A seta dispara para cima e a página rola
6.4-20.5 sUma página por seção (4.6 s cada) em cinza claro com sombras suaves de luz de janela: um título gradiente, então 1-3 cartões arredondados seguindo a rolagem e flutuando. Os vídeos são reproduzidos, as imagens ampliam lentamente. Cartões de retrato ficam altos, cartões de paisagem ficam largos, linhas mistas se alternam
20.5-24.4 sUma luz amarela brota do canto inferior esquerdo de volta ao gradiente; cta[0], depois cta[1], palavra por palavra
24.4-30.3 sUm cartão de perfil preto aparece a partir de um ponto (avatar ou logo, handle, name, até 3 stats de contagem, dois botões). Um cursor clica no primeiro botão, que fica cinza e mostra clicked, então o cartão gira em 3D para o seu back

A duração é de aproximadamente 30 s com 3 seções, mais ou menos 4.6 s por seção, e um pouco mais longo com textos longos.

Duas interfaces: "ui": "classic" (padrão) ou "app"

app mantém a mesma linha do tempo e textos, mas cada cena é uma tela de aplicativo moderna em um gradiente de malha em movimento:

TempoCena app
hookUma barra de pesquisa de vidro digita hook[0] hook[1]; um menu suspenso de resultados lista a pessoa (avatar, nome, funções) e as duas primeiras seções; o cursor clica na pessoa
heroO resultado clicado cresce em um dashboard bento de blocos de vidro: um bloco de foto alto (nome e handle), o bloco de saudação (badge, hello com o marcador, chips de função), um bloco de estatísticas contando profile.stats, um bloco button que o cursor clica e um bloco listando as seções
sectionsUm carrossel horizontal, um slide por seção: um grande número, o título, "n trabalhos", uma barra de progresso no topo. Os trabalhos são exibidos em mockups de dispositivos: clipes de paisagem em uma janela do navegador (luzes de tráfego, barra de endereço site/titulo-da-secao), clipes de retrato em um telefone, em cascata no lado direito
ctaUma tela de bate-papo: pontos de digitação, então cta[0] e cta[1] chegam como balões de mensagem da pessoa (o último na cor de destaque)
cardUm cartão de perfil com um banner de capa gradiente, avatar sobreposto, handle, nome, estatísticas de contagem e dois botões em pílula; o cursor clica em Seguir (confete), então ele vira para um QR code de profile.qr / profile.back (feito com qrencode quando instalado), com o endereço abaixo

site (opcional) define o endereço mostrado nos mockups do navegador, por padrão profile.back. Todos os estilos e efeitos funcionam em ambas as interfaces (no app, orbit e ticker não são usados).

Estilos e efeitos

"style" escolhe um tema de cores. Estilos escuros obtêm páginas escuras com uma grade sutil e cartões brilhantes em vez de sombras de janela.

EstiloAparência
mustard (padrão)O modelo: gradiente amarelo-mostarda, herói branco, páginas cinza claro, pílula preta, botões azuis
midnightÍndigo a preto, ciano e violeta neon, páginas escuras, cartões brilhantes
sunsetPêssego a rosa, páginas branco quente, títulos e botões coral
amberDourado em quase preto (um visual de desenvolvedor ou portfólio), páginas escuras, pílula e botões âmbar
mintMenta a verde-azulado, páginas brancas, títulos verdes

"colors" substitui qualquer cor única do estilo.

Todos os efeitos estão ativados por padrão. Desligue um com "effects": {"ticker": false}, ou todos com "effects": false para o visual de modelo simples:

EfeitoO que faz
bokehPartículas de luz suaves flutuam nas cenas de gradiente
shineUm varredura de luz sobre a pergunta grande, o botão e o cartão de perfil, além de anéis de eco na varredura circular e um anel de pulso no botão
markerUm marcador desliza sob o nome (text.highlight escolhe as palavras, ou tudo após a segunda palavra)
orbitUm anel tracejado com três pontos gira ao redor do avatar
blurDesfoque de movimento vertical enquanto a página rola
labels"01 / 03" acima de cada título de seção e um sublinhado que é desenhado
glareUm brilho diagonal cruza cada cartão de trabalho após ele pousar
tickerGrandes tags contornadas rolam atrás das linhas de encerramento (text.tags, ou senão as funções e títulos das seções)
confettiUma explosão de confete nas cores do estilo quando o botão é clicado
grainGrão de filme e uma vinheta suave sobre tudo

Para permitir que o usuário escolha, renderize os mesmos 4 momentos em cada estilo (um "painel de estilos") antes da renderização completa. Use render.mjs --times em cópias de promo.json que diferem apenas em style.

Requisitos: ffmpeg, Node 22+, Google Chrome ou Chromium (CHROME_PATH), e um Python com numpy e scipy (PROMO_PY; promo.sh encontra um automaticamente).

Fluxo de trabalho

1. Reunir o que o vídeo precisa

  • Avatar: uma foto de retrato, rosto e ombros. Dê crop: [x, y, size] (pixels) para que o rosto fique no círculo e verifique a pré-visualização. Com um fundo movimentado ou claro, "avatarStyle": "duotone" cria uma figura escura sobre amarelo, como no modelo.
  • Seções (1-4): um título curto cada (2-4 palavras) e 1-3 clipes: vídeos ({"file", "at"}, 5.5 s de at são reproduzidos no cartão) ou imagens. Use o melhor trabalho do usuário e misture retrato e paisagem para variedade.
  • Textos: mantenha-os curtos.
    • hook: uma linha pequena e uma pergunta grande de 1-2 palavras.
    • badge: um slogan de até cerca de 50 caracteres.
    • hello: "Olá, eu sou …".
    • roles: 2-4 funções curtas.
    • button: o rótulo do botão.
    • cta: duas linhas de encerramento.
  • Cartão de perfil: handle, name, até 3 stats, buttons, clicked e back. Use apenas números reais (do usuário, do site ou perfil dele). Um valor string (como "2023") é exibido como está, sem contagem.
  • Idioma: para khmer, defina "lang": "km" e escreva em khmer natural. Kantumruy Pro está incluído.
  • Opcional: style, effects, logo (dentro do círculo do cartão), colors, text.highlight, text.tags, music (+ musicStart), sfxDir.

2. Escrever o projeto

Crie uma pasta de projeto e copie examples/creator-reel.json para dentro dela como promo.json, então edite-o. Cada chave está descrita em references/config.md. Os caminhos são relativos à pasta do projeto.

3. Pré-visualização (cerca de 10 s)

<skill>/scripts/promo.sh <project>/promo.json --preview

Isso corta os clipes e renderiza cerca de 13 imagens estáticas em out/<name>-preview.png. Leia-o e verifique:

  • o corte do avatar;
  • se nenhuma linha está comprimida (textos longos encolhem);
  • se os cartões de cada seção mostram bons quadros: altere at;
  • os números do cartão de perfil.

4. Renderizar (cerca de 2 minutos; execute em segundo plano)

<skill>/scripts/promo.sh <project>/promo.json --jobs 4

As etapas são executadas nesta ordem: assets, plan, render, mix, encode. --from mix remixa o som sem renderizar os quadros novamente.

Saída: out/<name>-1080p60.mp4 e out/<name>-contact.png.

5. Verificar antes de entregar

  • Leia a folha de contato.
  • ffprobe deve mostrar a duração que build/cues.json fornece. A mixagem é normalizada para -14 LUFS / -1 dBTP.
  • Você não pode ouvir o resultado, então informe ao usuário o que você verificou e peça para ele ouvir.

Ajuste

  • Tempo: plan() em scripts/scene.mjs. SEC é a duração de uma seção e SCROLL a duração de uma rolagem de página. As cues em buildCues() seguem automaticamente.
  • Aparência:
    • Os temas são STYLES e os efeitos são EFFECTS em scene.mjs; as cores também podem vir de colors.
    • O layout do cartão é layout().
    • As sombras da janela são buildShade().
    • O giro é drawFlip(), tiras com perspectiva.
  • Som: SFX em scripts/audio.py lista os nomes de arquivos tentados em sfxDir. make_bed() é a batida lo-fi.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

brand-loop

Make a seamless looping background video of glossy 3D liquid blobs in a brand's colours. Two colour families float slowly in zero gravity, each merging and pinching off like mercury, on a soft off-white studio backdrop with a warm gradient, faint ripple rings, soft drop shadows and shallow depth of field. It renders in Blender EEVEE at 4K 60 fps as H.264, HEVC 10-bit and 1080p, and the last frame flows into the first. Use it whenever the user wants a looping background, brand backdrop, abstract 3D or liquid loop, motion background for a website, stream, event screen or presentation, a "seamless loop", or a background for their logo or text, or types /brand-loop.

brand-promo

Make a ~50-second dark, kinetic studio showreel / promo video from a brand's own videos, its logo animation and a few lines of text. It has a typed intro, a ring of 3D cards, a glitchy title drop, and 3-5 spotlights (each work on a tilted card or a phone, playing its own sound). Then "Your story… next.", a 3D rush of clips, and the liquid logo reveal with the name, chips and website. It comes with an original synthesised score, narration (VoxCPM2, English or Khmer) and sound effects, as a 1080p60 MP4. Use it whenever the user wants a showreel, studio reel, portfolio video, agency or brand promo, "demo video" of their work, a promo like a template video, or a Khmer version of one, or types /brand-promo, even if they only hand over a few videos and a logo.

generate-logo

Turn any logo image (PNG, JPG, WebP or SVG) into finished 5-second animated logo reveals in five styles (liquid, neon, bounce, lens, rise). Each comes as a 1080p60 MP4 with synthesised sound effects, a transparent WebM (optional ProRes 4444 .mov) for video editors, and a keyframe sheet. It can add a two-tone wordmark, render square or vertical versions for social media, and build a bespoke style for a particular logo. Use it whenever the user wants a logo animation, animated logo, logo reveal, intro, outro or sting, motion logo, a brand intro for a video, or "make my logo move", or types /generate-logo, even if they only attach a logo and say "animate this".

saas-promo

Make a kinetic SaaS / startup / product / developer promo video (1080p60 MP4) in one fixed, fast motion-design style: an ~11-second teaser, or a ~50-second version with chapters (one per product or project) cut on the beat of the user's own song. It opens with glyph flashes and purple/lime neon shapes, then types a word with a cursor while a 3D swirl of your screenshots orbits it. Cards slide onto a painted meadow and build a bento wall with words typing inside them, and the camera zooms into a card. A glowing gradient orb then reveals the headline word by word, and a glitch drops into a long-exposure flower on a blue-to-orange sky with flying symbols and "From … / To …". Every frame is drawn in code, with typing, whoosh, riser and impact sound effects and a synthesised ambient bed or your own song (its tempo and drop are measured, so every cut lands on the beat), mixed to -14 LUFS. English or Khmer. Use it whenever the user wants a SaaS promo, product or app teaser, a developer or...

Habilidades Relacionadas