Free Field Guide · The AI Shorts Machine
Script in. Published Short out. No camera.
Your cloned voice, your face from one selfie frame, an edit written in code, and a script that posts it to YouTube and Instagram. The exact steps and settings, in the order they were figured out.
Before You Start
- ◆An 11 Labs account with your voice cloned from one clean recording
- ◆A HeyGen account with API access and a few dollars of credit
- ◆Node.js installed. HyperFrames runs from the terminal
- ◆A Zernio account with YouTube and Instagram connected
- ◆One 30-second selfie clip of you talking to camera
15min
Hands-on time per Short after the one-time setup
$3avg
Cost per Short: voice characters plus avatar credits. Posting is free for two accounts
90sec
Render time for a 43-second Short at 1080x1920
5cuts
Versions before the final. Each one fixed what the last one exposed
The 8 Steps
The recording was the bottleneck. Remove it.
Steal the format, not the video
Find a Short in your niche that already works. You are not copying the footage. You are reverse-engineering the structure so your version follows beats that are proven to hold attention.
- 1.Pull the audio and transcribe it with word timestamps
- 2.Grab one frame every half second and lay them out as a contact sheet
- 3.Write down the timeline: when the hook card ends, when captions start, when the punch-ins hit
- 4.Name the sections. A typical talking-head Short has 5 or 6: hook card, split screen, punch-in, mockup, payoff, open loop
The format is the asset. The footage is disposable.
Write the script to the beats
Hook in the first 3 seconds. Value in the middle. Payoff at the end. Open loop or CTA last. Under 120 words for a 40-second Short.
- 1.Match your script to the section timeline from step 1
- 2.One idea per Short. If it needs two, it is two Shorts
- 3.Read it out loud once. If you stumble, the voice model will too
Clone your voice and make it move
One clean 2 to 3 minute recording of you talking is enough to clone your voice in 11 Labs. The clone is the easy part. Making it sound like you on a good day is the setting.
- 1.Generate with the v3 model, not multilingual v2
- 2.Stability 0.5, similarity 0.75, speaker boost on
- 3.Drop delivery tags into the text at section turns: [confident] at the open, [excited] at the turn, [serious] at the warning, [curious] at the close
- 4.Use the with-timestamps endpoint so every word comes back with a start and end time. That timing drives every caption later
The snag: The default settings (v2 at stability 0.7) measured 2.2 semitones of pitch movement. That is a phone tree. Turning stability down did nothing. The v3 model with tags took it to 3.1. Ian talking through a voice changer measured 3.8. That gap is the difference between "AI" and "you."
Monotone is a setting, not a limitation.
Train your face from one frame
HeyGen builds a photo avatar from a single still and lip-syncs it to your audio. The whole result lives or dies on which frame you pick.
- 1.Shoot a 30-second selfie clip talking to camera, or use one you already have
- 2.Step through it frame by frame and find the one shot where your eyes are on the lens, not the screen
- 3.Upload that frame as a photo avatar
- 4.Generate the video from your 11 Labs audio: 9:16, 1080p
The snag: Selfie footage is almost always eyes-on-screen, which reads as looking slightly down. The first avatar came from that kind of frame and looked away from the viewer for the whole clip. HeyGen has no gaze-correction switch. The frame is the fix.
Second snag: the newer photo-avatar endpoint cost 177 credits for one clip. The legacy talking-photo path did the same job for 42. Same output.
Let code do the edit
HyperFrames renders video from an HTML file. Every element of the reference format becomes a component you build once: the hook card, the YouTube Studio mockup with your own thumbnails, the pill captions, the phone player, the watch page with a view counter.
- 1.Captions are timed from the 11 Labs word list, so a new script re-times the whole video automatically
- 2.The avatar video is the base layer, cropped differently per section
- 3.Screen shares are HTML mockups of your own channel: real avatar, real titles, real view counts
- 4.Run the check gate (layout, contrast, motion) before you render
npx hyperframes init my-short --example blank --resolution portrait npx hyperframes check npx hyperframes render --quality high --output out/short.mp4
The snag: The first mockups showed a competitor’s channel. Scraping Ian’s own channel page for the avatar, titles, thumbnails and view counts fixed it in one pass, because mockups are code and code re-renders.
Sound: match loudness, not level
A clean voice chain, a soft music bed carved under the voice, and a loudness target copied from the reference.
- 1.Voice chain: high-pass at 90 Hz, mud cut at 250 Hz, gentle compressor, presence lift at 3 kHz, limiter at minus 1 dB
- 2.Music: a low-volume bed whose energy sits under 80 Hz with sparse mids, so it never fights the voice
- 3.Carve the bed so it dips in the bands the voice uses and comes back between phrases
- 4.Measure the reference in LUFS and normalize to it. The reference reel measured minus 14.2, so that was the target
- 5.Finish with a 1.2x speed pass, pitch preserved
The snag: Adding 3 dB of gain did almost nothing because the limiter ate it. The reference was louder because it was more compressed, not because it was turned up.
Publish once, everywhere
Zernio gives you one API key, one profile, and OAuth links to connect YouTube and Instagram. One script uploads the MP4 and posts to both.
- 1.Connect each platform through the API-generated link, not the dashboard button
- 2.YouTube detects Shorts on its own: vertical and under 3 minutes
- 3.Title under 100 characters, keyword first. Category set to Education, because the default is People & Blogs
- 4.First three hashtags in the description show above the title
- 5.Set Related Video on the Short to your long-form or your VSL. It is the free traffic button most people never flip
The snag: YouTube "connected" twice and never showed up in the API, because the dashboard button landed the connection in a different workspace. The API link bound to the right profile worked first time. And pick the Google identity that owns the channel. If it is a Brand Account, that is the entry in the chooser, not your personal Gmail.
Turn comments into DMs
On Instagram, one comment-to-DM rule on the reel. Anyone who comments your keyword gets the promised resource by DM automatically, plus a public reply so the thread shows it works.
- 1.Keyword match on the whole word, typo tolerant, also fires if they DM the keyword instead of commenting
- 2.Two DM variants rotate so repeat sends do not look templated
- 3.YouTube has no DMs, so pin a comment with the keyword instead
The keyword has to deliver something you already have. A promise you have to scramble for is not a lead magnet.
Troubleshooting
Every snag from the first build and the fix.
Symptom
Avatar looks away from the viewer
Fix
Retrain from a frame where the eyes are on the lens, not the phone screen. Step through the clip frame by frame.
Symptom
Voice sounds flat
Fix
Switch to the 11 Labs v3 model with delivery tags. Lowering stability on v2 does nothing measurable.
Symptom
HeyGen says insufficient credit
Fix
Use the legacy talking-photo path. Same lip-sync, about a quarter of the credits. Turn on auto-reload.
Symptom
YouTube connected but the API cannot see it
Fix
You connected into a different workspace. Use the API-generated link for the right profile and pick the Google identity that owns the channel.
Symptom
Music fights the voice
Fix
Carve, not duck. Dip the bed only in the bands the voice occupies and let it return between phrases.
Symptom
Mix is quieter than the reference
Fix
Match integrated loudness in LUFS. Gain alone hits the limiter. The reference is more compressed, not louder.
Symptom
Short published as People & Blogs
Fix
Category cannot be changed through the posting API after publish. Set it in YouTube Studio, and set it in the script for next time.
The Stack
Four tools. One machine.
None of them are sponsored. They are what ran the first Short end to end. Swap any of them if something better shows up. The system is the point.
11 Labs
Voice clone, v3 model, word timestamps.
elevenlabs.io →HeyGen
Photo avatar from one frame, lip-sync from your audio.
heygen.com →HyperFrames
Video rendered from HTML. Captions, mockups, and cuts as code.
hyperframes.heygen.com →Zernio
One API to post to YouTube, Instagram, TikTok and more. Comment-to-DM automations.
zernio.com →Want this machine built around your offer, your voice, and your channel?