Communitygithub.com

Aplicação de Estilo (taste-application)

Gera novos vídeos a partir de um pacote de estilo destilado e os monta em uma peça finalizada — o plano é extraído da referência.

O que é Aplicação de Estilo (taste-application)?

Esta skill implementa a segunda metade do pipeline de estilo: após a destilação (taste-distillation) extrair as medidas de cor e ritmo de uma referência, o *taste-application* gera novos takes contra esse pacote de estilo e os edita em uma peça coesa. Ela suporta plataformas como fal.ai, Blender e DaVinci Resolve, e opera localmente com scripts Python ou em execução remota com credenciais. O fluxo prioriza eficiência econômica — em vez de gerar um clipe por corte (o que geraria 21% de eficiência), a skill agrupa vários cortes em takes únicos de ~5 segundos, atingindo 77% de eficiência e garantindo que cortes consecutivos pareçam contínuos. As regras de corte incluem re-encode (nunca stream-copy), amostragem da distribuição real de durações de tomadas da referência e detecção de limites reais de tomadas ao complementar material de arquivo. A skill também contém ramificações 3D (mint3d) que geram malhas a partir de texto ou imagens, retopologizam e renderizam localmente para reentrar no pipeline de vídeo. A verificação é feita por métricas de distribuição (fundo abaixo de L*10, chroma MAE por zona, contraste, banding, cadência) e não apenas por médias, evitando armadilhas como unidades incorretas no OpenCV. As observações recuperadas da plataforma fal.ai documentam limitações como a ausência de um renderizador 3D para vídeo e a incapacidade de sobreposição via compose, orientando a escolha de endpoints (ex.: `bytedance/seedance-2.5/reference-to-video` para referência→vídeo de alta fidelidade, `fal-ai/kling-video/o3/pro/reference-to-video` como alternativa mais barata).

Funciona com~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/affaan-m/everything-claude-code/tree/main/skills/taste-application

Perguntar na sua IA favorita

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

Documentação

Aplicação de Estilo

A segunda metade do pipeline. taste-distillation mede referências em um pacote de estilo; isto gera contra esse pacote e corta o resultado.

Contrato de Execução e Entrega

A implementação original está aqui em scripts/; nenhum checkout separado de ito-video é necessário. Instale scripts/requirements.txt para processamento local. Instale scripts/requirements-live.txt apenas para execução em provedor. Envios, submissões e downloads ao vivo exigem TASTE_FORGE_ALLOW_LIVE=1 explícito além das credenciais; defina-o apenas para a execução autorizada do usuário. --dry-run permanece livre de credenciais e produz placeholders rotulados. Um timeout ambíguo do provedor não é repetido como um novo trabalho pago. Inspecione a solicitação do provedor antes de decidir se um novo envio é justificado.

Use takes concluídos existentes sem nenhuma chamada de provedor:

python scripts/pipeline.py --genre example --root stylepacks \
  --takes media/take-a.mp4 media/take-b.mp4 --duration 12 --fps 30 \
  --out out/review-v1.mp4

--duration é um alvo de cadência de melhor esforço, não um tempo de execução exato. Tomadas completas podem produzir uma edição mais curta ou mais longa; o montador não duplica clipes nem adiciona preenchimento para atingir o alvo. O manifesto de saída retém a duration real e adiciona duration_contract com os segundos solicitados e reais, shortfall, overrun e a política cadence_target. Diferenças de pelo menos um quadro de saída são avisadas explicitamente. Nenhum modo de duração exata é fornecido; quando um tempo de execução exato é necessário, inspecione o recibo e revise ou rejeite o corte antes da entrega.

O pipeline mantém os arquivos de tomada classificados de cada execução porque o FCPXML editável e o EDL os referenciam. Ele recusa colisões de saída e relata falhas de exportação da linha do tempo. Uma renderização concluída não é um projeto de editor salvo ou aprovação criativa. Preserve os assets de origem e os checkpoints do projeto versionado antes e depois das edições ao vivo; registre o caminho salvo e o digest separadamente do recibo da linha do tempo em memória.

