En los dos posts anteriores monté dos canales en mi propia GPU: imágenes en ~7 segundos con Z-Image Turbo y video con voz en español con MiniMax H3. Funcionaban, pero cada pieza me pedía repetir lo mismo: el tamaño de Instagram, el estilo de la marca, que no salgan logos, a qué carpeta va…
Así que lo convertí en atajos de una palabra para mi agente (Claude Code). Ahora escribo esto:
post demo-cafeteria ig: cold brew en vaso alto con un letrero que diga "Nuevo cold brew"
Y 24 segundos después tengo esto, en el formato 4:5 de Instagram, con la paleta y el estilo de la marca, y con el texto bien escrito:

TL;DR
- Un skill de Claude Code que junta tres cosas: la ficha de marca de cada proyecto, el formato de cada red social y los motores locales (Z-Image para imagen, FastH3 para video con voz).
- La sintaxis es siempre la misma:
<atajo> <proyecto> <red>: <idea>. - Atajos:
post,historia,carrusel,miniatura,clip,animar,marca,semana,lote. - Cada pieza queda guardada con su prompt, el modelo, la licencia y el tiempo que tardó.
- Todo corre en mi RTX 5070 Ti de 16 GB: costo cero por pieza.
1. El problema: repetir instrucciones
Cuando generas contenido para varios proyectos, el 80 % del prompt se repite:
- El formato: Instagram quiere 4:5, Reels y TikTok 9:16, YouTube 16:9.
- La marca: “luz cálida, paleta terracota, fotografía comercial auténtica…”.
- Lo prohibido: logos de otras marcas, banderas, niños, celebridades.
- La voz (en video): “habla en español mexicano, cálido y cercano”.
- El orden: a qué carpeta va, con qué nombre, qué modelo se usó.
Si lo escribes a mano cada vez, se te olvida algo, y cada pieza sale un poco distinta. La solución fue sacar todo eso de mi cabeza y meterlo en dos archivos.
2. Pieza 1: la ficha de marca de cada proyecto
Cada proyecto tiene un marca.json. Este es el del proyecto de prueba, una cafetería de barrio:
{
"nombre": "Café de la Colonia (demo)",
"redes": ["ig", "reels", "tiktok", "fb", "wa"],
"estilo_imagen": "Warm golden-hour natural light, cozy Mexico City neighborhood coffee shop, rustic wood and ceramics, earthy palette with terracotta accents, authentic commercial photography",
"estilo_video": "Handheld camera slowly pushing in, cinematic shallow depth of field, warm light, soft acoustic guitar music in the background",
"voz": "The character speaks in warm, friendly Mexican Spanish",
"evitar": "logos of other brands, flags, children, celebrities, misspelled text",
"audiencia_eeuu_ue": false
}
Los estilos van en inglés porque así los entienden mejor los modelos. Lo que debe verse u oírse (el texto de un letrero, la frase de un personaje) sí va en español, dentro de la idea.
El campo audiencia_eeuu_ue no es decorativo: la licencia de MiniMax H3 excluye EE. UU., la UE, Reino Unido y Corea. Si un proyecto le habla a ese público, el atajo clip se bloquea solo y me sugiere otro motor.
Para crear una ficha nueva no edito JSON a mano. Escribo marca miproyecto, el agente me hace cuatro preguntas (de qué trata, a quién le habla, qué redes usa, qué estilo me gusta) y la arma.
3. Pieza 2: el formato de cada red
Un solo archivo, redes.json, dice qué tamaño corresponde a cada red:
| Código | Red | Imagen | Video |
|---|---|---|---|
ig |
Instagram feed | 4:5 (1024×1280) | 9:16 |
reels / tiktok / shorts |
Video vertical | 9:16 (864×1536) | 9:16 (704×1280) |
historia |
Stories | 9:16 con espacio para texto | 9:16 |
fb |
4:5 | 9:16 | |
yt |
YouTube | 16:9 (1536×864) | 16:9 (1280×704) |
li |
4:5 | 16:9 | |
x |
X / Twitter | 16:9 | 16:9 |
wa |
Estado de WhatsApp | 9:16 | 9:16 |
Cada red también trae un consejo que el agente toma en cuenta. Por ejemplo, en Reels hay que dejar libre el tercio de abajo porque ahí van la descripción y los botones.
¿Por qué 704 y no 720? Porque el modo foto → video de MiniMax H3 falla con 720 de ancho en 16 GB. Con 704 (múltiplo de 32) funciona siempre.
4. Los atajos
| Atajo | Qué hace | Tiempo en mi PC |
|---|---|---|
post <p> <red>: idea |
4 variantes en el formato de la red | ~30 s |
historia <p> <red>: idea |
2 imágenes 9:16 con espacio arriba para texto | ~20 s |
carrusel <p> <red>: idea |
5 imágenes del mismo tema y estilo | ~40 s |
miniatura <p> yt: idea |
Miniaturas de YouTube | ~20 s |
clip <p> <red>: idea |
Video de 5 s con voz y música | ~2 min |
clip … borrador |
El mismo clip en chico, para probar la idea | ~1 min |
animar <p> <red>: idea + foto |
Una imagen del post → video con voz |
~3-4 min |
semana <p> |
Plan de 7 piezas con el comando de cada una | — |
lote <plan> |
Ejecuta el plan pieza por pieza | — |
Este clip salió de escribir:
clip demo-cafeteria tiktok borrador: el barista entrega el cold brew y dice "Pruébalo, está buenísimo"
480×864 · 4 s · 48 segundos de generación. Whisper confirmó la frase: “Pruébalo, está buenísimo”.
5. Qué pasa por dentro
Cuando escribo un atajo, el agente:
- Traduce la idea al inglés, pero deja en español y entre comillas lo que debe verse u oírse.
- Arma el prompt final: idea + estilo de la marca + voz (si es video) + “Do not include: …” con lo prohibido.
- Elige el formato según la red, y el motor según el atajo: Z-Image para imágenes, FastH3 para clips, H3 con foto para
animar. - Arranca ComfyUI si no estaba prendido, genera y lo apaga al terminar. Así no deja 25 GB de RAM ocupados.
- Guarda la pieza en su carpeta:
contenido/proyectos/demo-cafeteria/piezas/
└── 2026-10-29-post-ig-a-cold-brew-coffee-in-a-tall-glass/
├── post_1425817603.png
├── post_1425817604.png
├── prompt.txt ← el prompt exacto que se usó
└── registro.json ← modelo, licencia, tiempo, ok
- Me enseña el resultado mirándolo: abre las imágenes y, en los videos, revisa tres cuadros y pasa el audio por Whisper para confirmar que la frase se dijo bien.
El registro.json parece un detalle, pero me salva: dentro de seis meses voy a saber con qué modelo y qué licencia salió cada pieza que publiqué.
6. El plan de la semana
El atajo que más tiempo me ahorra es semana demo-cafeteria. El agente lee la ficha de marca y las redes del proyecto, y escribe un calendario de 7 piezas, más o menos 4 imágenes, 2 clips y un carrusel:
| Día | Red | Tipo | Idea |
| Lun | ig | post | taza con letrero "El mejor café de la colonia" |
| Mar | tiktok | clip | barista dice "¿Ya probaste el cold brew?" |
| Mié | ig | carrusel | 5 bebidas de la carta, una por imagen |
| … | … | … | … |
Lo reviso, le cambio lo que no me gusta, y con lote lo genera todo en orden y de una en una. Video e imagen comparten GPU y RAM, así que nunca van dos al mismo tiempo.
7. Lo que aprendí armándolo
- El servidor se quedaba colgado cuando el comando iba detrás de una tubería (
| grep). El proceso de ComfyUI heredaba la tubería y esta nunca se cerraba. La solución fue redirigir el subshell completo del lanzador, no solo el proceso de Python. - Los modelos de video inventan logos en las máquinas, como una cafetera con una “marca” falsa. Por eso “logos of other brands” va en el
evitarde cada ficha, y aun así hay que revisar los cuadros antes de publicar. - Texto en imagen: de 2 a 6 palabras y sobre un soporte (letrero, pizarrón, etiqueta). Para diseños con mucho texto sigo usando GPT Image 2.
- Las piezas no van a git. Solo las fichas de marca, los calendarios y los registros. Las imágenes y los videos pesan demasiado y no aportan al historial.
Cierre
Con esto pasé de “generar imágenes con IA” a tener un sistema de contenido: cada proyecto con su identidad, cada red con su formato, y cada pieza con su historial. Todo sale de mi propia GPU y con una sola línea.
El siguiente paso es darles fichas de marca a mis proyectos reales y dejar que semana me proponga el calendario cada lunes.