CommunityImagemgithub.com

galloforge/forge-frame-qa

FilmForge Frame QA: inspeciona cada pintura em tamanho real contra as fichas de personagens e o registro de continuidade, mede regras de cor, paleta e exposição com ferramentas, pontua em um rubric de nove critérios e decide: aceitar, corrigir no código (nomeando o módulo e os parâmetros exatos) ou repintar (com a causa raiz e o prompt corrigido completo). Use esta habilidade sempre que pinturas, stills, keyframes, fichas de personagens ou páginas de livros forem devolvidas de um modelo de imagem, ou quando o usuário perguntar se...

O que é forge-frame-qa?

FilmForge Frame QA é uma habilidade de IA especializada para garantir a qualidade de cada quadro em uma produção cinematográfica. Ela analisa cada pintura em tamanho real, comparando-a com as fichas de personagens e o registro de continuidade. Utiliza ferramentas para medir regras de cor, paleta e exposição, atribui uma pontuação com base em nove critérios (identidade, anatomia, escala, estilo, cor, continuidade, história, composição e limpeza) e decide um veredito: aceitar, corrigir no código (com o módulo e parâmetros exatos) ou repintar (com a causa raiz e o prompt corrigido completo). A habilidade é útil para garantir consistência visual, evitar erros caros e manter a fidelidade ao roteiro visual. Funciona em qualquer ambiente com Python 3 e suporte a scripts de linha de comando. A documentação detalhada fornece exemplos de falhas reais, regras de veredito e como integrar com o pipeline de pintura do FilmForge.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/gallowforge/filmforge/tree/HEAD/skills/forge-frame-qa

Installed? Explore more Imagem skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Perguntar na sua IA favorita

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

Documentação

FilmForge Frame QA

Nada entra no filme como uma miniatura. Cada pintura é lida em tamanho real contra suas fichas, medida pelas ferramentas, pontuada e recebe um de três vereditos. O veredito sempre diz o que acontece a seguir e quanto custa: aceitar (grátis), corrigir no código (grátis, com a chamada exata) ou repintar (2,75 créditos, com o prompt corrigido).

Caminhos: scripts/, templates/ e config/ abaixo são pastas dentro desta habilidade (o diretório base mostrado quando carrega), colocadas lá por ./install.sh. Trabalhando a partir de um clone do repositório, eles são tools/, templates/ e config/ em sua raiz.

O procedimento

  1. Folha de contato do lote, para vê-lo como uma sequência (os vizinhos cortam juntos?): python3 scripts/contact_sheet.py build art/film --shotlist shotlist.yaml --out out/contact_sheet.jpg
  2. Visão completa de cada pintura (leia a imagem em si, não a folha).
  3. Recortes 100% do que importa: rostos, mãos, o assunto crítico de escala, qualquer coisa pequena. python3 scripts/contact_sheet.py zoom art/film/s03_x.png --out-dir out/zoom --grid 2x2 ou --box x0,y0,x1,y1. Um leitor de imagens reduz a amostra de imagens grandes; os recortes mostram os pixels reais.
  4. Medir regras de cor, paleta e exposição: python3 scripts/ledger.py palette continuity.yaml --paintings art/film --shotlist shotlist.yaml Ele relata a paleta de cada pintura, sua distância (delta E) do script de cores da cena, a participação de cada regra de cor proibida no quadro e saltos de exposição em stops entre vizinhos de uma cena.
  5. Pontuar o rubric (abaixo): nove critérios, 0 a 2.
  6. Decidir o veredito pelas regras abaixo.
  7. Escrever a entrada em qa.yaml (formato abaixo) e, em seguida, reconstruir a folha de contato com --qa qa.yaml para badges.
  8. Relatar: a contagem de vereditos, cada correção e repintura em uma linha, créditos que uma repintura custaria.

O rubric (templates/qa-rubric.md tem os âncoras de pontuação)

