Communitygithub.com

heygen-com/hyperframes

Transformez n'importe quel texte — article, notes, sujet, briefing — en une vidéo explicative sans visage : aucune capture de site ni de métrage, les visuels sont inventés par scène (typographie, graphismes abstraits, diagrammes, dataviz).

Qu'est-ce que hyperframes ?

Cette compétence vous permet de créer une vidéo explicative sans visage à partir d'un texte brut. Elle est conçue pour les développeurs et les utilisateurs d'agents IA qui souhaitent produire rapidement du contenu éducatif ou d'explication. La compétence prend en charge les plateformes HeyGen, HyperFrames, et fonctionne dans Claude Code, Cursor, Codex et d'autres environnements d'agents. Son avantage principal est de générer des vidéos sans avoir besoin de capture d'écran ni d'actifs réels : tous les visuels sont créés artificiellement à chaque scène, en utilisant des éléments comme la typographie, les graphiques abstraits, les diagrammes et la dataviz. Le flux de travail est structuré en étapes : configuration du projet, elaboration du brief, choix du système de design, création du storyboard et du script, puis génération audio et des images de scène. Chaque étape possède des vérifications ('gates') pour garantir la qualité et la cohérence. La compétence gère aussi la sélection de la voix et de la musique de fond, et peut fonctionner en mode collaboratif ou autonome. Elle est idéale pour des sujets comme les explications de concepts, les analyses approfondies, les tutoriels ou les listicles.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/heygen-com/hyperframes/tree/main/skills/faceless-explainer

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Installation du plugin : Avant les commandes de configuration ou de mise à jour, suivez les règles d'exécution du plugin lorsque cette compétence se trouve dans un plugin HyperFrames. Les installations autonomes conservent les instructions de mise à jour ci-dessous.

D'abord, gardez cette compétence à jour — confirmez avec l'utilisateur avant d'exécuter : npx hyperframes skills update faceless-explainer. C'est une opération rapide sans effet si tout est à jour ; sinon, cela rafraîchit cette compétence ainsi que les compétences de base dont elle dépend avant de les utiliser.

media-use : Avant de sourcer des audio/images/logos, appelez /media-use pour résoudre les BGM/SFX/images du catalogue HeyGen et les logos de marque de leurs sources officielles. Exécutez d'abord --adopt pour enregistrer les actifs existants. Voir la compétence /media-use.

Explainer sans visage vers HyperFrames

Utilisez cette compétence pour transformer un corps de texte en vidéo explicative : choisissez un système de design, planifiez un récit pédagogique, et construisez-le image par image dans HyperFrames. Sans visage signifie que chaque visuel est inventé en aval — il n'y a pas d'étape de capture ni d'inventaire d'actifs réel.

