Communitygithub.com

cordel

Crea vídeos explicativos cortos (9:16, 16:9 o 1:1) SIEMPRE en el estilo visual 'cordel' descrito en references/estilo.md. Recibe tema, formato, duración, resolución y motor; planifica escenas, dibuja storyboards, escribe la narración, anima, añade una pista única y entrega final/video-final.mp4 + final/manifesto.json verificados.

¿Qué es cordel?

La skill 'cordel' automatiza la creación de vídeos explicativos con un estilo visual único y consistente llamado 'cordel'. Es ideal para generadores de contenido, educadores o cualquier desarrollador que necesite producir vídeos cortos con una estética predefinida. La skill soporta los motores de IA locales (usando Python y PIL) y externos como Kling o Seedance, aunque estos últimos son experimentales. El proceso es altamente estructurado: primero se recopilan los parámetros del vídeo (tema, formato, duración, resolución y motor). Luego se planifican las escenas, se genera un storyboard riguroso que respeta las reglas de estilo guardadas en archivos de referencia, se escribe y anima el guión, se añade una narración (soportando TTS local o grabaciones), se monta con una pista de audio y se valida automáticamente. Todo el flujo está orientado a garantizar coherencia visual y auditiva, con verificaciones de calidad como la validación de storyboards y las hojas de contacto. La skill también es reflexiva: registra errores en 'licoes.md' para mejorar continuamente las reglas.

Compatible con✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/inematds/estilo-em-skill/tree/HEAD/exemplos/cordel/skill

Preguntar en tu IA favorita

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

Documentación

Skill de estilo: cordel

Esta skill crea vídeos siempre con el mismo aspecto. El ESTILO está en references/estilo.md (la biblia). El CONTENIDO proviene del pedido. Nunca copies personajes, logos o textos del vídeo que inspiró el estilo.

SKILL_DIR = la carpeta de este archivo. Los scripts están en SKILL_DIR/scripts/ y se ejecutan con python3. Trabaja en una carpeta de proyecto del vídeo (por defecto: la carpeta actual). Todo va a saida/ y final/ de esa carpeta.

Antes de todo

  1. Lee references/estilo.md, references/regras-storyboard.md, references/regras-video.md y, si existe, references/licoes.md (lo que ha salido mal con este estilo).
  2. Verifica las herramientas: ffmpeg -version, python3 -c "import PIL". Si falta algo → di qué instalar y para.

Paso 1 — los 5 datos (pregunta en texto libre lo que falte, sugiriendo el valor por defecto)

datoopcionespor defecto
temauna frase— (obligatorio)
formato9:16 · 16:9 · 1:19:16
duraciónsegundos; se redondea a múltiplo de 2,515
resoluciónej.: 1080x1920la del formato (9:16 → 1080x1920, 16:9 → 1920x1080, 1:1 → 1080x1080)
motorlocal (gratis, probado) · kling · seedance (solo prompts, no probados)local

Paso 2 — plan de escenas

python3 SKILL_DIR/scripts/cenas.py --tema "<tema>" --duracao <s> --formato <f> --resolucao <WxH> --motor <m>

Muestra cuántas escenas (2,5 s cada) y storyboards (hasta 6 escenas cada). Si avisa que normalizó la duración, comunícalo al usuario.

Paso 3 — guión (tú lo escribes)

Escribe roteiro.json siguiendo references/regras-video.md (habla de hasta 6 palabras por escena, una palabra clave grande por escena, la 1ª escena abre con el dolor o el deseo de quien ve, en "tú"):

{"personagem": "quien aparece en varias escenas, descrito siempre igual (ropa, color, accesorio)",
 "cenas": [{"texto_tela": "PALABRA", "fala": "frase corta hablada", "acao": "lo que se ve", "camera": "zoom_in"}]}

personagem se envía en cada petición de storyboard (sin él, cada storyboard inventa una persona). Después:

