Communitygithub.com

ZJU-REAL/Easel

Convierte un tema en un video corto listo para publicar: encadena automáticamente guión → imágenes/video IA → locución → subtítulos → BGM → edición final, organizando las piezas de producción de Easel en una línea de montaje de 'un solo clic para producir'. **Videos individuales, orientados a voz en off o noticias; por defecto, cada frase se empareja con una imagen + Ken Burns con easing, y solo se genera video por fragmento cuando se necesita dinamismo**. Se usa cuando el usuario dice: 'generar video de un solo clic', 'hacer video corto automáticamente', 'crear video a partir de un tema', 'hazme un video', 'todo en uno para voz en off', 'producción automática', 'generación de video corto con un clic'. **Para dramas con trama/personajes/diálogos/giros/múltiples episodios, usar short-drama (cada plano fuerza generación de video a partir de imagen, sin usar imágenes estáticas); solo para guiones usar video-script; solo para generar un fragmento individual usar ai-video-gen.**

¿Qué es Easel?

Este skill, llamado 'Easel' (ZJU-REAL/Easel), es una capa de orquestación de nivel experto para la generación automatizada de videos cortos. Toma un tema o guion proporcionado por el usuario y lo transforma en un video final completo ejecutando una pipeline secuencial: primero, utiliza el skill 'video-script' para desglosar el tema en un guion de voz en off con múltiples frases (storyboard). Luego, para cada frase, genera o selecciona una imagen (o un clip de video corto si se requiere dinamismo) utilizando 'ai-image-gen', 'ai-video-gen', o imágenes prediseñadas. Después, sintetiza la locución con 'tts-voiceover' (preferiblemente con APIs de pago para una voz más natural), genera subtítulos con 'auto-subtitle', y opcionalmente añade música de fondo con 'ai-music'. Finalmente, un script 'assemble.py' compone todos estos activos (storyboard JSON, locución, BGM, subtítulos) en un archivo de video MP4 listo para publicar. La principal utilidad de Easel es ahorrar horas de trabajo manual en la edición de videos, ofreciendo un flujo automatizado y personalizable que maneja desde el guion hasta la exportación, soportando plataformas como Claude Code, Cursor y Codex. El skill maneja de forma inteligente la falta de APIs (degradando ciertos pasos), siempre solicita confirmación sobre la relación de aspecto del video (horizontal vs vertical), y documenta todos los activos intermedios para permitir ediciones posteriores.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ZJU-REAL/Easel/tree/HEAD/skills/openclaw/auto-short-video

Preguntar en tu IA favorita

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

Documentación

Video Corto de Un Solo Clic (Orquestación de Extremo a Extremo)

Introduce un tema y obtén automáticamente un video corto listo para publicar. Este SKILL es la capa de orquestación: encadena las piezas de producción existentes en una línea de montaje — Guion (video-script) → Imagen por frase (ai-image-gen) o fragmento (ai-video-gen) → Locución (tts-voiceover) → Subtítulos (auto-subtitle) → BGM (ai-music) → Edición final (scripts/assemble.py). Inspirado en el enfoque de motor de video corto automático de Pixelle-Video / MoneyPrinterTurbo.

Entrada

  • Tema / Guion (obligatorio)
  • Opcional: duración objetivo, estilo, si incluir locución/subtítulos/BGM, si las imágenes son generadas por IA o proporcionadas por el usuario
  • Regla estricta de confirmación de relación de aspecto: si el usuario o la tarea upstream no especifica claramente si es horizontal/vertical (o 16:9/9:16/resolución específica), se debe preguntar y esperar confirmación antes de la producción/llamadas de pago; no se debe inferir silenciosamente desde la plataforma, el perfil o valores predeterminados. Si ya está especificado, no preguntar de nuevo.

Salida

El video final se escribe en outputs/nombre-del-tema/final.mp4; los storyboards, locuciones, subtítulos y el storyboard se escriben en outputs/nombre-del-tema/assets/.