La porte d'entrée est /hyperframes. Vous êtes l'orchestrateur. Exécutez chaque étape, vérifiez sa porte, et continuez seulement après. Cette compétence est destinée à expliquer un sujet à partir d'un texte, sans produit et sans site Web à capturer. Toute autre intention, un simple "faire une vidéo", ou toute incertitude → lisez /hyperframes d'abord — la couche d'intention possède chaque décision d'itinéraire, et une création fraîche arrivant ici sans BRIEF.md passe de toute façon par là (règle d'ouverture de la configuration).

Vous êtes l'orchestrateur. Travaillez dans videos/<projet>/. Exécutez les étapes dans l'ordre et passez chaque porte avant de continuer. Les étapes avec porte utilisateur sont les étapes 0, 3 et 6. Lisez ../hyperframes/references/brief-contract.md avant l'étape 0 — il définit les types de portes et comment le flow/storyboard de BRIEF.md dérivent le mode qui régit les portes des étapes 3/4/6. Faites chaque étape vous-même, sauf l'étape 5, où vous déléguez un sous-agent par image. Ne mettez pas de règles de design ou de mouvement ici ; elles résident dans le sous-agent image-worker, les ../hyperframes-animation/rules/ + ../hyperframes-animation/blueprints/ locaux de cette compétence, et hyperframes-creative.

Flux de travail : Étape 0 configuration → hyperframes.json ; Étape 1 brief → capture/extracted/ ; Étape 2 système de design → frame.md ; Étape 3 storyboard/script → STORYBOARD.md et SCRIPT.md ; Étape 3.1 audio → audio_meta.json ; Étape 4 design visuel → STORYBOARD.md enrichi ; Étape 5 images → compositions/frames/NN-*.html et index.html ; Étape 6 rendu final → renders/video.mp4.


Étape 0 : Configuration

Objectif : Arriver avec un brief confirmé, créer le projet HyperFrames, et rendre le brief durable.

Le brief est confirmé par la couche d'intention, pas par des questions posées ici. Règle d'ouverture, dans l'ordre : (1) BRIEF.md existe → lisez-le et ne demandez rien — le brief est arrêté, et son flow/storyboard dérivent le mode (contrat du brief § 1). (2) Pas de BRIEF.md mais le projet existe (hyperframes.json / STORYBOARD.md sur le disque) → reprenez à partir des métadonnées du storyboard et des préférences enregistrées ; ne réinterrogez jamais un projet à moitié construit. (3) Ni l'un ni l'autre — une demande de création fraîche arrivée ici directement → lisez /hyperframes et exécutez sa couche d'intention (references/intent-interview.md) : elle vérifie les recettes et les valeurs par défaut mémorisées, mène les questions de cet itinéraire (../hyperframes/references/routes/faceless-explainer.md), et renvoie le brief verrouillé. Les demandes de modification sautent tout cela — allez faire la modification.

Initialisez uniquement si hyperframes.json est manquant. Nommez <projet> à partir du sujet en kebab-case, par exemple interets-composes-expliques ; n'utilisez jamais le nom de l'espace de travail ou un horodatage.

npx hyperframes init "videos/<projet>" --non-interactive --example=blank --skill=faceless-explainer — init vérifie les compétences installées par rapport aux dernières sur GitHub et met à jour l'ensemble global si certaines sont obsolètes.

Après init, laissez <RACINE_PROJET> être videos/<projet> et exécutez chaque commande de chemin relatif ultérieure avec ce répertoire comme répertoire de travail. Dans les commandes ci-dessous, . signifie <RACINE_PROJET> ; n'écrivez jamais .media, capture, ou des fichiers de sortie dans le répertoire appelant.

Écrivez BRIEF.md immédiatement après init (jamais avant — init refuse un répertoire non vide) : le brief verrouillé de la couche d'intention, format selon ../hyperframes/references/brief-format.md. Résolvez <REP_MEDIA> comme le répertoire installé de la compétence /media-use. Ensuite, enregistrez chaque réponse basée sur une préférence avec node <REP_MEDIA>/scripts/prefs.mjs record --hyperframes . (brief-format.md nomme le sous-ensemble). Si la couche d'intention a adopté une recette, exécutez node <REP_MEDIA>/scripts/recipe.mjs use --hyperframes . --name <nom> ; elle copie son frame.md dans le projet (l'étape 2 est alors ignorée) et renvoie les squelettes à partir desquels l'étape 3 rédige. Une recette remplit des réponses, pas des approbations ; les portes de révision s'exécutent toujours.

Affichez le statut de connexion avant de continuer au-delà de la Configuration — exécutez npx hyperframes auth status et relayez sa sortie textuellement. Il indique si la voix/BGM utilisera HeyGen ou des moteurs locaux et, lorsqu'il est déconnecté, comment se connecter. Appliquez une branche :

  • Collaboratif : attendez que l'utilisateur se connecte ou choisisse explicitement offline / go.
  • Autonome : indiquez le statut et continuez via les moteurs locaux disponibles.

N'omettez pas silencieusement une capacité requise lorsqu'aucun fournisseur hors ligne n'existe ; signalez le blocage. Ne fusionnez pas cette décision dans une autre question et n'écrivez pas de clés dans un .env par dépôt. Propriété de l'authentification et solutions de repli hors ligne : /media-use references/setup-providers.md § Fournisseurs.

Porte : hyperframes.json et BRIEF.md existent ; les réponses basées sur les préférences ont été enregistrées (contrat du brief § 2) ; le statut de connexion a été affiché (connecté, ou continuant hors ligne).


Étape 1 : Brief (pas de capture)

Objectif : Intégrer le texte de l'utilisateur dans le projet comme source d'information. Il n'y a pas de capture de site Web ni d'actifs réels — c'est un explainer sans visage.

Enregistrez l'entrée complète de l'utilisateur textuellement, puis créez le package de capture synthétique à la main :

  • capture/extracted/visible-text.txt — l'article / notes / sujet / brief complet, textuellement. C'est la source d'information, pas un modèle d'histoire (l'étape 3 le remodèle).
  • capture/extracted/tokens.json — { "title": "", "description": "", "colors": [], "fonts": [] }. Remplissez title/description à partir du brief. Laissez colors/fonts vides sauf si l'utilisateur a explicitement donné des couleurs ou polices de marque — alors ajoutez-les (le préréglage de design fournit une palette complète de toute façon).

Si l'utilisateur a collé un script ou souhaite que son texte soit conservé, enregistrez-le textuellement sous user_script.txt ; VO_MODE (textuel ou restructuré) vient de BRIEF.md — la couche d'intention le demande lorsqu'un script arrive. Demandez une fois ici seulement si le brief manque de cela, et stockez la réponse pour l'étape 3.

N'exécutez pas npx hyperframes capture (il n'y a pas d'URL). Ne créez pas asset-descriptions.md et ne peuplez pas capture/assets/ — les visuels sans visage sont inventés dans les étapes 4-5, pas capturés. La seule exception : si l'utilisateur a fourni une image réelle, placez-la sous public/<nom_base> et notez-la pour l'étape 3.

Porte : capture/extracted/visible-text.txt et capture/extracted/tokens.json existent ; vous pouvez énoncer le sujet et le public de l'explainer en une phrase claire.


Étape 2 : Système de design

Objectif : Choisir un préréglage d'image livré ; un script le transforme en frame.md + skin de sous-titres de cette vidéo.

Lorsque BRIEF.md nomme un style_preset — l'utilisateur l'a choisi visuellement parmi les vitrines de la couche d'intention — utilisez-le ; l'appel de jugement est le vôtre uniquement lorsque le brief est silencieux. Ensuite, vous faites le seul appel — quel préréglage : lisez ../hyperframes-creative/references/design-spec.md et parcourez ../hyperframes-creative/frame-presets/ ; choisissez le préréglage dont l'apparence correspond le mieux au sujet, au ton et au public. Exécutez ensuite :

node <REP_COMPETENCE>/scripts/build-frame.mjs --preset <nom> --hyperframes .

Le script fait le reste de manière déterministe : copie le FRAME.md du préréglage → frame.md et le remixe sur tous les jetons de marque dans capture/extracted/tokens.json (couleurs de marque mappées sur les clés de couleur du préréglage par rôle ; les polices d'affichage + corps du préréglage échangées contre celles de la marque), copie le skin de sous-titres du préréglage vers .hyperframes/caption-skin.html, et s'auto-valide (sort 1 sur un mappage cassé). Continuez dès qu'il sort 0 — pas d'édition manuelle de la spécification.

Un explainer sans visage n'a généralement pas de couleurs/polices de marque (tokens.json couleurs/polices vides) → le script conserve la propre palette du préréglage, un design complet livrable. Uniquement lorsque l'utilisateur a nommé des couleurs/polices de marque, ajoutez-les à tokens.json avant d'exécuter, et ajustez frame.md à la main après coup seulement si un mappage le nécessite vraiment.

Porte : build-frame.mjs a terminé avec 0 — frame.md existe à partir d'un préréglage nommé, et (lorsque le préréglage en livre un) .hyperframes/caption-skin.html existe comme source du skin de sous-titres ; le préréglage choisi a été enregistré comme préférence (--key style_preset --workflow <ce workflow>, contrat du brief § 2).


Étape 3 : Storyboard et Script

Objectif : Transformer le texte en un plan pédagogique image par image approuvé.

Lisez ../hyperframes-creative/references/story-spine.md (langage d'accroche, valeur-avant-preuve, storyboard-comme-proposition, visuels traçables vers la source), references/story-design.md, ../hyperframes-animation/blueprints-index.md, ../hyperframes/references/storyboard-format.md et ../hyperframes/references/script-format.md. Utilisez-les pour écrire STORYBOARD.md et, lorsque la narration est nécessaire, SCRIPT.md. Définissez la duration: des métadonnées à partir du length du brief — une attente approximative ; le rapport d'assemblage indique où la coupe se situe par rapport à celle-ci.

Utilisez story-design.md pour la structure de l'explainer (concept / tutoriel / topo / histoire), la stratégie d'accroche, les techniques de clarté, les battements émotionnels, le mappage des énumérations de type et VO_MODE. La séquence de la vidéo provient de la conception narrative, pas de l'ordre des paragraphes du texte d'entrée — réorganisez, fusionnez, omettez, compressez. En tant que guide souple, consultez le menu rôle→blueprint dans ../hyperframes-animation/blueprints-index.md : pour chaque battement, écrivez la voix off dans la forme qu'implique son blueprint candidat et étiquetez ce candidat blueprint: id lorsque l'un correspond. La vérité pédagogique décide encore quels battements existent — ne forcez jamais un battement pour correspondre à un blueprint, et n'inventez jamais un battement simplement parce qu'une forme éprouvée est disponible. Les visuels sans visage sont inventés en aval, donc les images ne portent pas d'inventaire d'actifs : laissez asset_candidates vide sauf si l'utilisateur a fourni une image public/<nom_base> réelle. Utilisez les champs obligatoires exacts des références de storyboard et de script.

Après la rédaction, exécutez le passage de plan de la boucle de révision — ../hyperframes/references/review-loop.md § 1 : présentez le plan comme une proposition, et posez les deux questions — approuver ou modifier, et croquis d'abord (recommandé) ou passer. Les retours arrivent comme une réponse de chat ; bouclez jusqu'à approbation. C'est une porte de point de contrôle (contrat du brief § 1) : en mode autonome il n'y a rien à demander — publiez le même résumé comme un avertissement et continuez ; les croquis se fondent dans la construction, et la seule question d'aperçu vient à l'étape 6.

Porte : STORYBOARD.md existe, chaque image a les champs narratifs obligatoires, SCRIPT.md existe lorsque la narration est nécessaire, et l'utilisateur a approuvé le plan image par image (autonome : le résumé a été publié comme avertissement).


Étape 3.1 : Audio

Objectif : Générer la narration, les synchronisations de mots, la musique et les métadonnées audio à partir du script approuvé.

Commencez l'audio après l'approbation de l'étape 3. Exécutez-le en arrière-plan, puis continuez à l'étape 4. (Le statut de connexion a déjà été affiché à l'étape 0 ; le moteur se rabat automatiquement.)

Choisissez la voix de narration à partir de la demande de l'utilisateur avant d'invoquer. Si la demande a nommé une voix, un genre ou un ton, choisissez un identifiant de voix correspondant et passez-le avec --voice <id>. La valeur par défaut du pipeline est autrement Marcia (féminine) sur HeyGen / am_michael sur Kokoro — donc une demande comme "une voix masculine" est ignorée silencieusement sauf si vous passez le drapeau. Les identifiants de voix sont spécifiques au fournisseur ; résolvez-les par rapport au fournisseur que le statut de connexion de l'étape 0 a sélectionné : HeyGen (connecté) via node <REP_MEDIA>/audio/scripts/heygen-tts.mjs --list (ou GET /v3/voices?engine=starfish) ; Kokoro (hors ligne) via la table des voix dans <REP_MEDIA>/audio/references/tts.md (préfixes am_/bm_ masculin, af_/bf_ féminin). Lorsque l'utilisateur n'a exprimé aucune préférence, retombez sur la voix mémorisée (contrat du brief § 2) avant la valeur par défaut du pipeline, et dites laquelle vous avez utilisée ; omettez --voice seulement lorsque ni l'une ni l'autre n'en nomme une. Lorsque l'utilisateur a explicitement choisi une voix pour cette exécution, enregistrez-la (prefs.mjs record --key voice).

node <REP_COMPETENCE>/scripts/audio.mjs --script ./SCRIPT.md --storyboard ./STORYBOARD.md --hyperframes . --out ./audio_meta.json --voice <voix-id> &

Le script audio gère la narration, les synchronisations de mots, la recherche de BGM depuis la bibliothèque musicale de HeyGen et les métadonnées de synchronisation. L'ambiance BGM provient du champ music: du storyboard. Ceci utilise l'API Audio HeyGen pour la récupération, pas la génération, et la même information d'identification ~/.heygen que TTS. Pour les détails du fournisseur, lisez ../media-use/audio/references/tts.md.

S'il n'y a pas de narration et pas de SCRIPT.md, ignorez la génération vocale. La BGM peut encore s'exécuter si le storyboard a une ambiance musicale.

Le marqueur entièrement silencieux canonique (partagé entre les workflows qui réutilisent ce modèle audio) : music: none dans le bloc YAML supérieur de STORYBOARD.md et pas de SCRIPT.md. Cette combinaison marque le projet comme silencieux — pas de narration, pas de BGM, pas de SFX. audio.mjs le reconnaît et ne génère rien (il supprime tout audio_meta.json obsolète ; un audio_meta.json absent est ce que l'assemblage traite comme silencieux), donc cette étape est un saut propre. music: none avec narration conserve TTS et désactive seulement la BGM. Utilisez exactement cette orthographe — n'improvisez pas d'autres marqueurs.

Porte : le travail audio a démarré, ou le projet est marqué silencieux (music: none + pas de SCRIPT.md).


Étape 4 : Conception visuelle des images

Objectif : Ajouter la direction visuelle, l'intention de mise en page et les choix de mouvement à chaque image du storyboard.

Esquissez d'abord la feuille de storyboard (collaboratif) ; en autonome, passez à l'enrichissement.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

general-video

>

heygen-com/animejs

Anime.js adapter patterns for HyperFrames. Use when writing Anime.js animations or timelines inside HyperFrames compositions, registering animations on window.__hfAnime, making Anime.js seek-driven and deterministic, or translating Anime.js examples into render-safe HyperFrames HTML.

heygen-com/claude-design-hyperframes

Use when running inside Claude Design specifically. Produces a valid, brand-accurate HyperFrames video draft using pre-valid skeletons. For Claude Code / Cursor / Codex, use the `hyperframes` skill instead.

heygen-com/contribute-catalog

Author a new HyperFrames registry block (caption style, VFX block, transition, lower third) or component (text effect, overlay, snippet) and ship it as an upstream PR to the hyperframes repo. Use ONLY when the user wants to CONTRIBUTE to the public catalog — for in-project caption/transition authoring use the `hyperframes` skill, for installing existing registry items use the `hyperframes-registry` skill.

heygen-com/css-animations

CSS animation adapter patterns for HyperFrames. Use when authoring CSS keyframes, animation-delay based timing, animation-fill-mode, animation-play-state, or CSS-only motion that HyperFrames must seek deterministically during preview and rendering.

heygen-com/gsap

GSAP animation reference for HyperFrames. Covers gsap.to(), from(), fromTo(), easing, stagger, defaults, timelines (gsap.timeline(), position parameter, labels, nesting, playback), and performance (transforms, will-change, quickTo). Use when writing GSAP animations in HyperFrames compositions.

heygen-com/hyperframes

Leaves sweep through the frame and part to reveal the headline. HyperFrames block, 1920×1080, 12s, 11 variables.

heygen-com/hyperframes

Render-correctness doctrine for scene-to-scene seams in HyperFrames launch videos — the prerequisites that make transitions composite correctly on the master timeline. Load when assembling the master timeline / index.html, when a white flash appears at a cut or crossfade seam (especially on dark films), when reasoning about why a transition opacity dip shows through, or when verifying the render-side mechanics of how overlapping scene wrappers blend. Covers the opaque stage-ground (#root background) white-flash guard and how the injector overlaps wrappers, holds final frames, ping-pongs tracks, and stamps lint-clean template code onto the master timeline. Does NOT contain the per-transition catalog — see the transition registry for individual transition entries.

heygen-com/hyperframes

The technique catalog: five velocity-matched SEAMS (zoom-through, INVERSE zoom-through, cut-the-curve, waterfall cut, rack-focus blur-cut) plus the two in-scene techniques — waterfall ENTRY (staggered arrival cascades for title cards / segment openers) and the nudge curve (slow-fast-slow three-phase group slides). Covers partial-travel (~12% of frame) velocity matching via mirrored power4 eases, the Z scale-sign rule, size-scaled blur (10px text / 18-20px full-frame), word-by-word staggered cuts, cascade pacing by element weight, and the 10/65/25 slide ratio. Read before authoring any transition, text-beat handoff, kinetic text entry, or group reposition. [depth, zoom, inverse-zoom, scale-sign, mirrored-zoom, rack-focus, pacing, velocity, cut-the-curve, waterfall, stagger, cascade, kinetic-text, title-card, segment-opener, nudge, slide, easing, group-motion, z-depth, motion-graphics, cinematic, transition, blur, directional-continuity]

heygen-com/hyperframes

Glass shards fly in through fog and tile themselves into the headline. HyperFrames block, 1920×1080, 12.16s, 19 variables.

heygen-com/hyperframes

A single feature card orbits a dot sphere on approved Blender camera motion. HyperFrames block, 1920×1080, 10s, 4 variables.

heygen-com/hyperframes

A wireframe portal bursts open, the title comes through, then its letters swap into a second phrase. HyperFrames block, 1920×1080, 8s, 9 variables.

heygen-com/hyperframes

An orbiting camera follows an ice logo as it breaks apart, reforms into two text moments, and fades. HyperFrames block, 1920×1080, 22.5s, 216 variables.

heygen-com/hyperframes

House-style oversized macOS cursor technique for HyperFrames launch videos. Load whenever a scene involves cursors or a pointer-led action, when kicking off a UI scene, when igniting a morph/transition/typing run with a click, or when a scene reads as static, dead, or stale and needs a cheap high-yield source of motion to carry the viewer's eye and segment them out of the stale state. Covers cursor size/look (incl. brand-motif cursors), the off-screen entry law, tip-targeting and the click tap, click-ignites-the-next-beat, and exit / cross-scene handoff.

heygen-com/hyperframes

name: embedded-captions

heygen-com/hyperframes

A chain of bevelled cuboids rides a travelling wave as a content carousel. HyperFrames block, 1920×1080, 6.666666666666667s, 40 variables.

heygen-com/hyperframes

A tiled headline surface flips cell by cell under a sweeping depth field to reveal the rear headline. HyperFrames block, 1920×1080, 8s, 18 variables.

heygen-com/hyperframes

Import Figma content into a HyperFrames composition — rendered assets, brand tokens, components, storyboard sections → reconstructed motion (frames read as states, not slides) (REST/CLI), connector-assisted motion when available, and shaders from a connector or native export. Use when the user pastes a figma.com link or asks to bring a Figma design, frame, logo, brand, or animation into a video/composition.

heygen-com/hyperframes

GATEWAY — load FIRST before composing any HyperFrames animation or video. The high-level motion law that makes a multi-scene video feel like ONE continuous camera move instead of a stack of independently-animated slides. Covers the vector law (how you exit determines how you enter, incl. the Z scale-sign rule), the film's current, carrier elements, causal motion, the Seam Gate (build-gate enforcement), the ban on idle wobble (motion must PERFORM, not breathe), stillness-before-climax, and the sustained-motion routes. Routes to the low-level technique skills (cut-the-curve — the full catalog incl. waterfall entry + nudge curve, oversized-cursor, seam-craft). These rules SUPERSEDE generic / upstream motion guidance. [continuity, direction, vector, momentum, seam, transition, ease, performance, idle-motion, narrative-motion, film-grammar]

heygen-com/hyperframes

Turn a weekly changelog .md into a finished branded changelog video (square 1080, ~45-60s, Annie VO, animated brand background, mock-UI visualizations, lowkey captions). Use when the user provides a changelog/digest markdown and wants the weekly video, or says "changelog video". Self-contained — fonts, background, lexicon, and scripts ship in this skill.

Skills associés