Communitygithub.com

gallowforge/forge-motion

FilmForge motion: planifica la vida de cada plano en código en lugar de créditos (sostiene pintados que cobran vida con niebla, cenizas, nieve, lluvia, ascuas, destellos, barridos de luz, parpadeo de fogata, ondulación térmica, sacudidas, relámpagos, grietas en vidrio, transiciones, hilos dorados, palabras escritas a mano y títulos), asigna cada efecto a los parámetros exactos del renderizador de tubería de película pintada, aplica correcciones de QA de cuadro, exporta la línea de tiempo de edición y renderiza la vista previa; decide cuándo el video pago vale sus créditos. Usar...

¿Qué es forge-motion?

FilmForge Motion es una habilidad especializada para el agente AI diseñada para dotar de vida a pinturas estáticas dentro de un flujo de trabajo de película animada. Su propósito principal es generar y aplicar un plan de movimiento detallado para cada plano de una película, reemplazando escenas de video real generado por IA cuando el código puede lograr el efecto de manera más económica y artística. La habilidad lee la información de cada plano (ritmo, estado de ánimo, partitura musical) y selecciona de un vocabulario de efectos que incluyen niebla, partículas (cenizas, nieve, lluvia, ascuas, destellos), parpadeo de fogata, ondulación térmica, sacudidas de cámara, transiciones, grietas en vidrio, hilos dorados animados y texto escrito a mano. Escribe el campo `motion` en el archivo `shotlist.yaml` del plano con parámetros precisos para el renderizador de tubería de película pintada (Python/GLSL). Luego aplica correcciones de garantía de calidad (QA) desde `qa.yaml`, exporta la línea de tiempo a `code/timeline.py` y renderiza una vista previa de video con la partitura musical. La habilidad decide explícitamente cuándo el video generado por IA (como Kling 4.0) es necesario para efectos que el código no puede falsificar, como vuelos reales o transformaciones culminantes. Está diseñada para plataformas de agente AI que ejecutan scripts locales (Claude Code, Cursor, Codex) y se basa en una estructura de proyecto con carpetas `scripts/`, `templates/` y `config/`.

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

Preguntar en tu IA favorita

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

Documentación

FilmForge Motion

Las pinturas se sostienen como fotogramas de película; sin zooms, sin deriva. El movimiento proviene del interior del cuadro: partículas, niebla, parpadeo, ondulación, luz, todo renderizado en la GPU sin costo. El video pago se reserva para lo que el código no puede hacer (un vuelo real, una transformación que es el clímax de la película). Esta habilidad llena el campo motion de cada plano, aplica las correcciones de QA, exporta la línea de tiempo para el renderizador y renderiza la vista previa que el director aprueba.

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

El renderizador es painted-film-pipeline (Python y GLSL; módulos nombrados a continuación). Todos los valores de píxel son 4K (3840x2160); el renderizador los escala por K = W / 3840, por lo que una vista previa a 1080p usa los mismos números.

Paso 1. Leer el plano

Para cada plano: su ritmo, el estado de ánimo de su escena y guión de color, su duración después del re-tiempo, la música debajo (frases, hits en beatmap.json), lo que ya está en la pintura (fuego, mar, cielo, vidrio). La vida debe pertenecer al mundo de la pintura: ascuas se elevan de un fuego que está pintado allí; nieve cae donde está el cielo.

Paso 2. Elegir su vida (el vocabulario)

EfectoParámetro (campo del plano)Valores
Banda de niebla a la derivafog + fogc(fuerza 0..1, y donde comienza, y donde está completa, velocidad de deriva); color (r, g, b) 0..1
Barrido de luz sobre reflejossweep(periodo s, ancho de banda px, intensidad, 0)
Parpadeo de fogata alrededor de un puntoflick + fireamplitud (0.07 a 0.45); (x, y, radio px)
Ondulación térmica en una bandashim(y completa, y cero, 0, fuerza)
Sacudida de cámarashake(inicio s, duración s, amplitud px)
Transición de entrada / salidatin, tout("fade" o "white", segundos); por defecto es un corte directo
Reencuadrecrop(x0, y0, x1, y1) en píxeles de origen
Tinte de partículaashc(r, g, b)
Partículaslifeuna receta o una lambda sobre los sistemas de partículas a continuación
Relámpagoboltslista de tiempos en el plano
Grieta en vidriocrack(inicio s, duración s)

Sistemas de partículas (painted.py): ash(t, n, wind=(vx, vy), size=(min, max), alpha, seed) para ceniza, polvo y nieve; flakes(...) para copos grandes y suaves; sparkles(t, n, alpha, size) para destellos y estrellas; streaks(t, n, speed) para lluvia; embers(t, n, src=(x, y), spread, rise, life) para ascuas que se elevan de una fuente. Recetas de la película real (film_cut.py): SNOW(n, wind), EMB(n, alpha), GLINT, RAIN, STARS(n), GOLD. Significados completos de los parámetros: references/pipeline-modules.md; recetas probadas por estado de ánimo: references/effects-cookbook.md.

