TasteForge Vídeo
Para o pipeline criativo completo e autônomo, use taste-distillation e depois taste-application. Esses skills do ECC já enviam seus scripts Python diretamente: medir referências, gerar ou passar takes existentes, classificar, cortar, compor, verificar e entregar para Blender e Resolve. Nenhum repositório de vídeo separado é necessário para esse fluxo. Este skill documenta o motor offline empacotado do ECC e seu contrato estrito de evidência.
O TasteForge transforma "faça parecer com esta referência" em um fluxo de trabalho repetível e auditável: entrevistar gosto, destilá-lo em um pacote de estilo estruturado, validar o pacote, aplicar sua cadência e aparência medidas à mídia local e exportar uma linha do tempo editável. A implementação canônica é o pacote tasteforge enviado dentro do ECC em skills/taste-application/scripts/tasteforge/. Ito-Markets/ito-video é um projeto de exemplo que consome o motor ECC empacotado.
Quando Usar
- O usuário pede para entrevistar sobre gosto de vídeo antes de qualquer filmagem ser feita ("me pergunte sobre a aparência", "me entreviste sobre a direção estética").
- O usuário deseja destilar uma estética em restrições estruturadas — um pacote de estilo reutilizável em vez de apenas vibrações ("transforme essas referências em um pacote").
- O usuário deseja validar um pacote de estilo (a metadados estão completos, esquema válido, cadência medida, especificação destilada?).
- O usuário deseja aplicar um pacote de estilo à filmagem local — planejar um corte a partir da cadência medida do pacote sobre clipes locais, deterministicamente.
- O usuário deseja exportar EDL/FCPXML — uma entrega editável e exata em quadros para DaVinci Resolve / Premiere / Final Cut.
- O usuário pede uma auditoria de proveniência de mídia gerada — de onde veio este pacote, especificação ou corte; o que foi medido localmente versus gerado por um provedor; o que foi simulado.
- O usuário pede para descobrir ou planejar saídas de ativos multimodais de imagem, vídeo ou 3D a partir de arquivos de referência locais, incluindo manifestos separados, efeitos CV ancorados a assunto ou receitas de efeitos do Resolve.
- O usuário menciona TasteForge, pacotes de estilo, flashethereal, destilação de gosto, planejamento de cadência/ritmo, descoberta multimodal, fluxos destilar/aplicar ou uma entrevista de gosto para vídeo.
Operações Determinísticas Locais vs Geração por Provedor
Esta fronteira é o núcleo deste skill de compatibilidade. Suas operações são locais, determinísticas e offline:
| Operação | Determinística? | ECC pode executar |
|---|---|---|
| Entrevista de gosto → perfil | sim (offline) | sim |
| Inspeção/validação de pacote contra esquemas | sim | sim |
| Destilar perfil (+ fundamentação medida) → especificação | sim (semânticas de simulação) | sim |
| Aplicar cadência do pacote à mídia local → relatório + linha do tempo | sim | sim |
| Exportar EDL (CMX3600) / FCPXML 1.9 | sim | sim |
| Relatório de proveniência/linhagem | sim | sim |
| Destilação de imagens por modelo de visão | geração por provedor | não |
| Referência para vídeo, imagem para 3D, composição hospedada | geração por provedor | não |
A geração por provedor deve falhar de forma fechada no ECC. Qualquer chamada ao vivo do Fal (ou outro provedor) — gerar tomadas, cunhar malhas de adereços, destilação VLM hospedada — requer execução explícita separadamente autorizada em uma pista separada com sua própria revisão. Nesta pista de compatibilidade, o ECC nunca chama o Fal, nunca lê chaves de API ou outras credenciais (incluindo FAL_KEY), não envia mídia e não modifica o estado da conta do provedor. Quando uma solicitação precisa de geração por provedor, declare exatamente esse limite, execute a parte local (entrevista, validação de pacote, planejamento, exportação) e pare.
Nunca afirme que um fluxo de trabalho do Fal foi salvo. Uma referência local a um endpoint do Fal, ID de modelo ou URL de simulação (eles aparecem dentro dos metadados do pacote) é apenas referência: nunca significa que um fluxo de trabalho do provedor foi salvo, persistido ou está autorizado a ser executado. Qualquer coisa produzida offline carrega semânticas de simulação/seco — diga "especificação simulada" ou "plano determinístico", nunca "gerado pelo modelo".
Implementação Canônica
- Repositório:
affaan-m/ECC; distribuição Pythonecc-tasteforge, diretório de pacoteskills/taste-application/scripts/tasteforge/. Instale a partir do pacote ECC extraído compython3 -m pip install ./skills/taste-application/scripts. O projeto de exemploIto-Markets/ito-videofixa um commit específico do ECC. - CLI:
python3 -m tasteforge <comando>—provenance,inspect,validate,interview,distill,apply,export,multimodal. flags--livesaem com código 2 e recusam. - Os esquemas são o contrato: perfil de gosto, manifesto do pacote, classificação, cadência, especificação, eventos de linha do tempo, relatórios de aplicação (
providerestá bloqueado no enum para"none";dry_runparatrue`). - A linhagem de fonte recuperada e exclusões deliberadas vivem em
skills/taste-application/SOURCE.mddo repositório. Executepython3 -m tasteforge provenancepara a versão legível por máquina.
Use o motor ECC instalado para comandos determinísticos locais e interprete seu JSON. Instale o motor empacotado se ausente; não reconstrua sua lógica inline. taste.resolve é uma importação de compatibilidade de tasteforge.resolve, então os scripts criativos e o projeto de exemplo compartilham um adaptador do Resolve verificado.
A CLI python3 -m tasteforge usa a distribuição ecc-tasteforge instalada. Os scripts autônomos taste-distillation e taste-application são enviados no módulo de geração de mídia opt-in do ECC com seus próprios requisitos Python. Nenhum dos caminhos requer a publicação do repositório ou mídia do usuário.
Antes de retomar um checkout salvo, registre seu commit e inspecione branches e worktrees locais para correções de implementação posteriores. Execute os testes do pacote canônico e python3 -m tasteforge apply --help; os testes de texto e fixture do ECC não provam que o checkout Python selecionado implementa este contrato.
Encadeando os Skills Criativos
| Estágio | Dono | Resultado revisável |
|---|---|---|
| Direção criativa | taste | Gêneros nomeados, observações de referência, lista de aparência e evitar |
| Destilação e planejamento | tasteforge-video | Evidência medida, especificações de gênero separadas, manifestos e plano de cadência simulados |
| Edição e efeitos | video-editing, com o renderizador escolhido como Remotion, Manim ou Fusion | Filmagem aplicada, faixas reais, efeitos e linha do tempo editáveis |
| Ativos gerados opcionais ou voz | fal-ai-media ou o fluxo de trabalho de áudio selecionado, sob sua própria autorização | Recibo do provedor e saída inspecionada |
| Entrega | Fluxo de trabalho de edição, depois content-engine quando solicitado | Cópia de exportação revisada e exata e distribuição |
Use apenas os estágios que o projeto precisa. A paleta e gramática de batida histórica angelcore/cloud-trance do skill taste são exemplos criativos opcionais; eles não devem substituir o brief atual ou mesclar gêneros numerados distintos. Use as referências reais de cada gênero para sua direção, incluindo 3D Cyber Glitch e Fluid Sketch. O TasteForge não substitui esses skills nem requer todos os renderizadores. Mantenha materiais 3D, geometria, comportamento de wireframe, movimento e composição explícitos na assinatura do gênero. Um manifesto de solicitação 3D é um plano para um ativo; não é uma malha. Um descritor de âncora de assunto nomeia um requisito de rastreamento; não é evidência de que um assunto foi detectado ou rastreado. Inspecione as faixas reais, comportamento de perda de faixa e quadros de assunto renderizados antes de afirmar que os efeitos CV foram aplicados de forma confiável.
Fluxo de Trabalho
- Entrevista (
interview): colete respostas para os eixos de aparência — paleta, granulação, iluminação, distância focal, movimento de câmera, enquadramento do assunto, classificação, adjetivos de humor, lista de evitar — e separadamente o brief de conteúdo. Mantenha aparência e conteúdo separados; mesclá-los é a falha clássica. - Destilar (
distill): mapeie o perfil no esquema da especificação offline, incorporando a fundamentação medida do pacote (preto/ponto branco, contraste, croma por zona, paleta, ritmo de corte) quando um pacote é fornecido. O resultado é uma especificação simulada: determinística, provedor"none". - Validar (
validate/inspect): verifique o pacote contra seus esquemas; relate erros vs avisos (stills ausentes em um pacote apenas de metadados são um aviso, não um erro). - Aplicar (
apply): planeje durações de tomada a partir da cadência medida do pacote (semeadura, determinística) sobre os clipes locais do usuário; produza o relatório de aplicação e eventos de linha do tempo exatos em quadros. - Exportar (
export): escreva EDL CMX3600 + FCPXML 1.9 com tempos racionais e seguros para NTSC para importação em um NLE real. - Auditar (
provenance): relate linhagem — resumos de fonte recuperada, histórico de geração, proveniência de fixture, referências de provedor como registros apenas de ponteiro.
Aplicando Filmagem Real Sem Fontes Repetidas
Quando o brief não requer clipes repetidos, use um checkout canônico que suporte apply --no-repeat --fps e defina a taxa de quadros de saída explicitamente. Se essas flags estiverem ausentes, relate a lacuna de implementação em vez de usar silenciosamente a seleção round-robin legada. O modo estrito usa cada caminho de fonte normalizado no máximo uma vez na ordem do manifesto e rejeita fontes insuficientes ou muito curtas. Prepare seleções revisadas suficientes para preencher o plano de cadência. Isso é exclusividade no nível da fonte, não suporte para intervalos de entrada/saída distintos da mesma gravação.
O relatório de aplicação é um plano de corte. Ele não realiza classificação visual de tomadas, classifica filmagens, aplica um LUT, renderiza sobreposições ou importa um projeto do Resolve. Mantenha a cadência de referência medida do pacote separada da taxa de quadros de saída.
A CLI de exportação espera {"clips": [...]}. Empacote os timeline_events da aplicação sob clips antes de exportar e passe o mesmo --fps usado para aplicação; a taxa de quadros padrão da exportação não deve reconformar o plano. Verifique a contagem de eventos emitidos, quadros totais, fontes únicas e vinculação de mídia antes de entregar a linha do tempo para o fluxo de trabalho de edição. Quando esse fluxo de trabalho aplica efeitos sobrepostos em um NLE, aloque faixas compatíveis e leia de volta cada início, fim e duração solicitados. Um item retornado ou uma chamada de anexo bem-sucedida sozinhos não provam que todo efeito agendado foi colocado; rejeite posicionamentos ausentes, deslocados ou truncados antes de renderizar.
Contrato Multimodal Orientado por Arquivos
Use este caminho quando referências locais devem impulsionar planos de geração simulados para saídas de imagem, vídeo e ativos 3D, preservando a separação de gênero:
python3 -m tasteforge multimodal --config workflow.json --out-dir out/multimodal
O config nomeia gêneros numerados e arquivos de evidência local. Mantenha esses gêneros candidatos distintos, em vez de misturá-los em uma estética genérica:
- Flash Ethereal
- 3D Cyber Glitch
- Fluid Sketch
O comando mede referências locais com ffprobe/ffmpeg e emite uma especificação de estilo por gênero, manifestos separados de imagem, vídeo e ativos 3D, proveniência e uma receita de efeito Resolve. O cronograma de efeito deve ser semeado aperiódico. Efeitos CV requerem uma âncora de assunto real cuja política exata de perda de faixa seja disable_effect_until_track_recovers; continue_without_anchor e todas as outras políticas falham fechadas. Cada efeito carrega restrições de posicionamento que preservam rostos e texto legível e impedem que malhas de canto decorativas substituam trabalhos 3D em tela cheia.
O recibo retornado é o limite do pacote. Ele vincula todo artefato de evidência emitido por caminho relativo, tamanho em bytes, SHA-256, gênero, modalidade, provider_execution:false e proveniência exata de referência/tempo. O recibo requer provider_calls:0 como um inteiro exato (o booleano JSON false é inválido), provider_execution:false e dry_run:true. Toda especificação de gênero também requer dry_run:true explícito. A receita de efeito Resolve requer esse mesmo inteiro exato provider_calls:0, provider_execution:false e dry_run:true. Cada manifesto de modalidade e toda solicitação aninhada devem conter todos os quatro campos exatos de falha fechada: inteiro provider_calls:0, provider_execution:false, dry_run:true e submit:false; cada solicitação também requer provider_call_mode:"disabled". Um campo ausente é uma rejeição, não um padrão, e dry_run:false deve ser rejeitado antes que a saída seja escrita.
Trate booleanos como números inválidos em todos os lugares em dados de linha do tempo, evidência, sonda e duração de fonte. Todo valor numérico deve ser um real finito: rejeite true, false, NaN, infinitos, inícios de evento negativos, durações não positivas, tempos de evidência fora do intervalo e eventos que terminam além da linha do tempo positiva finita declarada. Evidência de arquivo inteiro usa uma base de tempo de arquivo inteiro explícita e nunca inventa timestamps.
As referências do recibo são a autoridade de duração. Chaveie cada duração de referência validada pelo seu SHA-256 citado; ocorrências duplicadas de um resumo devem concordar em duração ou o pacote é inválido. Cada source_duration de evidência de efeito e cada source_duration de âncora de assunto deve ser igual à duração validada do recibo daquele resumo, não apenas conter seu tempo citado. A duração da sonda e todas as medições de sonda devem descrever os mesmos bytes estáveis usados para contagem de bytes e SHA-256. Se a fonte sofrer mutação durante a sondagem ou rehash de forma diferente enquanto ainda estiver disponível, falhe fechado em vez de emitir ou aceitar um recibo.
Sempre execute a validação do pacote após a criação. Um manifesto de imagem, vídeo ou ativo 3D ausente deve falhar fechado. Gêneros genéricos ou duplicados, cronogramas periódicos, efeitos CV não ancorados, restrições de posicionamento ausentes, flags de execução do provedor, arquivos de saída não vinculados, deriva de tamanho de byte ou adulteração de SHA-256 devem falhar fechados. Rejeite raízes de saída, intermediários ou artefatos que são links simbólicos e rejeite arquivos especiais (incluindo FIFOs e dispositivos); as saídas devem permanecer arquivos regulares sob uma árvore de diretório real. Se o ffmpeg ou ffprobe local estiver indisponível, a CLI deve retornar seu erro limitado de processamento de mídia local diferente de zero sem um traceback Python. Não repare um recibo com falha excluindo evidência ou enfraquecendo a validação.
Sessão de Exemplo
# após instalar o motor ECC; caminhos abaixo são suas entradas de projeto
python3 -m tasteforge validate stylepacks/flashethereal
python3 -m tasteforge interview --answers answers.json --genre flashethereal
…
[truncado para tradução]