Communitygithub.com

avalner/living-paintings

Crea videos en los que una cámara se acerca a un cuadro enmarcado en una habitación, la escena representada cobra vida y, opcionalmente, la cámara retrocede. Úsalo para оживающие картины y videos posteriores de la serie Paintings; no para películas genéricas o ediciones de imágenes independientes.

¿Qué es living-paintings?

Este skill está diseñado para la composición y diseño visual de videos de pinturas. Utiliza el controlador `comfy-film` instalado para generación, revisiones, recuperación y entrega final. Es el mismo controlador en todos los agentes (Codex, DeepSeek Harness y Claude Code), que impulsan el mismo script `film.py`, diferenciándose solo en las herramientas circundantes. El skill separa el movimiento de la cámara en la habitación de la animación de la obra de arte: la aproximación usa un recorte/redimensionado determinista de la obra original, la escena viva comienza con un still desde el punto final de la aproximación usando I2VA, y el retroceso congela el último fotograma aceptado y aplica el movimiento inverso. Incluye reglas para evitar saltos de luminancia en la unión, pautas de revisión, finalización con música y almacenamiento de decisiones en `brief.md`. El proyecto de ejemplo `$Paintings/Living Cafe Painting` contiene las decisiones y fragmentos aceptados.

Compatible con✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/avalner/comfy-film-kit/tree/HEAD/skills/living-paintings

Preguntar en tu IA favorita

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

Documentación

Pinturas vivientes

Usa este skill para el diseño visual y la composición de videos de pinturas. Utiliza el controlador comfy-film instalado para generación, revisiones, recuperación y entrega final. Es el mismo controlador en cada agente — Codex (~/.codex/skills/comfy-film/SKILL.md), DeepSeek Harness (~/.dsh/skills/comfy-film-dsh/SKILL.md) y Claude Code (~/.claude/skills/comfy-film-dsh/SKILL.md) — todos impulsan el mismo $Tools/comfy-film/scripts/film.py; solo las herramientas circundantes difieren. Lee las referencias relevantes según sea necesario; no recrees sus controladores. Para indicaciones H3 sustanciales usa h3-prompt-writing.

Diferencias de entorno (Codex → DeepSeek Harness / Claude Code)

Hábito de CodexQué hacer en su lugar
Panel del navegador de Codex para la página de progresoIniciar progress.py --serve como un trabajo en segundo plano y publicar la URL verificada desde .pipeline/progress-server.json
Herramienta de menú para aceptar/cambiar/rechazarask_user_question con etiquetas de dos palabras; los enlaces y números van en el mensaje de arriba
Imágenes que se renderizan de confianza en el chatEnlace de ruta entre paréntesis angulares para imágenes/documentos; http://127.0.0.1:8199/watch/... para cada clip (servidor: comfy-film-dsh/scripts/serve-media.py)
Redacción delegada a un subagenteRedactar en el padre; DSH no tiene delegación de redacción para estas películas
Procesamiento finalcomfy-film-dsh/scripts/finalize_delivery.py --input ... --no-upscale

Las reglas de publicación, revisiones y montaje no cambian; residen en el skill comfy-film.

Iniciar o reanudar

  • Mantén los proyectos bajo $Paintings/<Nombre en inglés>. Almacena la obra de arte original, referencia de la habitación, indicaciones, tomas generadas, clips de montaje y exportaciones finales dentro de ese proyecto. Evita dependencias del portapapeles/archivos temporales o de la carpeta de salida de otro proyecto.
  • Al reanudar, ejecuta film status --project PROJECT y lee el brief.md actual. El estado técnico reside en film.json; las aprobaciones no se infieren de la existencia de archivos.
  • Para una pintura nueva, lee workflow.md antes de diseñar fotogramas clave o generar video. Contiene la receta probada y fallos específicos de Living Cafe Painting.
  • Reutiliza el formato, la duración, el sonido y las elecciones de cámara proporcionados por el usuario. Los 5s de aproximación + 10s de animación + 5s de retroceso de la película anterior son un ejemplo, no una elección automática para cada pintura.