Pasos de Ejecución (ajustables según sea necesario; los pasos que falten API key se degradan automáticamente o se pregunta)

  1. Escribir guion y storyboard: Usa video-script para convertir el tema en un guion de voz en off, dividido en N frases (cada frase es un plano), y cada frase acompañada de una descripción visual.

  2. Generar imágenes (una imagen o clip por plano):

    • Si hay API key de imagen → ai-image-gen text2img por frase (según la relación de aspecto confirmada)
    • Si se necesita dinamismo → ai-video-gen text2video/image2video
    • Si el usuario proporciona material propio → Usar image-editing pad para ajustar a la relación de aspecto confirmada
    • Si no hay nada de lo anterior → Seleccionar tarjetas prediseñadas según la relación de aspecto (vertical: card-xiaohongshu/poster-hero, horizontal: card-quote) y luego hacer pad para evitar desajustes de relación de aspecto.
  3. Locución: tts-voiceover sintetiza el guion en voz en off (generando también SRT). Si se ha configurado VOICE_PROVIDER, se usan voces de pago de alta calidad (con emoción, sonido realista); solo si no hay clave se recurre a edge (voz mecánica) — para una locución que no suene "artificial", es imprescindible configurar una clave de pago. Saltar si no se necesita locución.

  4. Subtítulos: Usar el SRT adjunto de TTS, o ejecutar auto-subtitle sobre la locución; también se puede dejar que assemble genere subtítulos automáticamente a partir de los captions de cada plano.

  5. BGM: ai-music genera música, o usar música proporcionada por el usuario. Opcional.

  6. Editar video final: Escribir los activos anteriores en un storyboard JSON y llamar al ensamblador:

    python skills/openclaw/auto-short-video/scripts/assemble.py assemble \
      --storyboard outputs/nombre-del-tema/assets/storyboard.json \
      -o outputs/nombre-del-tema/final.mp4
    

    Estructura del storyboard (elegir entre imagen/video; narración/bgm/subtítulos opcionales; si falta duration, se divide uniformemente según la locución):

    {
      "size": "<tamaño confirmado, ej. 1080x1920 o 1920x1080>",
      "image_motion": "ken-burns",
      "shots": [
        {"image": "outputs/nombre-del-tema/assets/shot1.png", "duration": 3, "caption": "Primera frase", "motion": "static"},
        {"video": "outputs/nombre-del-tema/assets/clip2.mp4", "caption": "Segunda frase"}
      ],
      "narration": "outputs/nombre-del-tema/assets/voice.mp3",
      "bgm": "outputs/nombre-del-tema/assets/bgm.mp3",
      "subtitle": "outputs/nombre-del-tema/assets/voice.srt"
    }
    

    image_motion establece el movimiento predeterminado para todas las imágenes; el motion de un plano individual puede sobrescribirlo: para fotos usar ken-burns, para diapositivas/gráficos/interfaces que contengan texto usar static (escalado proporcional + relleno de bordes, sin recortar ni desplazar). El ensamblador hace automáticamente: generar fotogramas estáticos o Ken Burns según image_motion, rellenar bordes para ajustar a la relación de aspecto, unir clips, mezclar locución + BGM (el BGM se reduce automáticamente), y quemar subtítulos.

  7. Entrega: Producir final.mp4, acompañado de una nota de producción (qué pasos se usaron, cuáles se degradaron).

Principios de Orquestación

  • Piezas opcionales: Los pasos que falten API key de imagen/video/TTS se degradan automáticamente (tarjetas prediseñadas como respaldo / saltar locución), sin bloquear el flujo completo, e informar al usuario qué se degradó.
  • Plan primero: Cuando se involucren múltiples APIs de pago (generación de imagen/video/música), primero explicar al usuario cuáles se llamarán, el tiempo/coste aproximado, y esperar confirmación antes de ejecutar.
  • Archivar productos intermedios: Las imágenes del storyboard, locuciones, subtítulos y el storyboard se escriben en outputs/nombre-del-tema/assets/, facilitando la sustitución individual y la reedición.

Percepción del Perfil

  • Con perfil: Tomar el tono/estilo visual de style.md para unificar el guion y los prompts de las imágenes; platforms.md solo se usa para sugerir relación de aspecto/duración, pero la relación de aspecto debe confirmarse; preferences.md filtra por reglas rojas.
  • Sin perfil: Confirmar primero si horizontal/vertical, luego usar un estilo de voz en off genérico.