Os gráficos Fal prontos para clonagem e seu compilador de entrada offline estão documentados em workflows/README.md. Compile o brief e a direção de estilo antes do envio; não presuma que um campo de esquema desconectado afeta um prompt de modelo. Valide os campos do endpoint atual com o provedor real antes de uma execução paga.

Para Blender, use o GLB texturizado de origem completo; a retopologia é um derivado com nome separado e nunca substitui essa origem. blender_prop.py suporta --width 1920 --height 1080 --fps 30 --receipt receipt.json explícito e preserva a iluminação de borda e texturas de material derivadas do pacote. Salvar uma cena é diferente de renderizá-la; inspecione o estado do recibo e as imagens empacotadas.

Para sobreposições do Resolve, use taste.resolve.apply_placements com objetos injetados de um alvo versionado explicitamente selecionado. Defina source_end_mode para a convenção verificada naquele host. Não presuma um final de origem inclusivo entre versões do Resolve. O adaptador aloca efeitos sobrepostos acima das faixas preservadas e verifica cada posicionamento imediatamente e novamente após todas as adições. Os inteiros compostos devem corresponder à API instalada; para o host verificado Studio 21, Screen é 5, não o incorreto 22 do builder histórico. O recibo prova apenas o posicionamento em memória. Salve o projeto, verifique seu checkpoint, então inspecione a saída renderizada exata antes de relatar a entrega.

Quando Ativar

  • "faça um vídeo neste estilo" / "aplique o pacote" / "complemente esta filmagem"
  • Montar clipes gerados em algo com ritmo de edição real
  • Criar props 3D a partir de um visual e colocá-los de volta no vídeo
  • Verificar se uma peça finalizada realmente corresponde à sua referência

Divisão de Trabalho

O modelo fornece conteúdo, movimento, enquadramento e estrutura de iluminação. O pacote fornece cor e ritmo. Isso é medido, não preferência estilística — veja taste-distillation para os números. Consequências práticas:

  • O prompt de geração contém linguagem de cor zero. Adicione "Cor: nenhuma. Render neutro. A correção de cor é aplicada depois."
  • Mantenha duas flags separadas: --brief (o que ACONTECE: sujeito, ação, lugar) e --style-steer (como PARECE). Mesclá-las vaza palavras de estilo para a cena ("teal" se torna um objeto teal) e palavras de sujeito para a correção.
  • O modelo responde muito melhor a regras locais e verificáveis do que a globais. "Fundos preto puro e sem luz; sujeitos clareando em direção ao branco" funciona; "contraste extremo" não.

Gere TAKES, Não Tomadas

A leitura óbvia de "combinar a cadência" é uma geração por tomada. É economicamente absurda. Uma referência com média de 0,78 s/tomada contra um endpoint com piso de 4 segundos transforma uma peça de 10s em 12 chamadas, 48 segundos gerados para 10 usados (21% de eficiência) e doze clipes não relacionados costurados no que deveria ser contínuo.

Editores gravam um take mais longo e cortam dentro dele. Agrupar tomadas em takes de ~5s: 3 chamadas, 13 segundos gerados, 77% de eficiência e tomadas consecutivas que realmente pertencem umas às outras porque vieram da mesma geração.

Diga ao modelo qual forma você quer, ou ele renderiza um push travado e lento e seis cortes dentro dele são lidos como uma gagueira:

"Filmado como UM take contínuo sem cortes bruscos dentro dele. Será cortado em 6 pedaços de aproximadamente 0,8 s na edição, então o enquadramento, sujeito e luz devem continuar mudando ao longo de todo — qualquer janela de 0,8 s tem que se sustentar sozinha como sua própria tomada."

