Creador de Calcomanías Animadas
Convierte una imagen de referencia y un prompt de movimiento en una calcomanía animada corta y transparente. Deriva internamente el bloqueo de identidad, el plan de movimiento, la temporización de fotogramas, el plan de validación y la configuración de exportación; no hagas que el usuario rellene opciones rutinarias de producción.
Resuelve cada script y ruta de referencia contra el directorio que contiene este SKILL.md.
Entradas y límites
Solo requiere:
reference_image: una imagen estática que contenga un sujeto principal claro.prompt: lenguaje natural que describa la expresión, acción, texto, bucle o plataforma de destino deseada.
Admite personas, mascotas, mascotas corporativas, ilustraciones, objetos y logotipos. Si la imagen tiene múltiples sujetos plausibles y el prompt no identifica uno, pregunta una vez antes de generar. No prometas acción multi-sujeto estable, animación de escena o movimiento de cámara.
Produce una calcomanía por invocación. Para una serie de varias calcomanías, mantén las especificaciones de identidad compartidas, el orden del paquete, la nomenclatura de la versión y los activos de la marca en el proyecto propietario, luego invoca este Skill por separado para cada calcomanía. No conviertas la orquestación de paquetes específica del proyecto en una característica genérica del Skill.
Este es un paquete estándar de Agent Skills para anfitriones que admiten el estándar; no mantengas un segundo formato de instrucciones específico del anfitrión. El anfitrión debe proporcionar una capacidad de generación o edición raster condicionada por referencia que pueda preservar la identidad del sujeto. Utiliza la capacidad nativa del anfitrión y falla antes de la generación con un mensaje de capacidad claro cuando no esté disponible. agents/openai.yaml es metadatos opcionales de UI e invocación de OpenAI, no parte del contrato del flujo de trabajo.
Usa Python 3.10 o más reciente más los paquetes en requirements.txt para el procesamiento determinista. No hagas de OpenCV una dependencia requerida.
Salida predeterminada
Crea esta estructura a menos que el prompt la anule explícitamente:
output/<nombre>/
├── sticker.webp
├── source/
│ ├── frames/
│ │ ├── 000.png
│ │ └── ...
│ ├── rendered-frames/ # pista de fotogramas de alta resolución validada opcional
│ ├── reference.json # nombre base, hash y metadatos de la imagen
│ └── motion.json
├── validation/
│ ├── contact-sheet.png
│ └── report.json
└── exports/ # solo cuando se solicita una plataforma o formato adicional
└── <plataforma>/
Usa un output/<nombre>/ local al espacio de trabajo a menos que el usuario nombre otro destino local. Deriva <nombre> como un slug corto y seguro para sistemas de archivos a partir del sujeto y el evento semántico principal. Si ya existe, usa -2, -3, etc.; no sobrescribas un paquete existente por defecto. Respeta un nombre de versión o público explícito cuando el usuario lo proporcione.
Usa 1024×1024 RGBA para fuentes raster de tono continuo, ilustradas o generadas. Para píxel art nativo u otra cuadrícula estricta de baja resolución, preserva el lienzo lógico de origen y establece motion.resampling a nearest; no lo fuerces a través de un redibujado no entero de 1024×1024. Usa 4–8 fotogramas únicos, duraciones por fotograma, una duración total de aproximadamente 1.2–2.0 segundos y una pausa de 400–700 ms en el fotograma semántico más claro. Bucle por defecto. No crees preview.gif a menos que se solicite o que la plataforma de destino lo requiera.
Flujo de trabajo
1. Normalizar la solicitud
- Confirma que una imagen de referencia y un prompt de movimiento están disponibles. Extrae el sujeto principal, un evento semántico, el texto exacto, la intención de bucle y cualquier plataforma de destino nombrada.
- Si el sujeto es ambiguo, pregunta una vez. Si la imagen de referencia, el prompt o la capacidad requerida del anfitrión faltan, detente con un bloqueador claro antes de generar.
- Si no se nombra ninguna plataforma, produce el paquete neutro para plataformas. Una plataforma nombrada es una rama de exportación opcional después de que el paquete pase la validación.
- Selecciona el slug de salida antes de crear archivos, usando la regla de colisión anterior.
2. Bloquear identidad y planificar movimiento
Lee references/motion-plan.md. Inspecciona la referencia a tamaño completo y tamaño de icono pequeño, clasifica las características reconocibles como fijas, flexibles o eliminables, y escribe motion.json antes de producir los fotogramas finales.
Comprométete con un evento semántico principal, un pequeño conjunto de poses ancla, transiciones deterministas, capas de texto exactas, duraciones de fotograma y comportamiento de bucle. Genera solo lo que no se puede obtener de manera segura mediante transformaciones deterministas. Elige motion.resampling deliberadamente: lanczos para trabajo raster de tono continuo o ilustrado, y nearest para píxel art nativo u otra cuadrícula lógica estricta.
Completa esta etapa solo cuando el bloqueo de identidad sea explícito y cada elemento semántico solicitado tenga un fotograma planeado o una capa determinista.
3. Producir anclas y activos RGBA limpios
Lee las instrucciones de generación o edición raster del anfitrión antes de generar. Incluye siempre la referencia original al solicitar una nueva ancla, pide un sujeto aislado sobre transparencia o un color de trabajo plano de alta distancia, y genera la menor cantidad de anclas necesarias.
Inspecciona cada ancla inmediatamente contra el bloqueo de identidad. Rechaza la desviación de identidad antes de construir los fotogramas temporales. Si una ancla completa rechazada contiene una expresión o accesorio local utilizable, rescátala solo sobre una base aprobada y estable de identidad; registra la fuente del componente, la regla de extracción y la base aprobada en el plan de movimiento. Nunca vuelvas a etiquetar una imagen completa rechazada como aprobada.
Preserva el alfa limpio existente. De lo contrario, lee references/transparency.md, elige un color de trabajo lejos de la paleta del sujeto y ejecuta scripts/chroma_key.py. Mantén las sombras separadas cuando el prompt o la plataforma necesiten control independiente de sombras.
Completa esta etapa solo cuando cada ancla de fotograma completo sea utilizable, cada componente rescatado tenga un rol determinista acotado y cada activo no tenga fondo opaco, derrame de color, franja brillante, protuberancia recortada o contacto con el borde del lienzo.
4. Componer la animación creada
Crea un PNG RGBA por cada fotograma único creado. Preserva la relación de aspecto a menos que el movimiento solicitado requiera deformación. Renderiza el texto exacto en capas deterministas y dale a cada fotograma un propósito. Favorece la anticipación, la acción, una pausa semántica clara y una recuperación corta sobre un movimiento uniformemente temporizado.
Cuando un objeto acompañante presiona, se sienta sobre, lleva o toca al sujeto, alinéalo contra la silueta local debajo de su huella. No uses el borde del cuadro delimitador global del sujeto como plano de contacto cuando la superficie es curva, con muescas o deformada.
Completa esta etapa solo cuando la secuencia se lea sin nombres de archivo ni explicación y el bucle no tenga saltos, destellos o reinicios de posición no intencionados.
5. Empaquetar y ejecutar validación técnica
Ejecuta:
python <directorio-skill>/scripts/package_sticker.py \
--frames-dir <directorio-fotogramas-trabajo> \
--motion <motion.json> \
--reference-image <imagen-referencia> \
--output <output/nombre>
Pasa --expected-size <ANCHOxALTO> cuando el lienzo de origen difiera de 1024x1024. Usa --include-reference solo cuando el usuario quiera la original incrustada; de lo contrario, vincula su nombre base, hash, dimensiones, modo, formato y tamaño en bytes sin copiarla. Usa banderas de temporización o recuento de fotogramas no estándar solo cuando el prompt anule explícitamente los valores predeterminados. No continúes con la exportación de plataforma cuando la validación técnica falle.
Lee references/validation.md para conocer el contrato del informe y las comprobaciones deterministas. Mantén el paquete transaccional, trata el source/motion.json empaquetado como la fuente de verdad autocontenida, preserva las huellas digitales de los artefactos y mantén technical_validation separado de visual_validation.
Si motion.render está presente, trata sus fotogramas ordenados explícitos como una pista de renderizado opcional validada por separado. Mantén los fotogramas clave creados como predeterminados; nunca crees o selecciones la pista de renderizado en silencio. Lee las referencias de movimiento y plataforma para sus reglas de temporización, recursos y exportación.
Completa esta etapa solo cuando existan el WebP, las fuentes normalizadas, los metadatos de referencia, el plan de movimiento, la hoja de contactos, el informe técnico principal y cada informe de pista de renderizado aplicable, y todas las comprobaciones técnicas aplicables pasen.
Cada reempaquetado exitoso crea un informe nuevo con validación visual pendiente. Vuelve a ejecutar la validación visual después de cada reempaquetado; nunca preserves una validación visual anterior a través de artefactos modificados.
6. Inspeccionar, registrar y exportar opcionalmente
Lee references/validation.md y references/review-page.md. Genera una nueva página de revisión inmediatamente antes de la inspección o el intercambio:
python <directorio-skill>/scripts/generate_review.py <informe-validacion.json> \
--reference-image <imagen-referencia-original> \
--language <en|zh>
Omite --reference-image cuando el paquete contenga su referencia vinculada. Elige zh para una conversación en chino y en en caso contrario. Inspecciona el objetivo de revisión codificado real, el marcador de pausa semántica, el canal alfa sobre fondos de cuadrícula/claro/oscuro, las vistas de tamaño real y zoom 50×50, y la hoja de exposición de fotogramas. Los fotogramas creados o renderizados son evidencia de comparación; el WebP/GIF decodificado controla la página del paquete o exportación.
Registra el resultado con scripts/record_visual_validation.py. El informe debe conservar su huella digital exacta del artefacto, y deliverable_ready es verdadero solo cuando tanto la validación técnica como la visual pasan. Si el estado final debe aparecer en una página de revisión compartida, vuelve a generar la página después de registrarlo. Una página de revisión es HTML derivado desechable, no evidencia ni un entregable.
Si se solicita una plataforma, lee references/platform-exports.md, verifica las restricciones oficiales actuales y exporta solo debajo de exports/<plataforma>/ desde el paquete validado. Usa los fotogramas clave creados por defecto; selecciona una pista de renderizado declarada explícitamente solo cuando mejore materialmente la salida solicitada. Cada exportación solicitada necesita su propia validación técnica y visual.
Antes de la entrega, ejecuta scripts/doctor.py en el paquete exacto, la pista de renderizado y los informes de exportación que se entregarán. Doctor es de solo lectura; se espera incomplete mientras una validación visual aplicable esté pendiente. Lee references/doctor.md para la selección de destino y la salida JSON.
Reglas de decisión y recuperación
- Decide los detalles rutinarios de temporización, posición, escala, umbral de color de trabajo, compresión y slug de salida sin interrumpir al usuario.
- Un fallo técnico o visual causado por un problema seguro y reversible puede recibir un pase de corrección automática enfocado utilizando solo esos ajustes seguros. Reempaqueta, regenera la página de revisión y vuelve a inspeccionar; cada reempaquetado restablece la validación visual.
- Si la corrección aún falla, o una solución cambiaría la identidad, el significado, la generación de anclas o una salida pública explícita, detente y pregunta al usuario. Nunca anules una puerta técnica fallida con criterio visual.
- Si el usuario participa, comparte la nueva página de revisión y recopila comentarios en la conversación. El usuario no necesita ejecutar Python ni enviar un formulario.
Entrega
Usa el idioma de la conversación actual e informa siempre estos campos:
status:ready,incompleteoblocked;- ruta del paquete y ruta del informe de validación principal;
- ruta del informe de la pista de renderizado, si existe;
- ruta de la página de revisión, si se generó;
- cada exportación solicitada y su ruta de informe;
- resultado de Doctor para cada informe exacto entregado;
- salvedades no resueltas, comprobaciones visuales pendientes, requisitos de referencias externas o limitaciones específicas de la plataforma.
Nunca llames a un artefacto listo a menos que su informe exacto tenga technical_validation, visual_validation y deliverable_ready: true, y Doctor informe healthy para el límite entregado. No presentes HTML de revisión como un artefacto del paquete, evidencia de validación o entregable.
Regla de escalada
Pregunta al usuario solo cuando una elección faltante cambie el sujeto previsto, el significado solicitado o la salida pública irreversible. Pregunta una vez por un sujeto principal ambiguo; detente claramente cuando una entrada requerida o una capacidad del anfitrión no esté disponible. Realiza ajustes seguros a nivel de proyecto automáticamente dentro de la regla de recuperación acotada anterior.