Atajos de una palabra para crear contenido de redes con mi GPU: post, clip, semana

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:

Dos variantes de un post de Instagram generado con el atajo “post”: un cold brew con un letrero que dice “Nuevo cold brew”


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 Facebook 4:5 9:16
yt YouTube 16:9 (1536×864) 16:9 (1280×704)
li LinkedIn 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:

  1. Traduce la idea al inglés, pero deja en español y entre comillas lo que debe verse u oírse.
  2. Arma el prompt final: idea + estilo de la marca + voz (si es video) + “Do not include: …” con lo prohibido.
  3. 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.
  4. Arranca ComfyUI si no estaba prendido, genera y lo apaga al terminar. Así no deja 25 GB de RAM ocupados.
  5. 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
  1. 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 evitar de 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.

Probé mis atajos de contenido con dos marcas reales: lo que falló y cómo lo arreglé
Older post

Probé mis atajos de contenido con dos marcas reales: lo que falló y cómo lo arreglé

Demostración real de mi skill de contenido para redes con dos marcas: WeSoft y RuflesTv. El modelo escribía mal los textos, metía niños y billetes que estaban prohibidos y le ponía subtítulos al video. Así lo resolví: rótulo con la tipografía de la marca, prompts en positivo y léxico de pronunciación.

Newer post

Google Analytics 4 en mi sitio: quién me visita, desde qué país y qué secciones ve

Cómo conecté Google Analytics 4 a un blog en Hugo y a una landing en React + Vite: una propiedad por sitio, la etiqueta solo en producción y un evento propio para saber cuánta gente llega a cada sección.

Google Analytics 4 en mi sitio: quién me visita, desde qué país y qué secciones ve
raul@wesoft: ~/ficha