CritérioO que verificar
identidaderostos e marcadores de figurino contra as fichas
anatomiamãos, olhos, membros no sujeito focal
escalacada trava de escala e cada contagem (medir pixels nos recortes)
estiloa trava de aparência: meio, linha, cor, textura
coro script de cores e regras proibidas (de ledger.py palette) e exposição contra vizinhos
continuidadecada adereço e estado que o registro lista para este plano, e nada fora de seu intervalo
históriaa batida é lida em dois segundos
composiçãoenquadramento conforme listado, o olho pousa no sujeito, a área de texto tranquila
limpezasem texto pintado, marca d'água, mancha ou figura perdida

Medindo escala: em um recorte, meça o sujeito e sua referência em pixels e compare a proporção com a trava de escala. O exemplo do motor: a mariposa abrange 20 px em um dedo de 60 px, onde sua trava diz uma mão aberta inteira (120 px ou mais naquele enquadramento): um sexto de seu tamanho, escala 0, repintura.

As regras de veredito

  • aceitar: nenhum critério em 0, total 15 de 18 ou mais, nenhuma violação medida.
  • corrigir: cada falha tem uma correção de código (tabela abaixo) e nada em 0 em identidade, escala ou história.
  • repintar: identidade, escala ou história em 0; anatomia em 0 no sujeito focal; estilo em 0; ou três ou mais falhas.

Corrigir no código antes dos créditos (módulos do painted-film-pipeline)

FalhaMódulo e chamada
um objeto em um matiz errado (um cachecol que faz um personagem secundário ser lido como o herói)grade.py IN OUT recolor:x0:y0:x1:y1:lo:hi:new_hue:sat
uma cor proibida vazando (azul antes do final)grade.py IN OUT blue:0.3 (puxa a banda para prata; keep=0.3) ou recolor para um matiz permitido
uma figura perdida em uma área limpaum patch de uma região limpa deslocada (o padrão fix_s22.py)
corte ruim, tangente, espaço de cabeça erradoo crop: [x0, y0, x1, y1] do plano em pixels de origem
exposição ou contraste diferente dos vizinhosautomático: o mapeamento correspondente mapeia o percentil de luminância 0,5 e 99,5 de cada chapa para alvos compartilhados
detalhe suaveautomático: upscale Lanczos 4K com nitidez apenas nas bordas
um quadro sem vidamovimento no código (forge-motion), nunca uma repintura

Cada correção escreve um novo arquivo (_g), é remensurado e recebe done: true apenas quando a medição passa. Detalhes e significados dos parâmetros: references/code-fixes.md.

Repintar: diagnosticar, depois corrigir

Nomeie a causa como um slot de prompt ou uma referência: "trava de escala faltando no slot 4", "ficha anexada na ordem errada", "aparência parafraseada". Escreva o prompt corrigido completo, verifique o orçamento e entregue ao forge-painter. Se a causa afetaria outros planos (uma trava faltando no registro), diga: é uma alteração no motor, não uma repintura.

Formato de entrada qa.yaml

  - shot: s02
    file: art/film/s02_last_match.png
    checked: [full frame, zoom 2x2 at 100%, ledger palette]
    scores: {identity: 1, anatomy: 2, scale: 2, style: 2, colour: 0, continuity: 2, story: 2, composition: 2, clean: 2}
    total: 15
    max: 18
    measured: {no_gold_pct: 4.4, script_dE: 5}
    verdict: fix
    notes: Um brilho dourado do fósforo cobre 4,4% do quadro (a regra permite 2% antes de s05) e tinge o capuz.
    fix:
      problem: brilho dourado, matiz 38 a 58
      module: painted-film-pipeline pipeline/grade.py (recolor)
      call: python grade.py s02_last_match.png s02_last_match_g.png recolor:250:250:700:650:38:58:22:0.8
      params: {box: [250, 250, 700, 650], hue_band: [38, 58], new_hue: 22, sat: 0.8}
      why_not_repaint: uma banda de matiz em uma caixa
      verify: ledger.py palette mostra no-gold abaixo de 2,0% no arquivo _g; o capuz lê vermelho a 100%
      done: false