Regras de Corte

  • Re-codifique, nunca stream-copy. Stream copy corta apenas em keyframes, que em 0,78 s significam que o comprimento da tomada arredonda cada limite para o GOP mais próximo — destruindo a coisa exata que o pipeline existe para preservar.
  • Ao complementar filmagem existente, use seus próprios limites de tomada. Fatiar um vídeo base em pedaços contíguos e reproduzi-los em ordem apenas remonta o original: todo "corte" cai no meio da tomada e é invisível. Medido, uma montagem de 20 tomadas registrou apenas 12 cortes detectados. Detecte limites reais e pegue todo Nth para que seleções consecutivas sejam garantidamente descontínuas. Isso moveu uma medição de corte de 1,29 s para 0,83 s contra um alvo de 0,78 s.
  • Amostre os comprimentos das tomadas da distribuição da referência, não de sua média, para que o corte herde a variância do ritmo em vez de achatar em clipes uniformes.

Regras de Correção de Cor

  • Medição direta supera um LUT embutido quando você tem o clipe: meça-o, combine sua CDF L*, aplique croma por zona. grade_clip_direct alcançou MAE 1,58 e contraste 34,0 contra 34,7.
  • Âncore, não combine CDF, quando o histograma do clipe é diferente do da referência. Forçar um clipe gerado 68% preto em um histograma de referência movimentado levantou todo o fundo do preto: a preservação do fundo caiu para 26,0% (CDF) versus 69,0% (âncora), enquanto MAE e contraste ambos ainda pareciam excelentes. Padrão para tom ancorado.
  • O tamanho do lote importa. Corrigir 48 quadros de uma vez OOM-matou o processo; 6 é seguro.

Comportamento Recuperado da Plataforma fal

Essas observações e exemplos de endpoint vieram do workflow recuperado. Reveja os metadados atuais do endpoint; eles não são garantias sobre todas as futuras versões do provedor. Os modelos de gráfico incluídos registram as entradas de workflow separadamente verificadas, incluindo controle explícito de áudio gerado.

Elas custam tempo real para descobrir. Verifique-as antes de projetar um gráfico.

