TasteForge Video
Para o pipeline criativo completo autônomo, use taste-distillation e depois taste-application. Essas habilidades do ECC enviam seus próprios scripts Python diretamente: medem referências, geram ou passam por takes existentes, graduam, cortam, compõem, verificam e entregam para Blender e Resolve. Nenhum repositório de vídeo separado é necessário para esse fluxo. Esta habilidade documenta o motor offline empacotado do ECC e seu contrato estrito de evidência.
TasteForge transforma 'faça soar como esta referência' em um fluxo de trabalho repetível e auditável: entreviste o gosto, destile-o em um pacote de estilo estruturado, valide o pacote, aplique sua cadência e aparência medidas a mídia local e exporte uma timeline 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 o visual', 'me entreviste sobre 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 sensações ('transforme estas referências em um pacote').
- O usuário deseja validar um pacote de estilo (os metadados estão completos, o esquema é válido, a cadência foi medida, a especificação foi destilada?).
- O usuário deseja aplicar um pacote de estilo a filmagens locais — 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, com quadros exatos, 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 (dry-run).
- O usuário pede para descobrir ou planejar saídas multimodais de imagem, vídeo ou ativos 3D orientadas por arquivos a partir de arquivos de referência locais, incluindo manifestos separados, efeitos de CV ancorados a sujeitos 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 de destilação/aplicação ou uma entrevista de gosto para vídeo.
Operações Determinísticas Locais vs Geração por Provedor
Este limite é o núcleo desta habilidade 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ântica dry-run) | sim |
| Aplicar cadência do pacote a mídia local → relatório + timeline | 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 |
Geração por provedor deve falhar fechado no ECC. Qualquer chamada ao vivo da Fal (ou outro provedor) — gerar tomadas, criar malhas de adereços, destilação VLM hospedada — requer execução explícita separadamente autorizada sob uma faixa separada com sua própria revisão. Nesta faixa de compatibilidade, o ECC nunca chama Fal, nunca lê qualquer chave de API ou outras credenciais (FAL_KEY incluído), não envia mídia e não altera o estado da conta do provedor. Quando uma requisição precisar de geração por provedor, declare exatamente esse limite, execute a metade local (entrevista, validação de pacote, planejamento, exportação) e pare.
Nunca afirme que um fluxo de trabalho Fal foi salvo. Uma referência local a um endpoint Fal, ID de modelo ou URL dry-run (eles aparecem dentro dos metadados do pacote) é apenas referência: nunca significa que um fluxo de trabalho do lado do provedor foi salvo, persistido ou autorizado a ser executado. Qualquer coisa produzida offline carrega semântica dry-run — diga 'especificação dry-run' ou 'plano determinístico', nunca 'gerado pelo modelo'.
Implementação Canônica
- Repositório:
affaan-m/ECC; distribuição Pythonecc-tasteforge, diretório do 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. - Esquemas são o contrato: perfil de gosto, manifesto do pacote, graduação, cadência, especificação, eventos de timeline, relatórios de aplicação (
providerestá bloqueado por enum para"none";dry_runparatrue). - A linhagem de fonte recuperada e exclusões deliberadas residem 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 Resolve verificado.
A CLI python3 -m tasteforge usa a distribuição ecc-tasteforge instalada. Os scripts standalone 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 locais e worktrees 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 as Habilidades Criativas
| Estágio | Proprietário | Resultado revisável |
|---|---|---|
| Direção criativa | taste | Gêneros nomeados, observações de referência, lista de looks e evitações escolhidas |
| Destilação e planejamento | tasteforge-video | Evidência medida, especificações de gênero separadas, manifestos dry-run e plano de cadência |
| Edição e efeitos | video-editing, com o renderizador escolhido como Remotion, Manim ou Fusion | Filmagem aplicada, faixas reais, efeitos e timeline 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 | Exportação exata revisada e cópia de distribuição |
Use apenas os estágios que o projeto precisa. A paleta angelcore/cloud-trance histórica e a gramática de batida da habilidade taste são exemplos criativos opcionais; eles não devem substituir o briefing 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. TasteForge não substitui essas habilidades 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 sujeito nomeia um requisito de rastreamento; não é evidência de que um sujeito foi detectado ou rastreado. Inspecione faixas reais, comportamento de perda de faixa e quadros de sujeito renderizados antes de afirmar que os efeitos de CV foram aplicados de forma confiável.
Fluxo de Trabalho
- Entrevista (
interview): colete respostas para os eixos de visual — paleta, granulação, iluminação, distância focal, movimento da câmera, enquadramento do sujeito, graduação, adjetivos de humor, lista de evitações — e separadamente o briefing de conteúdo. Mantenha visual e conteúdo separados; mesclá-los é a falha clássica. - Destilar (
distill): mapeie o perfil para o esquema de especificação offline, incorporando a fundamentação medida do pacote (ponto preto/branco, contraste, croma por zona, paleta, ritmo de corte) quando um pacote é fornecido. O resultado é uma especificação dry-run: 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 (semeadas, determinísticas) sobre os clipes locais do usuário; produza o relatório de aplicação e eventos de timeline com quadros exatos. - 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 Filmagens Reais Sem Fontes Repetidas
Quando o briefing exigir nenhum clipe repetido, 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, graduação de filmagem, aplicação de LUT, renderização de sobreposições ou importação de um projeto 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": [...]}. Enrole 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 timeline ao fluxo de trabalho de edição.
Quando esse fluxo de trabalho aplicar 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 append bem-sucedida por si só não prova que cada 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 gerar planos de geração dry-run para saídas de imagem, vídeo e ativos 3D, preservando a separação de gêneros:
python3 -m tasteforge multimodal --config workflow.json --out-dir out/multimodal
O config nomeia gêneros numerados e arquivos de evidência locais. 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. A programação de efeitos deve ser semeadas aperiódica. Efeitos de CV exigem uma âncora de sujeito real cuja política exata de perda de rastreamento seja disable_effect_until_track_recovers; continue_without_anchor e todas as outras políticas falham fechado. Cada efeito carrega restrições de posicionamento que preservam rostos e texto legível e impedem que malhas de canto decorativas substituam o trabalho 3D em tela cheia.
O recibo retornado é o limite do pacote. Ele vincula cada 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. Cada especificação de gênero também requer dry_run:true explícito. A receita de efeito Resolve requer esses mesmos campos exatos de falha fechada: inteiro provider_calls:0, provider_execution:false e dry_run:true. Cada manifesto de modalidade e cada requisição aninhada deve conter todos os quatro campos exatos de falha fechada: inteiro provider_calls:0, provider_execution:false, dry_run:true e submit:false; cada requisiçã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 dados de timeline, evidência, sonda e duração de fonte. Cada 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 timeline 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 da duração. Chaveie cada duração de referência validada pelo seu SHA-256 citado; ocorrências duplicadas de um digest devem concordar na duração ou o pacote é inválido. Cada source_duration de evidência de efeito e cada source_duration de âncora de sujeito deve ser igual à duração do recibo validada desse digest, não apenas conter seu tempo citado. A duração da sonda e todas as medições da sonda devem descrever os mesmos bytes estáveis usados para contagem de bytes e SHA-256. Se a fonte mudar 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, programações periódicas, efeitos de CV sem âncora, restrições de posicionamento ausentes, flags de execução de provedor, arquivos de saída não vinculados, deriva de tamanho de bytes ou adulteração de SHA-256 devem falhar fechado. Rejeite raízes de saída, intermediários ou artefatos que sejam links simbólicos e rejeite arquivos especiais (incluindo FIFOs e dispositivos); as saídas devem permanecer arquivos regulares sob uma árvore de diretórios real. Se 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 do projeto
python3 -m tasteforge validate stylepacks/flashethereal
python3 -m tasteforge interview --answers answers.json --genre flashetherea
…
[truncado para tradução]