python3 SKILL_DIR/scripts/cenas.py ... --roteiro roteiro.json     # mismo comando + el guión

Paso 4 — storyboards en el estilo

Arma las peticiones (una por storyboard) a partir de la plantilla + biblia + plan + personaje:

python3 SKILL_DIR/scripts/pedido_storyboard.py          # → saida/storyboards/pedido-storyboard-N.txt

Envía cada petición, sin reescribirla, a tu herramienta de imagen (Codex: image_gen; Claude Code: la herramienta de imagen que tengas, o pide al usuario que genere y guarde). Guarda en saida/storyboards/storyboard-N.png. Para cambiar la petición, cambia la plantilla (modelos/prompt-storyboard.md) o la biblia, no el texto generado.

  • Genera uno por vez. A partir del 2º, pasa el storyboard anterior como imagen de referencia (continuidad).
  • Abre la imagen y verifica con la lista de regras-storyboard.md (cuadrícula correcta, palabra exacta letra por letra, estilo, continuidad). Amplía las palabras para verificar. Mala → rehazla (hasta 2 veces) y anota en references/licoes.md.

Paso 5 — recortar

python3 SKILL_DIR/scripts/recortar.py --plano saida/plano.json      # --respiro 0.08 (por defecto) protege la palabra del zoom

Paso 6 — animar

python3 SKILL_DIR/scripts/animar.py                      # motor local: zoom/pan lento + dissolve
python3 SKILL_DIR/scripts/animar.py --motor kling --so-prompts      # NO PROBADO: solo escribe los comandos
python3 SKILL_DIR/scripts/animar.py --motor seedance --so-prompts   # NO PROBADO: solo escribe los prompts

Con kling/seedance, quien ejecuta es el usuario, en su cuenta; después los clips vuelven a saida/clipes/.

Paso 7 — narración (una sola voz)

python3 SKILL_DIR/scripts/narrar.py --arquivo voz.wav            # el usuario grabó todo
python3 SKILL_DIR/scripts/narrar.py --falas-dir falas/           # el usuario grabó una frase por escena
python3 SKILL_DIR/scripts/narrar.py --comando '<tts> {texto} {saida}'   # cualquier TTS local
python3 SKILL_DIR/scripts/narrar.py --inemavox --inemavox-dir <carpeta> --ref <voz.wav>
python3 SKILL_DIR/scripts/narrar.py --edge                       # NO PROBADO (servicio online)

Con TTS, narrar.py corta la "cola" que la voz a veces inventa después de la frase y genera de nuevo la frase larga demasiado para el número de palabras (--tentativas 3). Si avisa que una frase excede la escena, acorta la frase en el guión y ejecuta de nuevo. Si puedes, verifica la narración con una transcripción local (¿coinciden las frases con el guión?); frase con problema → narrar.py ... --refazer N rehace solo la escena N.

Paso 8 — montar con pista única

python3 SKILL_DIR/scripts/montar.py [--trilha assets/trilha/x.mp3] [--volume 0.5]

Sin pista en assets/trilha/ → pregunta al usuario qué música usar (suya o con licencia). Varias → pide que elija.

Paso 9 — verificar (obligatorio)

python3 SKILL_DIR/scripts/validar.py --duracao <s> --resolucao <WxH>
python3 SKILL_DIR/scripts/folha.py                 # final/folha-final.jpg: un fotograma de cada escena

Solo di "listo" después de que validar.py imprima PASSOU y tú MIRES la final/folha-final.jpg (texto legible, sin letra cambiada, estilo igual en todos los paneles). Si falla, di qué falta.

Paso 10 — mejora la skill

Después de cada vídeo, escribe en references/licoes.md (una línea por ítem) lo que salió mal y la regla que lo evitaría. Si es regla de estilo o de storyboard, cambia también estilo.md/regras-storyboard.md, no solo el prompt.

Skills relacionados