Uma entrada de repintura tem repaint: {cause, prompt_changes, credits, corrected_prompt} em vez de fix.

Achados trabalhados de produções reais

  • Escala (repintura): cinco quadros de Simorgh desenharam a poupa muito pequena ao lado da garota (s21, s25, s33, s36, s39). O código não consegue ampliar um sujeito pintado de forma convincente; eles foram agendados para repintura em seu tamanho real, e a causa (nenhuma proporção de escala nos prompts ou nas fichas) tornou-se uma regra do motor.
  • Cor (correção): azul se infiltrou nos quadros antes do final; uma puxada de banda para prata os corrigiu no código.
  • Identidade por cor (correção): o cachecol de um personagem secundário combinava com a cor do herói, então ele foi lido como ela; uma recolorização de banda de matiz dentro de uma caixa o moveu.
  • Figura perdida (correção): uma figura pintada extra em um quadro tranquilo foi removida com patches de regiões limpas deslocadas.
  • O portão do livro ilustrado: rostos correspondem às referências; a aparência certa e as cores do script de cores; a área de texto realmente calma; o motivo da página presente; faz você sentir a linha de texto com a qual se senta. Uma falha, refeita.

Nunca

  • Aceitar de uma miniatura ou de uma folha de contato sozinha.
  • Repintar o que o código pode corrigir, ou "corrigir" no código o que torna a história errada.
  • Passar uma pintura cuja regra medida falha, mesmo que pareça bem.

Checklist de portão (para o lote)

  • Cada pintura lida em tamanho real, com recortes de rostos, mãos e assuntos críticos de escala
  • ledger.py palette executado; cada erro explicado em um veredito
  • Cada pintura tem uma entrada qa.yaml com pontuações, veredito e a próxima ação
  • Folha de contato reconstruída com badges e olhada

Referências

  • references/code-fixes.md: parâmetros de cada correção, como escolhê-los e como verificar

Individual skills in this repo

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

gallowforge/forge-director

FilmForge director: runs an AI film production end to end (story, style lock, score, paintings, frame QA, motion in code, sound, delivery, archive) through stage gates, so no credit is spent before its gate passes. Keeps the production state file (production.yaml) and the credit ledger, prices the plan against the credits, and always names the one next action. Use this skill whenever the user wants to make, plan, budget, continue or check on a short film, painted film, animated story, music...

gallowforge/forge-motion

FilmForge motion: plans each shot's life in code instead of credits (painted holds brought alive with drifting fog, ash, snow, rain, embers, glints, light sweeps, firelight flicker, heat shimmer, shake, lightning, glass cracks, transitions, golden threads, handwritten words and titles), maps every effect to the painted-film-pipeline renderer's exact parameters, applies frame-QA code fixes, exports the edit timeline and renders the preview; decides when paid video is worth its credits. Use...

gallowforge/forge-painter

FilmForge painter: writes every shot's image prompt from the shot list, the character sheets and the style lock, on a fixed twelve-slot order with continuity anchors (handles, anchors, scale locks, props, states, forbidden-colour clauses); keeps the continuity ledger; lints every prompt before a credit is spent; paints in batches of four and hands each batch to frame QA. Use this skill whenever the user wants image prompts for a film's shots or a picture book's pages, storyboard frames,...

gallowforge/forge-style-lock

FilmForge style lock: fixes one image model and setting, one look sentence (or two when the drawing itself carries the story), the palette and colour rules, the line, brush and lens language, the character-sheet specs with scale bars, and the prompt grammar every shot must follow, so every painting in a film or book matches. Use this skill whenever the user starts the visual side of a film, music video or picture book, wants consistent characters or one consistent look across many images,...

Habilidades Relacionadas