CommunityImagengithub.com

galloforge/forge-frame-qa

FilmForge Frame QA: inspecciona cada pintura a tamaño completo contra las hojas de personajes y el libro de continuidad, mide reglas de color, paleta y exposición con herramientas, la puntúa en un criterio de nueve puntos y decide: aceptar, corregir en código (nombrando el módulo y los parámetros exactos) o repintar (con la causa raíz y el prompt corregido completo). Usa esta skill cada vez que lleguen pinturas, fotogramas, keyframes, hojas de personajes o páginas de libros de un modelo de imagen, o cuando el usuario pregunte si...

¿Qué es forge-frame-qa?

FilmForge Frame QA es una skill para agentes de IA que actúa como control de calidad automatizado para la producción de animación. Lee cada pintura a tamaño completo, compara con hojas de personajes y el libro de continuidad, mide reglas de color, paleta y exposición usando herramientas de `scripts/`, y puntúa en un criterio de nueve puntos (identidad, anatomía, escala, estilo, color, continuidad, historia, composición, limpieza). Cada pintura recibe un veredicto: aceptar (sin costo), corregir en código (gratuito, con la llamada exacta al módulo) o repintar (2.75 créditos, con el prompt corregido). La skill es ideal para entornos como Claude Code, Cursor o Codex, y su integración permite mantener consistencia visual y narrativa sin intervención manual. Incluye detección de fallos de escala, fugas de color, figuras extrañas y errores de continuidad, con ejemplos de casos reales.

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

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

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

FilmForge Frame QA

Nada entra en la película en miniatura. Cada pintura se lee a tamaño completo contra sus hojas, se mide con las herramientas, se puntúa y recibe uno de tres veredictos. El veredicto siempre dice qué ocurre después y cuánto cuesta: aceptar (gratis), corregir en código (gratis, con la llamada exacta) o repintar (2.75 créditos, con el prompt corregido).

Rutas: scripts/, templates/ y config/ a continuación son carpetas dentro de esta skill (el directorio base que se muestra al cargarla), colocadas allí por ./install.sh. Trabajando desde un clon del repositorio, son tools/, templates/ y config/ en su raíz.

El procedimiento

  1. Hoja de contactos del lote, para verlo como secuencia (¿los vecinos cortan juntos?): python3 scripts/contact_sheet.py build art/film --shotlist shotlist.yaml --out out/contact_sheet.jpg
  2. Vista completa de cada pintura (lee la imagen en sí, no la hoja).
  3. Recortes al 100% de lo que importa: caras, manos, el sujeto crítico de escala, cualquier cosa pequeña. python3 scripts/contact_sheet.py zoom art/film/s03_x.png --out-dir out/zoom --grid 2x2 o --box x0,y0,x1,y1. Un lector de imágenes reduce el tamaño de las imágenes grandes; los recortes muestran los píxeles reales.
  4. Mide reglas de color, paleta y exposición: python3 scripts/ledger.py palette continuity.yaml --paintings art/film --shotlist shotlist.yaml Informa la paleta de cada pintura, su distancia (delta E) del guión de color de la escena, la proporción de cada regla de color prohibido en el fotograma y los saltos de exposición en paradas entre vecinos de una misma escena.
  5. Puntúa el criterio (abajo): nueve criterios, de 0 a 2.
  6. Decide el veredicto según las reglas a continuación.
  7. Escribe la entrada en qa.yaml (formato abajo), luego reconstruye la hoja de contactos con --qa qa.yaml para las insignias.
  8. Informa: el recuento de veredictos, cada corrección y repintado en una línea, los créditos que costaría un repintado.

El criterio (templates/qa-rubric.md tiene los anclajes de puntuación)

CriterioQué compruebas
identidadcaras y marcadores de vestuario contra las hojas
anatomíamanos, ojos, extremidades en el sujeto focal
escalacada bloqueo de escala y cada recuento (mide píxeles en los recortes)
estiloel bloqueo de aspecto: medio, línea, color, textura
colorel guión de color y las reglas prohibidas (de ledger.py palette) y exposición contra vecinos
continuidadcada accesorio y estado que el libro lista para este plano, y nada fuera de su intervalo
historiael latido se lee en dos segundos
composiciónencuadre según lo listado, el ojo aterriza en el sujeto, el área de texto tranquila
limpiosin texto pintado, marca de agua, mancha o figura suelta

Midiendo escala: en un recorte, mide el sujeto y su referencia en píxeles y compara la proporción con el bloqueo de escala. El ejemplo del motor: la polilla abarca 20 px en un dedo de 60 px, donde su bloqueo dice una mano abierta completa (120 px o más en ese encuadre): una sexta parte de su tamaño, escala 0, repintar.

