Genera Instagram Stories con fotos reales del creador usando Kie AI (Nano Banana Pro). Selecciona automaticamente las mejores fotos de una carpeta, genera storytelling adaptado al tema, y crea stories con texto handwritten limpio y balanceado.
Skill que orquesta la creacion de Instagram Stories. TU (Claude) haces el trabajo inteligente: ver las fotos, elegir las mejores, escribir el storytelling. El script de Python solo ejecuta la generacion con Kie AI.
/stories-gen <carpeta_fotos> "<tema>" [--slides N] [--dry-run] [--regenerate "2,4"]
Ejemplos:
/stories-gen scripts/imagenes-historias "Por que aprender agentes IA"
/stories-gen ~/fotos-stories "Nuevo curso de Claude Code" --slides 5
/stories-gen scripts/imagenes-historias "Automatizar WhatsApp" --dry-run
Listar todas las fotos de la carpeta:
ls <carpeta_fotos>
Luego usar Read para VER cada foto (eres multimodal). Analiza:
De todas las fotos disponibles, selecciona las mejores N para el storytelling.
Criterios de seleccion por rol de slide:
| Rol del slide | Buscar en la foto |
|---|---|
| hook | Llamativa, intrigante. Setup interesante o mirada directa a camara. Espacio para texto grande arriba |
| problema/conflicto | Expresion pensativa o seria. Fondo que no distraiga |
| explicacion/reveal | Gesticulando, senalando, o espacio amplio para texto/cards |
| contenido/lista | MUCHO espacio libre (cielo, pared, fondo simple) para colocar informacion |
| resultado | Sonriente, energetico, positivo |
| cta | Diferente al resto (otro lugar, otra ropa, exterior). Espacio para texto final |
Reglas de seleccion:
Basandote en el tema, escribe el texto para cada slide. Lee .claude/skills/stories-gen/structures.md para elegir una estructura narrativa apropiada.
Reglas de texto:
Despues de definir los slides, analiza cuales se beneficiarian de imagenes extra de referencia. Estas pueden ser: screenshots de herramientas, portadas, logos, interfaces, fotos de producto, etc.
Mostrar al usuario algo como:
IMAGENES EXTRA SUGERIDAS:
Slide 1 (hook): Seria bueno tener una captura de Claude Code o de la terminal
-> Tienes una URL o archivo? (o escribe 'skip')
Slide 2 (reveal): La portada del curso ayudaria mucho aqui
-> URL o archivo?
Slide 3 (contenido): Un screenshot de la interfaz del curso mostrando los modulos
-> URL o archivo?
El usuario responde con:
IMPORTANTE sobre la portada/slide 1:
Config JSON con extras:
{
"slide_num": 1,
"photo": "/ruta/a/foto.jpg",
"extra_images": ["https://url-imagen-extra.png", "/ruta/local/otra.png"],
"extra_descriptions": [
"Screenshot of Claude Code terminal showing code generation",
"Course cover image with logo"
],
...
}
extra_images: lista de URLs o paths de archivos locales
extra_descriptions: descripcion de cada extra para que el prompt sepa como integrarla
Generar el archivo de configuracion en la carpeta del bundle (incluyendo extras si los hay):
/outputs/bundles/[bundle_id]/stories-config.json
Formato:
{
"bundle_id": "YYYY-MM-DD-slug-del-tema",
"topic": "Tema completo",
"slides": [
{
"slide_num": 1,
"role": "hook",
"photo": "/ruta/absoluta/a/foto.jpg",
"text_main": "Texto principal corto",
"text_secondary": "Subtexto opcional",
"text_accent": "texto pequeno abajo",
"hand_drawn": "",
"style": "clean_bold",
"text_position": "auto"
}
]
}
ANTES de ejecutar, mostrar al usuario:
PLAN DE STORIES: [tema]
Bundle: [bundle_id]
Slide 1 (hook): foto-elegida.jpg
"Texto principal"
"texto secundario"
Estilo: clean_bold
Slide 2 (problema): otra-foto.jpg
"Texto principal"
Estilo: soft_overlay
[...]
Total: N slides | Costo estimado: ~$X.XX
Generar? (si/no)
Esperar confirmacion del usuario antes de ejecutar.
cd "/Users/santiagomunoz/Documents/Copia de agentesanmunoz"
python3 scripts/generate-stories-v2.py outputs/bundles/[bundle_id]/stories-config.json
Para dry-run (solo ver prompts):
python3 scripts/generate-stories-v2.py outputs/bundles/[bundle_id]/stories-config.json --dry-run
Para regenerar slides especificos:
python3 scripts/generate-stories-v2.py outputs/bundles/[bundle_id]/stories-config.json --regenerate "2,4"
Solo 3 estilos, limpios y probados:
| Estilo | Cuando usar | Descripcion |
|---|---|---|
clean_bold | Default. Hook, CTA, slides simples | Texto bold handwritten directo sobre la foto. Sin cards, sin overlays. Limpio |
soft_overlay | Fotos con fondo ocupado/complejo | Gradiente sutil (30% de la imagen) para legibilidad. NO un rectangulo oscuro agresivo |
accent_card | Slides con listas o mucha info | UNA sola frosted glass card compacta. Para cuando hay 3+ lineas de texto |
Regla de distribucion:
accent_card por secuenciasoft_overlayclean_boldREGLA: Todo elemento debe tener razon de ser.
La cantidad de elementos por slide NO es fija. Depende de lo que el contenido necesite. Un slide de lista puede tener 4 cards con iconos si eso comunica mejor el mensaje. Un slide de hook puede tener solo texto y nada mas.
Criterio: si lo quitas y el slide pierde significado, dejalo. Si lo quitas y no cambia nada, sobraba.
{}, iconos tech = SI si el tema es tech/codigoReferencia v4 (lo que funciono):
{} y flechas porque era un curso de codigoexport KIE_AI_API_KEY="tu-key"pip install Pillow/outputs/bundles/[bundle_id]/
stories-config.json # Config generado por Claude
stories/
story-01.png # Stories generadas
story-02.png
...
manifest.json # Metadata
Google Drive: STORIES/[bundle_id]/