¿Qué hace FilmForge Style Lock?
Una película hecha de generaciones separadas solo se ve como una sola película si cada imagen se hace de la misma manera: un modelo, una configuración, una oración de apariencia pegada palabra por palabra, la ficha de cada personaje adjunta a cada prompt y un orden fijo para todo lo demás. Este skill escribe style-lock.yaml, las fichas de personaje y la sección de personajes de continuity.yaml, luego prueba el bloqueo con 2 a 4 fotogramas de prueba antes de que se pueda gastar en la etapa de pintura.
Rutas: scripts/, templates/ y config/ a continuación son carpetas dentro de este skill (el directorio base que se muestra cuando se carga), colocadas allí por ./install.sh. Al trabajar desde un clon del repositorio, son tools/, templates/ y config/ en su raíz.
Paso 1. Un modelo, una configuración
Elige una vez y nunca mezcles dentro de una película. El valor predeterminado para películas pintadas: GPT Image 2.5, alta calidad, 2K, 16:9 (2.75 créditos por pintura), escalado a 4K en código. Un libro ilustrado puede usar calidad media (aproximadamente 1 crédito) porque las páginas se ven más pequeñas y fijas. Registra bajo model: con el model_id de la tabla de precios.
Si el aspecto visual no está decidido, pinta el mismo fotograma de prueba en dos o tres aspectos candidatos (baratos) y elige a ojo al 100%. No bloquees en una miniatura.
Paso 2. La oración de aspecto
Una oración, que abre cada prompt palabra por palabra. Nombra el medio, la línea, el color, la textura y la luz, y apunta a las referencias: "exactamente al estilo de las fichas adjuntas". Aspectos trabajados de películas reales (más en references/looks.md):
Un fotograma de una película de anime 2D dibujada a mano, exactamente al estilo limpio de las imágenes adjuntas: líneas de tinta seguras, tramado solo en las sombras, color cel plano, rostros expresivos de anime. Sin textura pictórica, sin ruido.
Ese es el bloqueo de Simorgh. El libro ilustrado de Buried Soul usó dos, porque su dibujo llevaba la historia: un aspecto VIVO (contornos de tinta-pincel al estilo Cartoon Saloon con construcción visible a lápiz, formas gráficas planas, acuarela y gouache en capas, nudos celtas, líneas de canción doradas brillantes) y un aspecto CONGELADO (el mismo estilo gobernado con una regla: líneas de grabado rectas, tramado gris, perspectiva medieval plana, pizarra, ceniza y hueso; solo las chicas mantienen sus colores). Usa un segundo aspecto solo cuando el cambio de dibujo es parte de la historia.
Paso 3. La cola de evitar
Una línea, que cierra cada prompt palabra por palabra: hacia dónde se desvía el modelo. La cola estándar:
Evitar: render 3D, fotorrealismo, texto, marca de agua, dedos extra, rostros distorsionados. Añade solo aquello hacia lo que este aspecto se desvía (anime, plástico, CGI, un medio incorrecto). Las negaciones que pertenecen a una sola toma van en la ranura LOCKS de esa toma.
Paso 4. Paleta y reglas de color
Nombra las muestras en palette: y el guion de color por escena en continuity.yaml (colour.script). Convierte cada regla de color de la historia en una regla forbid con una cláusula de prompt: la cláusula va en cada prompt que cubre la regla, y ledger.py palette mide cada pintura contra ella. Ejemplo: el cielo ardiente de Simorgh no permitía azul hasta la toma 41; cada prompt antes llevaba "Absolutamente nada de azul".
Paso 5. Lenguaje de lente y composición
Para una película pintada: las pinturas se mantienen como fotogramas de película, por lo que la composición hace el trabajo de la cámara. Escribe la sensación de la lente (distancia focal, altura), lo que nunca sucede (sin ojo de pez, sin inclinación) y las reglas de composición (sujetos en tercios, un área tranquila para palabras cuando una toma las tiene).
Paso 6. Fichas de personaje (templates/character-sheet.md)
Una ficha por personaje, adjunta a cada prompt en el que aparece ese personaje.
- Paneles de frente (frente, espalda, cara), luz plana sin sombras sobre un campo gris medio liso, para que no se hornee la iluminación. Estudios de rostro y mano para personajes estilizados; expresiones: neutra, la emoción clave, su opuesta.
- Una barra de escala: el personaje dibujado junto a cada personaje o accesorio con el que comparte fotogramas, a tamaño relativo real. Esta es la lección de una abubilla dibujada demasiado pequeña en cinco fotogramas de Simorgh: la escala debe vivir en la ficha y en el libro mayor, nunca en la esperanza.
- Los personajes no humanos obtienen una ficha de material: de qué están hechos, una lista de materiales incorrectos ("ascuas, no pelaje, no vidrio"), cómo se mueven.
- Cada prompt de toma lleva una cláusula de reiluminación: "reiluminar a esta escena; no copiar la luz plana de la ficha".
Paso 7. Identificadores, anclas, bloqueos de escala
Para cada personaje escribe en continuity.yaml: un identificador (el nombre visual que usa cada prompt: "la niña de la capucha roja de punto"), un ancla (el aspecto completo en una oración, pegada palabra por palabra), un bloqueo de escala (una proporción con algo siempre cercano) y añade el nombre del personaje a names:. Los nombres nunca van en los prompts: un modelo puede pintar un nombre como texto, y un nombre no proporciona información visual.
Paso 8. La gramática del prompt (cada pintura, este orden)
| # | Ranura | Qué va |
|---|---|---|
| 1 | LOOK | la oración de aspecto, palabra por palabra |
| 2 | REFERENCES | qué rige cada adjunto, en orden de adjuntos; la cláusula de reiluminación |
| 3 | SHOT | encuadre, altura de cámara, sensación de lente, quién está en qué tercio |
| 4 | SUBJECT AND SCALE | el identificador de cada personaje, ancla y bloqueo de escala; tamaños como proporciones; conteos ("exactamente un búho") |
| 5 | MOMENT | el instante único del latido; emoción mostrada en rostro y cuerpo |
| 6 | SETTING | lugar, clima, hora del día, qué hay en el fondo |
| 7 | LIGHT | dirección, calidad, temperatura y su fuente en el mundo |
| 8 | COLOUR | las palabras del guion de color de la escena |
| 9 | TEXT AREA | "mantén el tercio superior tranquilo: cielo pálido para texto" (solo cuando las palabras van allí) |
| 10 | CONTINUITY | accesorios y estados, palabra por palabra del libro mayor |
| 11 | LOCKS | cláusulas de color prohibido, palabra por palabra; negaciones específicas de la toma |
| 12 | AVOID | la cola de evitar, palabra por palabra |
ledger.py prompts verifica las ranuras 1, 4, 10, 11 y 12 mecánicamente antes de que se gaste cualquier crédito. Detalles y un ejemplo completo: references/prompt-grammar.md.
Paso 9. Probar el bloqueo
Pinta las fichas, los platos de escenario vacíos y de 2 a 4 fotogramas de prueba (las tomas que deben hacer que la gente sienta algo). Ejecuta forge-frame-qa sobre ellos al 100%. Vuelve a pintar una ficha ahora, no después: cada pintura hereda sus defectos. Luego production.py signoff style --by <tú> --note "<lo que leíste>".
Formato de salida
style-lock.yaml(plantilla): modelo, looks, default_look, avoid, grammar, references, lens, palette, max_chars.- Un prompt por ficha y plato en
prompts/, las fichas mismas enart/sheets/. continuity.yaml: personajes (handle, anchor, scale), names, colour script y forbid rules.- Las pruebas con sus veredictos de QA.
Lista de verificación
- Un modelo y configuración, registrados con su id de tabla de precios
- Oración(es) de aspecto y cola de evitar escritas; sin nombres en ninguna
- Cada personaje: ficha con barra de escala, identificador, ancla, bloqueo de escala; nombre en
names: - Guion de color y cada regla de color como un
forbidcon una cláusula de prompt - Fichas, platos y pruebas leídos al 100% y aceptados
- Firmado
Tabla de reparación
| Síntoma | Solución |
|---|---|
| Las pinturas divergen en estilo | La oración de aspecto no está palabra por palabra en cada prompt, o se mezclaron dos modelos |
| Los rostros cambian entre tomas | La ficha no se adjuntó, o el ancla se parafraseó; adjunta y pega |
| Un personaje sale del tamaño incorrecto | No hay bloqueo de escala en el prompt, o no hay barra de escala en la ficha |
| Nombres o palabras aparecen pintados en el encuadre | Un nombre o texto entre comillas en el prompt; usa identificadores; el texto pertenece al código |
| Escenas con luz de estudio plana | Se copió la luz plana de la ficha: añade la cláusula de reiluminación |
| Se cuela un color prohibido | Falta la cláusula en LOCKS, o los umbrales de la regla son demasiado flexibles; mide con ledger.py palette |
Referencias
references/prompt-grammar.md: reglas de cada ranura con un prompt completo anotadoreferences/looks.md: aspectos trabajados y prompts de fichas de producciones reales, y cómo escribir uno nuevo