Vídeo de lanzamiento de sitio web
Responde en el idioma del usuario. El texto del vídeo se genera en inglés a menos que se solicite lo contrario.
Salida: <marca>_launch.mp4 en el directorio de trabajo (1920x1080, 30fps, H.264 + AAC).
Coste: sin créditos de generación. Nunca llames a generate_video / generate_audio para este flujo: todo se renderiza con código en el sandbox de Higgsfield.
Requisitos
- Conector MCP de Higgsfield (proporciona
sandbox_exec,media_upload,media_confirm,get_workflow_instructions). - Una herramienta de navegador (navegador integrado o Claude en Chrome) para leer el sitio.
Datos de entrada a obtener (preguntar solo si faltan)
- URL del sitio web (obligatorio).
- Opcional: cupón / descuento, si es producto propio o promoción pagada (en promoción, recordar añadir
#adal publicar), estilo musical, versión vertical 9:16.
Paso 1 – Leer el sitio
- Navega a la URL y luego ejecuta JS
document.body.innerText(espera ~2s para SPAs). Recoge: H1, subtítulo, 4-6 encabezados de características, precios, texto de oferta/cupón, línea de garantía/confianza, texto del CTA. - Captura pantalla y desplázate 2-3 veces para ver el estilo visual (tarjetas, píldoras, cejas, botones, colores destacados de palabras).
- Obtén los estilos computados:
fontFamily, color, backgroundColor, letterSpacing, fontWeightde body/h1/h2/button, más un recuento de frecuencias de todos los colores de fondo y texto. - Si la página se renderiza sin estilos (CSS bloqueado), extrae el CSS en el sandbox:
curl -sL -A "Mozilla/5.0" URL -o index.html; grep -o '/_next/static/[^"]*\.css' index.html` (o cualquier `<link rel=stylesheet>`), haz curl de ellos en `all.css`, luego grep -oE -- '--(background|foreground|brand|primary|accent|muted|border|card|surface|ink)[a-z-]*:[^;}]*' all.css | sort -u grep -o 'font-family:[^;}]*' all.css | sort -u - Logo:
<img>en el header (ej./logo.png) o/android-chrome-512x512.png//apple-touch-icon.png. Logos de socios en SVG →convert -background none -density 1200 x.svg -resize 400x400 x.png.
Paso 2 – Tokens de diseño
Asigna los tokens de la plantilla según el sitio: BG, INK (título), MUTED (gris del cuerpo), BRAND (acento), BRAND_SOFT (tinte del acento para chips), PANEL (fondo de tarjeta gris), WHITE (tarjeta). Sitio oscuro → BG oscuro, INK claro, sin sombra suave. Refleja los patrones del sitio: títulos de dos líneas con el acento en la línea 2 si el sitio lo hace, chips de ceja/etiqueta, botones tipo píldora con flecha, panel gris con tarjetas blancas.
Paso 3 – Fuentes
TTF estáticos por peso desde fontsource (cualquier fuente de Google):
curl -sf -o font-800.ttf https://cdn.jsdelivr.net/fontsource/fonts/<slug-fuente>@latest/latin-800-normal.ttf
(slug = minúsculas, espacios → guiones, ej. bricolage-grotesque, urbanist). Usa mediante typography={{fontAssetId: handle.id}} tras await p.add("font-800.ttf"). El subconjunto latino no contiene los glifos → ✓ ★ – usa icon("arrow-right") etc. Las familias integradas (Inter, DM Sans, Montserrat…) pueden usar higgsedit fonts add . Inter:400 Inter:700 + fontFamily.
Paso 4 – Guion del vídeo
Carga el flujo de trabajo video-editing de Higgsfield una vez por sesión (get_workflow_instructions {workflow:"video-editing"}) antes del trabajo con Higgsedit.
Parte desde reference/template.jsx. Estructura por defecto, ~25s:
| # | Escena | Duración | Contenido |
|---|---|---|---|
| 1 | Gancho | 0-3.3 | El dolor en 2 líneas, ceja "Para " |
| 2 | Presentación | 3.3-7 | Logo + marca, H1 del sitio, subtítulo, botón CTA aparece |
| 3-6 | Características | ~3.7s cada una | Ceja = etiqueta de sección del sitio, título = el propio encabezado de la característica del sitio, un mock nativo de UI (tarjetas de estadísticas con contadores, filas con etiquetas, cuadrícula de mapa de calor, lista de cola, tarjeta de reseña, píldoras de días…) |
| 7 | CTA | últimos ~4.3s | Logo + dominio, tarjeta de precio/oferta, píldora de cupón + botón, línea de garantía |
Reglas:
- Usa el texto real del sitio y números de ejemplo reales. Indica al usuario qué valores demostrativos son ilustrativos. Nunca inventes recuentos de usuarios ni testimonios.
- Recrea la interfaz de forma nativa (marcos/texto/iconos). No uses capturas de pantalla de baja resolución ni interfaz generada por IA.
- Mantén los tiempos de inicio de escena – la música los necesita (
cuts= inicio de las escenas 2..7).
Paso 5 – Construcción en el sandbox y vista previa
Hechos sobre el sandbox: los archivos desaparecen al reiniciarse (vuelve a descargar assets si cd falla); un comando ≤ 16,000 caracteres (escribe las URLs de subida en archivos en una llamada separada del heredoc largo cat > edit.jsx); renders largos → background:true y luego consulta.
media_uploadlas salidas de antemano (una vista previasheet.pngy el.mp4final) y guarda cadaupload_urlen un.txtdentro del sandbox. Las URLs prefirmadas son de un solo uso: un segundo PUT devuelve 412 – solicita una nueva.- Construcción + hoja de contactos + subida en una sola llamada:
higgsedit build edit.jsx 2>&1 | grep -iE "error|missing" higgsedit sheet . --times <punto medio de cada escena + final del CTA> --cols 3 --out renders/sheet.png curl -s -o /dev/null -w "%{http_code}" -X PUT -H "Content-Type: image/png" --upload-file renders/sheet.png "$(cat sheet_url.txt)" media_confirm, descarga la URL pública devuelta localmente y mírala. Corrige problemas de diseño antes del render final.
Trucos de Higgsedit:
paddinges un número o{left,right,top,bottom}, nunca un array.- El token
motion={{by:"word"|"character"}}en texto centrado refluye (el texto salta desde la izquierda). Usaanimate={pop}para texto centrado; token motion solo para texto "mecanografiado" alineado a la izquierda. - Un
targetde la línea de tiempo debe ser un marco hijo inmediato con nombre, no a sí mismo – anima a sí mismo con keyframesanimate(delayPop). - Contadores: marco de tamaño fijo
layout="none"con un solo texto estático; sin separadores de miles. animatees siempre un array; elmotiondel marco es un objeto.
Paso 6 – Renderizado
higgsedit render . --out renders/promo.mp4 --quality final (≈1 min para 25s).
Paso 7 – Música (diferente cada vez)
scripts/music.py = música procedural con numpy, libre de derechos. Estilos: pop (120bpm brillante), lofi (82bpm jazz relajado), synthwave (105bpm retro), house (124bpm fuera de ritmo), cinematic (90bpm épico), marimba (110bpm amigable). Cada pista: un whoosh antes de cada corte, un impacto en el CTA, fundido de salida de 1.6s.
Elige el estilo – nunca repitas los dos últimos:
- Lee
music-history.logen esta carpeta de la skill (créealo si falta). - Adecuación: dev/AI/tech → synthwave o house; creador/escritura/productividad → lofi o marimba; lanzamiento grande/premium → cinematic; consumidor/diversión → pop. Omite estilos usados en las últimas 2 entradas a menos que el usuario solicite uno.
--seedaleatorio → tonalidad y progresión aleatorias, incluso el mismo estilo sonará diferente.- Añade
YYYY-MM-DD <sitio> <estilo> seed=<n>amusic-history.log.
Para llevar music.py al sandbox (primera ejecución): media_upload con nombre music.py → desde la máquina local curl -X PUT -H "Content-Type: application/octet-stream" --data-binary @scripts/music.py '<upload_url>' → media_confirm type:file → guarda la URL pública devuelta en music_url.txt en esta carpeta de la skill. Ejecuciones posteriores: curl -sf -o music.py "$(cat music_url.txt)" dentro del sandbox (vuelve a subirlo si da 404 o cambió music.py).
Mezcla:
python3 music.py --style <estilo> --duration <segundos del vídeo> --cuts <c2,c3,...,c7> --seed <n> --out music.wav
ffmpeg -y -v error -i renders/promo.mp4 -i music.wav -filter:a "loudnorm=I=-15:TP=-1.5:LRA=11" -c:v copy -c:a aac -b:a 192k -map 0:v -map 1:a -shortest final.mp4
Duración: ffprobe -v error -show_entries format=duration -of csv=p=0 renders/promo.mp4.
Paso 8 – Entrega
Sube final.mp4 (URL nueva) → media_confirm type:video → descárgalo localmente como <marca>_launch.mp4 → entrega el archivo al usuario. Informa: qué coincide con el sitio (fondo/colores/fuente/logo), la lista de escenas, el estilo musical, qué valores son ilustrativos. Ofrece una versión 9:16 o un estilo musical diferente.
Variante 9:16
size: "1080x1920", W=1080 / H=1920, apila las filas verticalmente (tarjetas en columna), tamaños de título ×0.75, mismos tiempos y música.