Gráficos (graphics.py, overlays.py): cintas de hilos dorados que se dibujan, se mecen con la música y chasquean (T(points, t0, draw, w)); palabras escritas a mano que se escriben de izquierda a derecha (W(text, t0, x, y, size)); nombres de lugares que se forman a partir del material de la propia escena y se desvanecen (V(...)); el final del título.

Paso 3. Dejar que la música lo impulse

graphics.Drive mide la partitura por fotograma (nivel y pulso). El florecimiento, el destello de ascuas, el brillo del hilo y la respiración del texto lo siguen, por lo que un hit hace que las ascuas brillen sin necesidad de un fotograma clave. Coloca transiciones y sacudidas en los hits de beatmap.json (shake inicio = tiempo del hit menos el inicio del plano).

Paso 4. Escribir el campo motion

En shotlist.yaml, por plano (ejemplo: un plano de bosque en llamas de Simorgh, y el haz de la polilla linterna):

    motion:
      life: EMB(320)
      flick: 0.09
      fire: [1920, 1300, 2600]
      shim: [2160, 300, 0, 0.8]
      ashc: [0.62, 0.55, 0.5]
    motion:
      tin: [white, 0.4]
      sweep: [3.0, 520, 0.35, 0]
      life: GOLD
      shake: [0.0, 0.4, 10]

Un plano que no necesita nada recibe motion: none (la puerta quiere que cada plano esté decidido).

Paso 5. Aplicar las correcciones de QA

Para cada fix en qa.yaml: ejecuta su llamada (grade.py recolor o blue, un parche, un crop en el plano), escribe el archivo _g, vuelve a medir con ledger.py palette, luego establece done: true. La gradación coincidente (niveles de placa) y la ampliación a 4K son automáticas en el renderizador.

Paso 6. Exportar, renderizar, mirar

python3 scripts/shotlist.py export-cut shotlist.yaml --paintings art/film > code/timeline.py

imprime la línea de tiempo como líneas P_() para film_cut.py. Luego, en el renderizador:

W=1920 H=1080 python film_cut.py still out/frames 6.0 12.0 24.0     # fotogramas fijos en los hits de la historia
python film_cut.py sheet out/sheet.jpg                              # un fotograma por plano
python film_cut.py video film/preview_1080p.mp4 audio/score.wav     # la vista previa con la partitura

Mira la vista previa con sonido. Revisa los fotogramas fijos en cada hit. Luego el director aprueba la etapa de movimiento.

Cuándo pagar por video

Solo cuando el movimiento es la historia y el código no puede falsificarlo: vuelo (el lanzamiento de Simorgh: clips reales con rampas de velocidad), un nacimiento o transformación en el clímax. Calcula su costo en budget.py (Kling 4.0: 16.25 créditos por 5 s a 1080p, más la pintura del fotograma clave); pinta los fotogramas clave primero y pásalos por QA; haz un borrador barato donde el modelo ofrezca un borrador y finaliza una toma. Todo lo demás se cuenta en poses clave pintadas que chasquean (poses: 2), como el anime sostiene una pose.

Salida

  • el campo motion de cada plano (o none)
  • code/timeline.py de export-cut
  • las correcciones aplicadas (archivos _g, done: true en qa.yaml)
  • film/preview_1080p.mp4, fotogramas fijos en los hits, una hoja de un fotograma por plano

Lista de verificación de puerta

  • Cada plano pintado tiene un plan de movimiento o motion: none
  • Cada corrección de QA aplicada y re-medida
  • La vista previa vista con sonido; fotogramas fijos en cada hit revisados
  • Aprobado

Tabla de reparación

SíntomaArreglo
Se siente como una presentación de diapositivasCada sostenido necesita una capa viva ligada a su mundo (partículas, niebla, parpadeo); varíalas por escena
Los efectos parecen pegadosTiñe las partículas con ashc de la pintura; emisores en fuentes pintadas; color de niebla del cielo
Fotogramas ocupados y ruidososMenos partículas (reduce n a la mitad), menor alpha; una familia de efectos por escena
Los planos de diferentes generaciones no se cortan bienLa gradación coincidente está desactivada para esa placa: verifica niveles; una gradación, grano y viñeta para todos
Los efectos ignoran la músicaHits no utilizados: coloca sacudidas, destellos y transiciones en los hits del beatmap
El texto es difícil de leerMuévelo al área tranquila de la pintura (text_area), aumenta el tamaño, reduce la velocidad de escritura

Referencias

  • references/pipeline-modules.md: los módulos del renderizador y cada parámetro
  • references/effects-cookbook.md: recetas probadas por estado de ánimo, de una película terminada

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-frame-qa

FilmForge frame QA: inspects every painting at full size against the character sheets and the continuity ledger, measures colour rules, palette and exposure with tools, scores it on a nine-criterion rubric and decides: accept, fix in code (naming the module and the exact parameters), or repaint (with the root cause and the full corrected prompt). Use this skill whenever paintings, stills, keyframes, character sheets or book pages come back from an image model, when the user asks whether...

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