With motion graphics + AI-generated visuals, ad videois made. The render engine is HyperFrames (HTML→video), the visual source is the image-gen policy (Higgsfield CLI), the performance principle is A/B variants — even for video, pulling just one is spending without learning.
Prerequisites: hyperframes skill installation required (if absent, npx skills add heygen-com/hyperframes --all).
This skill is a workflow orchestrator — render rules are owned by hyperframes.
Workflow
1. Brief (at once). What is being sold (product/URL), target placements (Reels/TikTok 9:16, feed 1:1, YouTube 16:9), length (default 30s, range 15–60s), hook candidates, brand tokens (DESIGN.md — if absent, brand-guide first), CTA. If you're going as far as ad delivery, budget/period is at the paid-ads gate — this skill is production only.
2. Routing (follow hyperframes rules).
- If there's a product/site →
/product-launch-video(site capture + brand tokens) - ≤10s cut where motion is the message →
/motion-graphics - Free composition with only assets →
/general-videoAfter routingnpx hyperframes skills update <workflow>— as the router instructs.
3. AI visuals (image-gen policy as-is).
- If you need images for scenes, use the image-gen skill: via Higgsfield CLI, default gpt_image_2, no fallback, READ-verify the output. Do not bake text into images — all copy goes in HyperFrames typography layers.
- Product cutout:
rembg+birefnet-portrait(people) — local, free. - BGM/SFX/icons are handled with the media-use skill (royalty-free only).
4. A/B variants (MANDATORY). Per campaign at least 2, recommended 3 — with different axes:
- 훅 축: make the first 3 seconds different (number hook / problem statement / result first)
- Visual axis: product-centric vs situation-centric vs typography-centric
Reuse shared scenes as subcompositions to lower variant cost. Naming
{campaign}_{hook축}_{visual축}.mp4.
5. Ad spec check (blocking before distribution).
- Hook + brand exposure in the first 3 seconds (assuming sound-off viewing — key copy as on-screen text)
- Safe zone: for 9:16, no load-bearing elements in the top ~140px/bottom ~350px
- Korean copy line breaking: keep-all, do not break at particles (humanizer rule)
- CTA fixed in the last 3 seconds + logo end card
- File: H.264, platform specs (Meta ≤4GB/240min but in practice <100MB, Reels 9:16 ≤90s)
- After rendering, extract frames and READ: visually verify 4 frames — first frame/hook copy/CTA/end card
6. Handoff. Variant set + one-line axis description for each variant → user approval → delivery is paid-ads(budget gate), organic posting is organic-social. After 24–48h, based on performance, turn off the losing variant and make the next set with the winning axis.