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.

01

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. 1.Pull the audio and transcribe it with word timestamps
  2. 2.Grab one frame every half second and lay them out as a contact sheet
  3. 3.Write down the timeline: when the hook card ends, when captions start, when the punch-ins hit
  4. 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.

02

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. 1.Match your script to the section timeline from step 1
  2. 2.One idea per Short. If it needs two, it is two Shorts
  3. 3.Read it out loud once. If you stumble, the voice model will too
03

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. 1.Generate with the v3 model, not multilingual v2
  2. 2.Stability 0.5, similarity 0.75, speaker boost on
  3. 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. 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.

04

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. 1.Shoot a 30-second selfie clip talking to camera, or use one you already have
  2. 2.Step through it frame by frame and find the one shot where your eyes are on the lens, not the screen
  3. 3.Upload that frame as a photo avatar
  4. 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.

05

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. 1.Captions are timed from the 11 Labs word list, so a new script re-times the whole video automatically
  2. 2.The avatar video is the base layer, cropped differently per section
  3. 3.Screen shares are HTML mockups of your own channel: real avatar, real titles, real view counts
  4. 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.

06

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. 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. 2.Music: a low-volume bed whose energy sits under 80 Hz with sparse mids, so it never fights the voice
  3. 3.Carve the bed so it dips in the bands the voice uses and comes back between phrases
  4. 4.Measure the reference in LUFS and normalize to it. The reference reel measured minus 14.2, so that was the target
  5. 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.

07

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. 1.Connect each platform through the API-generated link, not the dashboard button
  2. 2.YouTube detects Shorts on its own: vertical and under 3 minutes
  3. 3.Title under 100 characters, keyword first. Category set to Education, because the default is People & Blogs
  4. 4.First three hashtags in the description show above the title
  5. 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.

08

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. 1.Keyword match on the whole word, typo tolerant, also fires if they DM the keyword instead of commenting
  2. 2.Two DM variants rotate so repeat sends do not look templated
  3. 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.

Want this machine built around your offer, your voice, and your channel?