LimiteDetalhe
Nenhum renderizador 3Dfal tem image-to-3d, text-to-3d, 3d-to-3d e nada mais. Cada endpoint 3d-to-3d emite outra malha. Não há categoria 3d-to-image/3d-to-video, então um GLB cunhado não pode reentrar em um gráfico de vídeo fal. Renderize localmente, então use fal-ai/ffmpeg-api/images-to-video.
compose não pode sobreporfal-ai/ffmpeg-api/compose rejeita uma segunda faixa com "Múltiplas faixas de vídeo não são suportadas" — e conta uma faixa image como faixa de vídeo. Ele sequencia apenas uma faixa de vídeo. Componha localmente com ffmpeg.
keyframes do compose são em milissegundosNada na resposta diz isso. Uma execução enviada em segundos é aceita e retorna um vídeo 1000x mais curto.
extract-frame oferece apenas primeiro/meio/últimoNenhum timestamp arbitrário. Use os três como três imagens de condicionamento distintas.
Sem loops, sem concatenação de strings no DAGO fan-out por tomada tem que ser autorado nó por nó, ou mantido local.
Kling 3.0 não tem referência-para-vídeoA linha v3 é apenas texto/imagem/controle de movimento; referência-para-vídeo vive na linha o3: fal-ai/kling-video/o3/pro/reference-to-video.
Prefixos não são uniformesbytedance/*, tripo3d/*, meshy/*, minimax/*, openai/* não têm o prefixo fal-ai/. kling-video, veo3.1, flux-*, hunyuan-3d, ffmpeg-api têm.

Escolhas de endpoint

SlotMelhorAlternativa de valor
referência→vídeobytedance/seedance-2.5/reference-to-video (~$0,473/s @720p)fal-ai/kling-video/o3/pro/reference-to-video (~$0,112/s)
imagem→3Dfal-ai/hunyuan-3d/v3.1/pro/image-to-3d ($0,375, até 8 vistas)tripo3d/h3.1/image-to-3d ($0,20)
texto→3Dfal-ai/hunyuan-3d/v3.1/pro/text-to-3dtripo3d/h3.1/text-to-3d
retopologiafal-ai/hunyuan-3d/v3.1/smart-topology ($0,75)tripo3d/tripo/remesh (~75x mais barato)
divisão de partefal-ai/hunyuan-3d/v3.1/part (apenas FBX)tripo3d/tripo/segment
texto→imagemfal-ai/nano-banana-pro ($0,15 fixo)fal-ai/flux-2-pro ($0,03/MP)

Seedance é ~4x o preço do Kling o3 pelos mesmos 5 segundos. Ele ganha isso na fidelidade de múltiplas referências (até 50 referências mistas de imagem/vídeo/áudio) e não ganha isso ao condicionar em uma única imagem estática.

IDs de modelo e preços mudam. Verifique em fal.ai/models antes de prometer qualquer um deles.

O Ramo 3D

python mint3d.py --genre <nome> --from-stills 4 --retopo --render
python mint3d.py --genre <nome> --prompt "um visor de chrome rachado" --render
  • Gere uma placa limpa primeiro; não levante de stills de referência. O requisito de entrada declarado do endpoint é fundo simples, objeto único, objeto >50% do quadro. As bobinas de referência são o oposto disso — colagens, planos gerais, vários sujeitos, gráficos gravados — e elas produzem ruído esculpido. Texto → placa de objeto único → malha custa ~$0,15 extra e é a diferença entre uma malha utilizável e uma descartada.
  • Multi-vista é nomeada por campos de ângulo, não uma lista. input_image_url (frente, obrigatório), depois back_image_url, left_image_url, right_image_url, left_front_image_url, right_front_image_url, top_image_url, bottom_image_url. Não há input_image_urls e nenhum sinalizador multi_view — inventá-los degrada cada cunhagem para mono-visual enquanto parece funcionar. Um rótulo de ângulo errado é pior do que omitir a vista, porque o modelo confia nele.
  • Enderece o GLB por chave, não por posição. A resposta carrega um PNG thumbnail e um bloco model_urls junto com model_glb; pegar a primeira URL funciona apenas até as chaves reordenarem, e um PNG de pré-visualização baixa bem — nada falha até o Blender se recusar a abri-lo.
  • Solicite mapas PBR. Sem eles, a malha ilumina como papelão pintado.
  • Retopologize se alguém for editar ou riggar. Malhas geradas são densas e caóticas.
  • Renderize localmente para fechar o loop. Uma vez que um turntable são quadros, é filmagem, e todo estágio downstream já lida com filmagem — corrija-a, corte-a, exiba-a como um elemento ou carregue-a como uma referência de condicionamento. Use Blender quando um binário estiver no PATH; mantenha um rasterizador de software leve como padrão, porque um contexto GL headless é a coisa mais comum que falta em um contêiner e um renderizador que só funciona em uma estação de trabalho não faz parte de um pipeline.

Verifique, Então Acredite

Cada outro estágio alega um resultado. Verifique-o, e verifique a forma da distribuição, não apenas momentos:

  • background — parcela do quadro abaixo de L*10 vs o valor do pacote. Compare à referência, não ao clipe de origem: uma origem gerada com 68% de preto é mais preta do que qualquer referência em uma banda de 24–55%, então "preservar os pretos da origem" exige a coisa errada e igualmente desculpa uma correção elevada.
  • chroma_mae — erro a*/b* por zona, usando a mediana (correspondendo a como os alvos do pacote foram medidos; uma média aqui compara uma estatística sensível a assimetria a uma robusta e relata uma incompatibilidade de definição como um erro).
  • contrast / black_point / white_point
  • banding — bins de histograma L* vazios entre ocupados. Contar bins vazios totais não funciona: um clipe legitimamente escuro tem bins de realce vazios.
  • cadence — comprimento médio de tomada detectado vs o da referência.

Cuidado com a armadilha de unidades: OpenCV muda a convenção Lab com dtype. Em float32, L* é 0–100 e a*/b* são com sinal; em uint8, L* é 0–255 e a*/b* são desviados +128. Misturá-los relata erros de croma nas centenas.

Cadeia Completa

python pipeline.py --genre <nome> --refs a.mov b.mov \
  --brief "o que acontece" --duration 12 \
  --base-video existente.mp4 --out out/FINAL.mp4