Las reglas del veredicto

  • aceptar: ningún criterio en 0, total 15 de 18 o más, sin violación medida.
  • corregir: cada fallo tiene una corrección en código (tabla abajo) y nada en 0 en identidad, escala o historia.
  • repintar: identidad, escala o historia en 0; anatomía en 0 en el sujeto focal; estilo en 0; o tres o más fallos.

Corregir en código antes de créditos (módulos de painted-film-pipeline)

FalloMódulo y llamada
un objeto en un tono incorrecto (una bufanda que hace que un personaje secundario se lea como el héroe)grade.py IN OUT recolor:x0:y0:x1:y1:lo:hi:new_hue:sat
un color prohibido filtrándose (azul antes del final)grade.py IN OUT blue:0.3 (empuja la banda hacia plata; keep=0.3) o recolor a un tono permitido
una figura suelta en un área limpiaun parche de una región limpia desplazada (el patrón de fix_s22.py)
mal recorte, tangente, mal espacio de cabezael crop: [x0, y0, x1, y1] del plano en píxeles de origen
exposición o contraste fuera de sus vecinosautomático: el mapeo igualado asigna el percentil 0.5 y 99.5 de luminancia de cada placa a objetivos compartidos
detalle suaveautomático: escalado Lanczos 4K con nitidez solo en bordes
un fotograma sin vidamovimiento en código (forge-motion), nunca un repintado

Cada corrección escribe un nuevo archivo (_g), se vuelve a medir y obtiene done: true solo cuando la medición pasa. Detalles y significados de parámetros: references/code-fixes.md.

Repintar: diagnosticar, luego corregir

Nombra la causa como un slot de prompt o una referencia: "falta bloqueo de escala en el slot 4", "hoja adjunta en orden incorrecto", "aspecto parafraseado". Escribe el prompt corregido completo, verifica el presupuesto y entrégaselo a forge-painter. Si la causa afectaría a otros planos (un bloqueo faltante en el libro), dímelo: es un cambio de motor, no un solo repintado.

Formato de entrada qa.yaml

  - shot: s02
    file: art/film/s02_last_match.png
    checked: [fotograma completo, zoom 2x2 al 100%, paleta de ledger]
    scores: {identidad: 1, anatomía: 2, escala: 2, estilo: 2, color: 0, continuidad: 2, historia: 2, composición: 2, limpio: 2}
    total: 15
    max: 18
    measured: {no_gold_pct: 4.4, script_dE: 5}
    verdict: fix
    notes: Un resplandor dorado de la cerilla cubre el 4.4% del fotograma (la regla permite 2% antes de s05) y tiñe la capucha.
    fix:
      problem: resplandor dorado, tono 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: una banda de tono en un cuadro
      verify: ledger.py palette muestra no-gold por debajo de 2.0% en el archivo _g; la capucha se lee roja al 100%
      done: false

Una entrada de repintado tiene repaint: {cause, prompt_changes, credits, corrected_prompt} en lugar de fix.

Hallazgos prácticos de producciones reales

  • Escala (repintar): cinco fotogramas de Simorgh dibujaron a la abubilla demasiado pequeña junto a la niña (s21, s25, s33, s36, s39). El código no puede agrandar un sujeto pintado de manera convincente; se programaron para repintado a su tamaño real, y la causa (sin proporción de escala en prompts ni en las hojas) se convirtió en una regla del motor.
  • Color (corregir): el azul se filtró en fotogramas antes del final; un tirón de banda hacia plata los corrigió en código.
  • Identidad por color (corregir): la bufanda de un personaje secundario coincidía con el color del héroe, por lo que se leía como ella; un recolor de banda de tono dentro de un cuadro lo movió.
  • Figura suelta (corregir): una figura pintada extra en un fotograma tranquilo se parcheó a partir de regiones limpias desplazadas.
  • La puerta del libro ilustrado: las caras coinciden con las referencias; el aspecto correcto y los colores del guión de color; el área de texto realmente tranquila; el motivo de la página presente; te hace sentir la línea de texto con la que se sienta. Un fallo, rehecho.

Nunca

  • Aceptar desde una miniatura o una hoja de contactos sola.
  • Repintar lo que el código pueda corregir, o "corregir" en código lo que hace que la historia esté mal.
  • Pasar una pintura cuya regla medida falle, incluso si se ve bien.

Lista de verificación de puerta (para el lote)

  • Cada pintura leída a tamaño completo, con recortes de caras, manos y sujetos críticos de escala
  • ledger.py palette ejecutado; cada error explicado en un veredicto
  • Cada pintura tiene una entrada en qa.yaml con puntuaciones, veredicto y la siguiente acción
  • Hoja de contactos reconstruida con insignias y revisada

Referencias

  • references/code-fixes.md: los parámetros de cada corrección, cómo elegirlos y cómo verificarlos

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,...

Skills relacionados