Individual skills in this repo

This repo contains 9 individual skills — each has its own dedicated page.

ZJU-REAL/Easel

AI 视频生成:文生视频 / 图生视频 / 数字人首帧驱动。通过可插拔 provider(通义万相 Wan / 火山 Seedance / 快手可灵 / OpenAI 兼容)异步生成视频,用户自备 API key。当用户说 AI 视频生成、文生视频、图生视频、AI 生成视频、AI 短视频、让图片动起来、数字人视频、生成一段视频 时使用。与 video-strategy(选型/策略)、video-editing(剪辑处理)、clipify(切片)区别:本 SKILL 是从 0 用 AI 生成新视频。

ZJU-REAL/Easel

通用音频处理:音频剪辑/裁剪、格式转码(mp3/wav/m4a/aac)、音量归一化、从视频提取音轨、多段拼接、淡入淡出、变速(保音高)。当用户说“剪音频”“裁一段”“转成 mp3”“调音量/响度”“提取音轨/扒音频”“拼接音频”“淡入淡出”“加速/减速音频”“变速不变调”时使用。与 audio-denoise 的区别:audio-denoise 专做降噪,audio-editing 做除降噪外的通用音频操作(也内置 denoise 作为兜底)。

ZJU-REAL/Easel

自动字幕 / 语音转字幕:把音频或视频里的语音识别成字幕文件(SRT/ASS/TXT/JSON),可选把字幕烧录进视频。当用户说自动字幕、语音转字幕、视频加字幕、上字幕、转录、听写、字幕文件、生成字幕、烧字幕时使用。

ZJU-REAL/Easel

音乐卡点视频 / 踩点视频:检测背景音乐的节拍,让图片或片段在节拍点上切换,配推进/白闪特效,做出燃系'卡点'短视频。当用户说 卡点视频、踩点视频、音乐卡点、节奏卡点、按音乐切换、鼓点视频、踩节奏、beat 卡点、图片卡点、卡点混剪 时使用。基于 shared/scripts/beatsync.py(librosa 节拍检测)。与 slideshow-video 区别:slideshow 每图固定时长、柔和转场,本 SKILL 切换点由音乐节拍决定、硬切踩点带特效。

ZJU-REAL/Easel

Easel clipify: long English talk → punchline cuts → optional 16:9→9:16 face-pan/split → opus word-by-word ASS burn. Ships scripts + assets/preview.png. Part of 1.6k★ Easel suite.

ZJU-REAL/Easel

>- 通用图像处理加工:改尺寸/缩放、裁剪、补边适配平台尺寸、格式转换(png/jpg/webp)、 压缩到目标大小、加文字或图片水印、圆角、多图拼接、生成缩略图、读图片信息。 基于 image_ops.py 确定性处理。 使用时机:用户说"改尺寸"、"缩放图片"、"裁剪"、"压缩图片"、"加水印"、"转格式"、 "圆角"、"拼图/多图联排"、"缩略图"、"适配小红书/朋友圈尺寸"、"把图 pad 成 1:1"。 和 card-*(卡片类)的区别:card-* 是"HTML 设计→渲染出图", image-editing 只加工已有图片,不负责视觉设计。

ZJU-REAL/Easel

多角色对话配音:按 cast 和逐行对白为不同角色分配音色与情绪,合成多声线音轨和带角色名字幕。 当用户说“多角色/双人/剧本/对话配音、多人对白、不同角色不同声音、有声剧配音”时使用。 单一公共音色用 tts-voiceover;克隆本人音色用 voice-clone;整部短剧制作由 short-drama 编排。

ZJU-REAL/Easel

Easel video-highlights: CN/livestream highlight extract + stable static vertical reframe (sibling to clipify).

ZJU-REAL/Easel

>- 视频制作策略与工具选型:AI 视频生成模型对比、视频脚本结构设计、制作流程规划,覆盖产品演示/解说/社媒短视频场景。 当用户说"视频怎么做""视频选型""用什么工具做视频""视频制作流程""视频策略""视频系列规划"时使用。 和 video-script 的区别:video-strategy 做内容规划与工具选型,video-script 写具体某条视频的脚本。

Skills relacionados