FilmForge Painter
Conviertes la lista de planos en pinturas que pertenecen a una sola película. Cada prompt se ensambla a partir de partes fijas (el bloqueo de estilo, el libro de contabilidad, la lista de planos), nunca improvisado, de modo que el mismo personaje se describe con las mismas palabras en cada plano. El lint lo prueba antes de que se mueva el dinero.
Rutas: scripts/, templates/ y config/ debajo son carpetas dentro de esta habilidad (el directorio base que se muestra cuando carga), puestas allí por ./install.sh. Al trabajar desde un clon del repositorio, son tools/, templates/ y config/ en su raíz.
Entradas
shotlist.yaml (reajustada), style-lock.yaml, continuity.yaml, las hojas y láminas en art/sheets/.
Paso 1. El libro de contabilidad, plano por plano
Para cada plano, escribe su entrada en continuity.yaml: qué personajes están en cuadro, qué utilería (con sus titulares), qué estados (una herida, hollín, una cinta en la muñeca). La utilería y los estados llevan intervalos (from, until).
python3 scripts/ledger.py check continuity.yaml --shotlist shotlist.yaml
Falla ante divergencias: un accesorio que falta dentro de su intervalo mientras su titular está en cuadro, un accesorio o estado fuera de su intervalo, un id desconocido, una lista de personajes que no coincide con la lista de planos. Arregla el libro de contabilidad antes de escribir un prompt.
Paso 2. Escribe cada prompt (prompts/<id>.md)
Sigue la gramática del bloqueo de estilo, ranura por ranura (forge-style-lock, references/prompt-grammar.md):
- LOOK: el look para este plano (
look:en la lista de planos, si no, el predeterminado), palabra por palabra. - REFERENCES: una cláusula por activo adjunto, de
style-lock.yaml references:, en el orden en que los adjuntas; la cláusula de relight. - SHOT: el encuadre de la lista de planos, altura de cámara, sensación de lente, posiciones en tercios.
- SUBJECT AND SCALE: por personaje, handle + ancla + bloqueo de escala del libro de contabilidad; recuentos.
- MOMENT: el beat del plano como un instante.
- SETTING: lugar, clima, hora del día, el fondo.
- LIGHT: dirección, calidad, temperatura y su fuente en el mundo.
- COLOUR: las palabras de la script de color de la escena.
- TEXT AREA, cuando el plano tiene
text_areao narración sobre él. - CONTINUITY: la utilería y los estados del libro de contabilidad para este plano, palabra por palabra.
- LOCKS: cada cláusula
forbidque cubre este plano, palabra por palabra; negaciones específicas del plano. - AVOID: la cola, palabra por palabra.
El formato del archivo, exactamente:
# s02: the last match
Model: gpt-image-2.5, high, 2K, 16:9. Attach: sheet_girl, sheet_moth.
```
<el prompt, ranuras 1 a 12 como párrafos>
```
El primer bloque delimitado es el prompt; todo lo demás son notas para las personas.
Paso 3. Lint antes de gastar
python3 scripts/ledger.py prompts continuity.yaml --prompts prompts --style style-lock.yaml --shotlist shotlist.yaml
Falla en un prompt que no comienza con el look, no termina con la cola de avoid, le falta el handle o el bloqueo de escala de un personaje, un ancla de utilería o estado, una cláusula de color prohibido, o contiene el nombre de un personaje. production.py spend rechaza los gastos de etapa de pintura mientras falle. En el ejemplo del motor, el lint detecta el bloqueo de escala faltante de s03; la pintura hecha a partir de ese prompt dibujó la polilla a una sexta parte de su tamaño.
Paso 4. Pintar en lotes de cuatro
- Orden: hojas y pruebas (etapa de estilo), luego fotogramas principales, luego el resto escena por escena. Las tomas reutilizadas y las tomas de código no cuestan nada; no las pintes nunca.
- Lote: cuatro prompts, cada uno con sus referencias adjuntas en el orden que su ranura REFERENCES las nombra. Registra el gasto primero:
production.py spend 11.0 --item "s05-s08 batch 2". - Archivos:
art/film/<id>_<slug>.png(s07a_child_reaches.pngestilo: id primero, luego un slug). Una repintura es<id>_<slug>_v2.png; una corrección de código graduada es<id>_<slug>_g.png. Las herramientas eligen la versión más nueva por nombre. - Después de cada lote: forge-frame-qa lee cada pintura a tamaño completo antes de pintar el siguiente lote. Una falla encontrada en el lote uno se corrige en los prompts del lote dos antes de que se repita.
Paso 5. Repinturas
Una repintura proviene de forge-frame-qa con su causa y un prompt corregido. Coloca el prompt corregido en prompts/<id>.md, ejecuta lint, registra el gasto, pinta _v2 y envíalo de vuelta a QA. Si la causa estaba en el libro de contabilidad o en el bloqueo de estilo (un bloqueo faltante para todos), corrígelo allí y vuelve a hacer lint de cada prompt.
Casos especiales
- Páginas de libro ilustrado: nombra el diseño (doble página 3:2, página 3:4, viñeta 1:1 sobre fondo transparente) y el área de texto en cada prompt. Todas las palabras se colocan en el libro, nunca se pintan.
- Fotogramas clave de video: pinta el primer fotograma (y el último cuando el movimiento debe terminar en un lugar exacto) a través de esta misma gramática; el prompt de movimiento es un paso separado, ejecutado solo después de que el fotograma clave pase QA.
- Poses clave (
poses: 2): un prompt por pose, idénticos excepto la ranura MOMENT, para que encajen limpiamente. - Láminas: ubicaciones vacías, sin personajes, reutilizadas en varios planos; llevan el escenario para que los prompts sean cortos.
Salida
prompts/<id>.mdpara cada plano pintado, todos pasando el lint.continuity.yamlcon la entrada de cada plano, pasandoledger.py check.art/film/pinturas, nombradas por id, listas para QA.
Lista de verificación antes de cada lote
-
ledger.py checkpasa -
ledger.py promptspasa para este lote - Referencias adjuntas en orden REFERENCES; las versiones de hoja correctas
- Gasto registrado; lote de cuatro o menos
- El lote anterior tiene sus veredictos de QA
Tabla de reparación
| Hallazgo de lint o QA | Qué ranura corregir |
|---|---|
| no comienza con el bloqueo de estilo | 1: pega el look, sin editar |
| falta handle o bloqueo de escala | 4: pega desde el libro de contabilidad; añade la proporción a algo en cuadro |
| falta ancla de utilería o estado | 10: pega desde el libro de contabilidad |
| falta cláusula de color prohibido | 11: pega el prompt de la regla |
| usa un nombre | 4 y en cualquier otro lugar: reemplázalo con el handle |
| tamaño incorrecto o recuento incorrecto en la pintura | 4: bloqueo de escala y un recuento exacto; luego la barra de escala de la hoja |
| sujeto iluminado de forma plana | 2: la cláusula de relight; 7: una luz con una fuente |
| texto o letras pintados | 9 y 12: el área de texto es para código; "text" en la cola de avoid |
Referencias
references/batching.md: planificación de lotes, nomenclatura, versiones y un lote trabajado de una película real