mint → distill → (mint3d) → apply → forge → verify. Etapas 1–3 são armazenadas em cache, então iterar em briefs nunca mede nada novamente. --dry-run simula toda chamada de rede: o plano, prompts, layout de faixa e manifesto ainda são todos exercitados.

Anti-Padrões

Não façaPor quê
Uma geração por tomada21% de eficiência, 12 clipes não relacionados
Colocar cor no promptMedido como não funcionando; afasta da base neutra que o LUT quer
Stream-copy dos cortesLimites apenas em keyframe destroem o ritmo de sub-segundo
Cortar um vídeo base contiguamenteRemonta o original; todo corte invisível
Confiar que compose faz sobreposiçãoEle não pode; rejeita a segunda faixa
Enviar segundos para composeSilenciosamente 1000x mais curto
Entregar apenas com MAEAdicione a verificação de parcela de fundo

Filmagem Emprestada Carrega a UI do Aplicativo de Captura

O pior defeito único encontrado em um corte entregue: o vídeo finalizado embarcou o botão de like de outra pessoa, contador de visualizações e balão de comentário, porque a base

...

Individual skills in this repo

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

accessibility

Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA. Use when building or auditing UI that must meet WCAG 2.2 Level AA, or when reviewing a change for keyboard, contrast, or screen-reader support.

affaan-m/claude-api

Anthropic Claude API patterns for Python and TypeScript. Covers Messages API, streaming, tool use, vision, extended thinking, batches, prompt caching, and Claude Agent SDK. Use when building applications with the Claude API or Anthropic SDKs.

affaan-m/everything-claude-code

End-to-end marketing campaign planning and execution. Covers audience research, positioning, campaign angle definition, landing page copy, email sequences, social posts, ad copy, short-form video scripts, and content calendars. Use as the orchestration layer for multi-channel product launches. Use when planning or executing a multi-channel product launch, or producing landing page, email, social, or ad copy.

affaan-m/everything-claude-code

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/everything-claude-code-conventions

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/frontend-design

Create distinctive, production-grade frontend interfaces with high design quality. Use when the user asks to build web components, pages, or applications and the visual direction matters as much as the code quality.

affaan-m/gget

gget CLI and Python workflow for quick genomic database queries, sequence lookup, BLAST-style searches, enrichment checks, and reproducible bioinformatics evidence logs.

affaan-m/literature-review

Systematic literature-review workflow for academic, biomedical, technical, and scientific topics, including search planning, source screening, synthesis, citation checks, and evidence logging.

affaan-m/motion-ui

Production-ready UI motion system for React/Next.js. Use when implementing animations, transitions, or motion patterns.

affaan-m/project-guidelines-example

Example project-specific skill template based on a real production application.

affaan-m/pubmed-database

Direct PubMed and NCBI E-utilities search workflows for biomedical literature, MeSH queries, PMID lookup, citation retrieval, and API-backed literature monitoring.

affaan-m/scholar-evaluation

Structured scholarly-work evaluation for papers, proposals, literature reviews, methods sections, evidence quality, citation support, and research-writing feedback.

affaan-m/uspto-database

USPTO patent and trademark data workflow for official record lookup, PatentSearch queries, TSDR checks, assignment data, and reproducible IP research logs.

agent-architecture-audit

Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature. Use when an agent or LLM feature misbehaves and the failing layer is unknown, or before shipping an agent stack.

agent-eval

Head-to-head comparison of coding agents (Claude Code, Aider, Codex, etc.) on custom tasks with pass rate, cost, time, and consistency metrics. Use when choosing between coding agents, or when a change to an agent setup needs measured pass rate, cost, and time rather than an impression.

agent-harness-construction

Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates. Use when defining or revising an agent

agentic-engineering

Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing. Use when planning or executing engineering work that agents will carry out end to end.

agentic-os

Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.

agent-introspection-debugging

Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.

agent-payment-x402

Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets. Supports Base through agentwallet-sdk and X Layer through OKX Payments / OKX Agent Payments Protocol. Use when an agent must pay for something itself and needs per-task budgets, spending controls, and a non-custodial wallet.

Habilidades Relacionadas