Vidéo de lancement de site web
Répondre dans la langue de l'utilisateur. Le texte de la vidéo est en anglais sauf demande contraire.
Sortie : <marque>_launch.mp4 dans le répertoire de travail (1920×1080, 30 ips, H.264 + AAC).
Coût : aucun crédit de génération. Ne jamais appeler generate_video / generate_audio pour ce workflow — tout est rendu avec du code dans le sandbox Higgsfield.
Prérequis
- Connecteur MCP Higgsfield (fournit
sandbox_exec,media_upload,media_confirm,get_workflow_instructions). - Un outil navigateur (navigateur intégré ou Claude dans Chrome) pour lire le site.
Entrées à obtenir (demander uniquement si manquantes)
- URL du site (obligatoire).
- Optionnel : coupon / réduction, s'il s'agit du propre produit de l'utilisateur ou d'une promotion payante (promotion → rappeler d'ajouter
#adlors de la publication), style musical, version verticale 9:16.
Étape 1 – Lire le site
- Accéder à l'URL, puis exécuter
document.body.innerTexten JS (attendre ~2s pour les SPA). Récupérer : H1, sous-titre, 4–6 titres de fonctionnalités, tarifs, texte d'offre/coupon, garantie/confiance, libellé CTA. - Prendre une capture d'écran et défiler 2 à 3 fois pour voir le style visuel (cartes, puces, sourcils, boutons, couleurs des mots d'accent).
- Récupérer les styles calculés :
fontFamily,color,backgroundColor,letterSpacing,fontWeightdu body/h1/h2/bouton, ainsi qu'un compteur de fréquence de toutes les couleurs de fond et de texte. - Si la page s'affiche sans style (CSS bloqué), récupérer le CSS dans le sandbox à la place :
curl -sL -A "Mozilla/5.0" URL -o index.html; grep -o '/_next/static/[^"]*\.css' index.html(ou tout<link rel=stylesheet>), les télécharger dansall.css, puisgrep -oE -- '--(background|foreground|brand|primary|accent|muted|border|card|surface|ink)[a-z-]*:[^;}]*' all.css | sort -uetgrep -o 'font-family:[^;}]*' all.css | sort -u. - Logo :
<img>dans l'en-tête (ex./logo.png) ou/android-chrome-512x512.png//apple-touch-icon.png. Logos partenaires en SVG →convert -background none -density 1200 x.svg -resize 400x400 x.png.
Étape 2 – Tokens de design
Mapper le site aux tokens du template : BG, INK (titre), MUTED (gris du corps), BRAND (accent), BRAND_SOFT (teinte d'accent pour les puces), PANEL (fond de carte gris), WHITE (carte). Site sombre → fond sombre, INK clair, pas d'ombre douce. Reproduire les motifs du site : titres sur deux lignes avec l'accent sur la ligne 2 si le site le fait, puces/libellés en sourcil, boutons en pilule avec une flèche, panneau gris avec cartes blanches.
Étape 3 – Polices
Police statique TTF par graisse depuis fontsource (n'importe quelle police Google) :
curl -sf -o font-800.ttf https://cdn.jsdelivr.net/fontsource/fonts/<slug-police>@latest/latin-800-normal.ttf (slug = minuscules, espaces→tirets, ex. bricolage-grotesque, urbanist). Utiliser via typography={{fontAssetId:handle.id}} après await p.add("font-800.ttf"). Le sous-ensemble latin ne contient pas les glyphes → ✓ ★ – utiliser icon("arrow-right") etc. Les familles intégrées (Inter, DM Sans, Montserrat…) peuvent utiliser higgsedit fonts add . Inter:400 Inter:700 + fontFamily.
Étape 4 – Scénariser la vidéo
Charger le workflow video-editing de Higgsfield une fois par session (get_workflow_instructions {workflow:"video-editing"}) avant tout travail Higgsedit.
Partir de reference/template.jsx. Structure par défaut, ~25s :
| # | Scène | Temps | Contenu |
|---|---|---|---|
| 1 | Accroche | 0–3.3 | le problème en 2 lignes, sourcil "Pour " |
| 2 | Présentation | 3.3–7 | logo + marque, H1 du site, sous-titre, bouton CTA qui apparaît |
| 3–6 | Fonctionnalités | ~3.7s chacune | sourcil = libellé de section du site, titre = titre de fonctionnalité du site, une maquette UI native (cartes de statistiques avec compteurs, lignes avec étiquettes, grille de heatmap, liste de file d'attente, carte d'avis, pastilles de jours…) |
| 7 | CTA | dernières ~4.3s | logo + domaine, carte de prix/offre, pastille de coupon + bouton, ligne de garantie |
Règles :
- Utiliser le contenu réel du site et des nombres d'exemple réels. Indiquer à l'utilisateur quelles valeurs de démonstration sont illustratives. Ne jamais inventer de nombres d'utilisateurs ou de témoignages.
- Recréer l'UI de manière native (cadres/texte/icônes). Ne pas utiliser de captures d'écran basse résolution du site ni d'UI générée par IA.
- Conserver les temps de début de scène – la musique en a besoin (
cuts= début des scènes 2..7).
Étape 5 – Construction et prévisualisation dans le sandbox
Faits sur le sandbox : les fichiers disparaissent lors de sa réinitialisation (retélécharger les ressources si cd échoue) ; une commande ≤ 16 000 caractères (écrire les URL de téléchargement dans des fichiers lors d'un appel séparé du long cat > edit.jsx heredoc) ; longs rendus → background:true puis interroger.
media_uploaddes sorties à l'avance (une prévisualisationsheet.pnget le fichier.mp4final) et sauvegarder chaqueupload_urldans un.txtdans le sandbox. Les URL présignées sont à usage unique : une seconde requête PUT retourne 412 – en demander une nouvelle.- Construction + contact sheet + téléchargement en un seul appel :
higgsedit build edit.jsx 2>&1 | grep -iE "error|missing"; higgsedit sheet . --times <milieu de chaque scène + fin 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, télécharger l'URL publique retournée localement et l'examiner. Corriger les problèmes de mise en page avant le rendu final.
Pièges d'Higgsedit :
paddingest un nombre ou{left,right,top,bottom}, jamais un tableau.- Le token
motion={{by:"word"|"character"}}sur du texte centré provoque un refoulement (le texte saute depuis la gauche). Utiliseranimate={pop}pour le texte centré ; motion de token uniquement pour le texte "tapé" aligné à gauche. - Une
targetde timeline doit être un cadre enfant nommé immédiat, pas soi-même – animer soi-même avec des keyframesanimate(delayPop). - Compteurs : cadre
layout="none"de taille fixe avec un texte statique ; pas de séparateurs de milliers. animateest toujours un tableau ; lamotiond'un cadre est un objet.
Étape 6 – Rendu
higgsedit render . --out renders/promo.mp4 --quality final (≈1 min pour 25s).
Étape 7 – Musique (différente à chaque fois)
scripts/music.py = musique procédurale numpy, libre de droits. Styles : pop (120 bpm entraînant), lofi (82 bpm chill jazz), synthwave (105 bpm rétro), house (124 bpm contretemps), cinematic (90 bpm épique), marimba (110 bpm amical). Chaque piste : un whoosh avant chaque coupe, un impact sur le CTA, un fondu de 1,6 s.
Choisir le style – ne jamais répéter les deux derniers :
- Lire
music-history.logdans le dossier de cette compétence (le créer s'il manque). - Adapter l'ambiance : dev/AI/tech → synthwave ou house ; créateur/rédaction/productivité → lofi ou marimba ; lancement important/premium → cinématique ; consommateur/ludique → pop. Ignorer les styles utilisés dans les 2 dernières entrées sauf si l'utilisateur en demande un.
--seedaléatoire → tonalité et progression aléatoires, de sorte que même le même style sonne différemment.- Ajouter
YYYY-MM-DD <site> <style> seed=<n>àmusic-history.log.
Pour obtenir music.py dans le sandbox (première exécution) : media_upload avec le nom music.py → depuis la machine locale curl -X PUT -H "Content-Type: application/octet-stream" --data-binary @scripts/music.py '<upload_url>' → media_confirm type:file → sauvegarder l'URL publique retournée dans music_url.txt dans le dossier de cette compétence. Exécutions ultérieures : curl -sf -o music.py "$(cat music_url.txt)" dans le sandbox (retélécharger si 404 ou music.py a changé).
Mixage :
python3 music.py --style <style> --duration <durée vidéo en s> --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
Durée : ffprobe -v error -show_entries format=duration -of csv=p=0 renders/promo.mp4.
Étape 8 – Livraison
Télécharger final.mp4 (nouvelle URL) → media_confirm type:video → le télécharger localement sous <marque>_launch.mp4 → remettre le fichier à l'utilisateur. Rapporter : ce qui correspond au site (fond/couleurs/police/logo), la liste des scènes, le style musical, les valeurs illustratives. Proposer une version 9:16 ou un style musical différent.
Variante 9:16
size: "1080x1920", W=1080 / H=1920, empiler les lignes verticalement (cartes en colonne), tailles de titres ×0.75, mêmes tempos et musique.