소스 정보
- 저장소
- Ntizar/MasterMind
- 최근 소스 활동
- 2026년 9월 8일 14:54
- 감지된 SKILL.md 언어
- 스페인어
- 스타
- 2
- 포크
- 0
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/Ntizar/MasterMind --skill short-form-video-generation명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
Restore Hermes from a backup repo or migrate machines.
Usa al analizar ADN crudo: ascendencia, rasgos, sexo.
Usar al operar Mastermind en Windows: repo, ChromaDB, crons, gateway Telegram (colapso por token revocado y su restauración), backups y monitorización.
| name | short-form-video-generation |
| description | Usa a hacer shorts verticales con voz y fotos reales. |
| version | 1.0.0 |
| tags | ["video","shorts","reels","tiktok","tts","ffmpeg","slides","monetizacion","product-images"] |
| related_skills | ["video-gen-from-topic","video-processing","hyperframes-html-video","manim-video"] |
| author | Mastermind (Ntizar) |
| license | MIT |
| metadata | {"hermes":{"tags":["video","shorts","reels","tiktok","tts","ffmpeg","slides","monetizacion","product-images"],"related_skills":["video-gen-from-topic","video-processing","hyperframes-html-video","manim-video"]}} |
Pipeline programático para producir un short vertical (Shorts/Reels/TikTok) con voz + slides + imágenes reales, sin GPU ni claves de pago. Stack: edge-tts (voz) + Pillow (slides) + ffmpeg (composición) + imágenes reales (Wikimedia CC o Amazon por ASIN).
No es moneyprinterturbo/stock random: es el montaje con imágenes reales y variadas del tema (clave para que no parezca un vídeo de bot).
es-ES-AlvaroNeural (edge-tts). Nunca voz genérica/femenina por defecto.#f59e0b) + texto blanco gordo.# 1) VOZ (en el venv de Hermes, tiene edge_tts)
python -c "import edge_tts,asyncio; asyncio.run(edge_tts.Communicate(open('guion.txt',encoding='utf-8').read().strip(),'es-ES-AlvaroNeural').save('voice.mp3'))"
# medir duracion: ffprobe -v error -show_entries format=duration -of csv=p=0 voice.mp3
# 2) SLIDES (Python312, tiene Pillow): foto + scrim + titulo gordo + acento -> slides/slide_0N.png
python build_slides.py
# 3) COMPOSICION — slideshow RAPIDO (loop 1 + concat + audio). OJO: NO usar zoompan, es lentisimo.
for i in 01 02 03 04 05; do ffmpeg -y -loglevel error -loop 1 -t 5 -i slides/slide_$i.png \
-vf "fps=30,scale=1080:1920" -c:v libx264 -pix_fmt yuv420p segs/seg_$i.mp4; done
{ for i in 01 02 03 04 05; do printf "file 'C:/.../segs/seg_%s.mp4'\n" "$i"; done; } > list.txt
ffmpeg -y -f concat -safe 0 -i list.txt -i voice.mp3 -c:v libx264 -pix_fmt yuv420p \
-c:a aac -b:a 192k -shortest -movflags +faststart out/short.mp4
duracion_voz / n_slides (redondea a entero; -shortest recorta al audio).Cuando David quiere el vídeo más espectacular/realista que un slideshow, renderiza una escena Three.js a MP4 con Puppeteer frame-by-frame (no zoompan, no HyperFrames). Receta completa en references/threejs-video-render.md. Claves (todas verificadas):
window.seek(t) que dibuja el estado en tiempo t. NUNCA auto-arranques el loop requestAnimationFrame si vas a hacer seek — el loop corre con reloj de pared y sobrescribe el seek(t) justo antes de cada screenshot (bug real: todos los frames salen iguales y los textos no siguen el timing). Exponer window.play()/stop() y llamar window.seek(0) al cargar.ffprobe, concatena con el demuxer de ffmpeg, y usa los tiempos acumulados como ventanas de visibilidad de cada slide en draw(t).WebGLRenderer necesita alpha:true + renderer.setClearColor(0x000000, 0) — sin eso el canvas limpia a negro y tapa el gradiente.seek(t) es determinista, así que renderiza en trozos; acepta un START (índice de frame) y re-abre la página para continuar sin duplicar trabajo.ffmpeg -vf "fade=t=in...,fade=t=out..." -af "afade=...".Cuando David pide que NO parezca "IA slop"/"videojuego", usa esta variante (sin Three.js): fondo gradiente cinematográfico (Ken Burns con transform:scale) + canvas 2D para humo y brasas (partículas dependientes de t, seekable) + fotos reales de producto en panel con marco+glow + texto punch skewed + guion loco narrado por segmento. Receta completa (HTML + render.js + ffmpeg) en references/canvas2d-cinematic-short.md.
Coste (clave para escalar a muchos vídeos): el render (Puppeteer+ffmpeg) y la voz (edge-tts) son locales y gratis — cero tokens; solo el guion LLM cuesta (~50–150K tokens/vídeo). El trabajo "caro" de desarrollo del pipeline se paga una vez.
commons.wikimedia.org/w/api.php con generator=search + gsrsearch=filetype:bitmap <tema> + prop=imageinfo + iiurlwidth. Obligatorio User-Agent (403 sin él) y filtrar resultados (la query "agua" devolvió un mono bebiendo — excluir títulos con monkey|maca|animal|museum|collection...). Preferir image/jpeg >1000px./dp/<ASIN>) devuelven vacío a curl sin cookies (bloqueo). La vía fiable es buscar amazon.es/s?k=<query> con cookie jar + UA (patrón de kit72h/scripts/buscar-amazon.py) y extraer la imagen del bloque data-asin="<ASIN>" (<img ... src="https://m.media-amazon.com/images/I/...">). Detalle en references/imagenes-producto-amazon.md.zoompan de ffmpeg es un cuello de botella enorme (re-encodifica cada frame; ~60-100s/segmento en 1080×1920; un vídeo de 6 planos se quedó a 4/6 a los 400s). Usa slideshow estático (-loop 1 + concat) para velocidad; si quieres movimiento, mételo en los slides o usa xfade (más rápido que zoompan).pip install no trae Pillow en el venv de Hermes; usar el Python del sistema (C:/Users/d_ant/AppData/Local/Programs/Python/Python312/python.exe, tiene Pillow). edge_tts vive en el venv de Hermes, no en el del sistema./tmp); -o a un path nativo.Neural (es-US-AlonsoNeural, no es-US-Alonso) y rate/pitch exigen signo ('+0%', no '0%'; '-8Hz'). Para elegir la voz más cinematográfica, medir la frecuencia fundamental (autocorrelación sobre el wav) y quedarse con la más grave (ej. es-US-AlonsoNeural ≈104 Hz vs es-ES-AlvaroNeural ≈110 Hz).ffprobe el mp4: 1080×1920, H.264/AAC, duración ≈ voz. Reproducir y comprobar que cambia de imagen por ítem y la voz es Álvaro.references/imagenes-producto-amazon.md — receta completa de extracción de imagen por ASIN (search + cookie jar + data-asin).references/threejs-video-render.md — receta de escena Three.js seekable → MP4 (Puppeteer frame-by-frame + ffmpeg), con el fix del loop rAF.