Separar el movimiento de la habitación de la animación de la obra

  1. Diseña una referencia de habitación con el cuadro enmarcado de frente y suficiente espacio alrededor para la aproximación prevista. Mantén la obra de arte original de alta resolución como una fuente separada.
  2. Cuando el usuario quiera que la obra esté estática durante la aproximación, compón esa obra original en el fotograma y anima un recorte/redimensionado plano y uniforme de forma determinista. No le pidas a H3 que invente el movimiento de la habitación a la calle: en el proyecto probado cambió la perspectiva interna. No amplíes la pequeña pintura horneada en la imagen de la habitación: se vuelve borrosa.
  3. Renderiza la aproximación de modo que su fotograma final esté completamente dentro de la obra. Verifica que la obra original tenga suficientes píxeles para el recorte más ajustado. Un lienzo de habitación de alta resolución ayuda a la precisión de la composición, pero no agrega detalle a la obra; conserva los píxeles de la fuente original hasta el muestreo de salida final.
  4. Inicia la escena viva desde el punto final de la aproximación aceptada. Esto es deliberadamente una nueva acción desde una pose fija: usa I2VA con ese still, en lugar de llevar la habitación/aproximación como una guía en movimiento. La guía predeterminada en comfy-film sigue siendo apropiada para continuar una acción ya viva, no para esta transición.
  5. Usa una indicación afirmativa corta que describa el punto de vista fijo de la calle/paisaje y algunos movimientos pequeños dentro de la escena representada. No describas entrar o atravesar la pintura. Consulta el patrón de indicación exitoso en workflow.md.
  6. Para un retroceso con obra estática, congela el último fotograma seleccionado real de la escena viva aceptada, regístralo en la composición de alta resolución de la habitación/obra y anima el recorte/redimensionado plano inverso. No reinicies las poses anteriores de los personajes de la obra original en la unión. Inspecciona los bordes en busca de costuras de registro; usa difuminado restringido solo donde sea adecuado.

Mantén el movimiento de la cámara y el movimiento representado independientemente controlables. Los movimientos de cámara generativos pueden usarse cuando el usuario quiera cambios de perspectiva; el método de obra plana se aplica al concepto de obra estática.

La unión con la toma viva es donde el ojo detecta un salto

H3 no copia su imagen de acondicionamiento: vuelve a renderizar sus primeros fotogramas, que salen más planos y un par de luma más oscuros, con un cielo redibujado. Contra el nítido fotograma compuesto de la aproximación, esto se lee como un paso de brillo en el corte aunque la escala y el desplazamiento coincidan exactamente. En Living Tulip Balloons el corte tuvo el mayor paso de luma de un solo fotograma de la película (-2.04) mientras que la unión midió 0 desplazamiento y 1.000 de escala.

Mídelo, no lo adivines: decodifica el corte ensamblado una vez e imprime la media de luma por fotograma; la unión no debe ser el paso más grande de la película. Cuando lo sea, reemplaza los primeros 12 fotogramas de la toma con una disolución determinista que comience en el último fotograma real de la aproximación y converja en los propios fotogramas de la toma (peso k/12). No se reajusta nada, no se inventa nada, y el primer fotograma mostrado de la toma es exactamente la imagen en la que se detuvo la cámara. Receta y números: workflow.md.

Revisiones y finalización

  • Sigue las puertas de revisión de comfy-film: fotograma, clip y final. El ajuste determinista de las fuentes aprobadas y la extracción de puntos finales heredan la aprobación de su fuente; una nueva habitación generativa o redibujo de obra necesita su propia revisión.
  • Antes de mostrar un candidato de animación, inspecciona su línea de tiempo completa en busca de manos en primer plano, paneles/ventanas que se abren, movimiento de cámara no deseado, deriva del diseño, artefactos de personajes y pérdida de detalle. Una decodificación exitosa por sí sola no es aprobación visual. En caso de fallo, divúlgalo y sigue las reglas de reintento autorizadas de comfy-film.
  • Usa los puntos finales recortados reales para las uniones. H3 redondea la duración; elimina solo los fotogramas sobrantes necesarios para cumplir con el plan seleccionado. Conserva las fuentes y versiones de clips aceptadas.
  • Con música proporcionada, mantén el video sin cambios cuando sea posible; guarda una nueva versión final. Ajusta el balance música/ambiente y los fundidos para la pista proporcionada en lugar de reutilizar ciegamente la mezcla de la primera película.
  • La mejora de escala final es opcional: usa finalize_delivery.py --no-upscale a menos que se solicite explícitamente. Produce H.264 yuv420p/AAC con faststart y verifica la decodificación. Proporciona un enlace local MP4 en el que se pueda hacer clic; un video en línea solo no fue visible para el usuario en el chat probado.
  • Guarda la geometría seleccionada, las versiones de fuentes, las indicaciones, las tomas aceptadas, los recortes, la mezcla y el estado de la revisión final en brief.md. Registra una nueva lección reutilizable aquí solo cuando cambie decisiones futuras; mantén las coordenadas únicas en el proyecto.

Ejemplo existente

$Paintings/Living Cafe Painting es el ejemplo probado. Su brief.md conserva las decisiones y variantes rechazadas; clips/ contiene segmentos aceptados; .pipeline/drafts/prompts/part2-v4.txt es la indicación exitosa de la escena viva. La versión final v2 incluye la música del usuario y aún espera la aprobación explícita de la película final. Estos hechos no aprueban películas futuras ni autorizan la publicación.

Skills relacionados