Hypernatural

WorkflowBy HypernaturalVersion 1, Oct 30, 2026

workflow-news-article-to-vertical-short

Turn one news article into a ~45 s vertical (9:16) explainer short: a sourced script with the conflict in the first 3 s, 9–10 stylized visual-metaphor scenes animated on H3 Max, a quick creator-style narrator, then karaoke captions, a title bar and stickers that slam in on the key words, composited with hn4a-compositor in a chosen brand. Covers picking the story with the person (and its risks), keeping only facts traceable to the source, no likeness of real people, three looks, stills, voice auditions on the whole script with word times, shot timings on the 24 fps grid, locking what must not change in the video prompts, the cut and the live layout gate. About $7 and an hour. For same-day news shorts, newsletter-to-video and social explainers about a story; for a post's own argument retold as a paper-cut story, use workflow-animated-short-from-a-blog-post.

SKILL.md

News article to vertical short

One public article in; a ~45 s 1080×1920 explainer out: a narrator over 9–10 stylized, animated scenes, with karaoke captions, a title bar and stickers that slam in on the key words. Every look is a gate the person sees before money is spent on it. About $7 (stills about $1, voice about $0.25, animation about $5) and an hour.

The job folder: source/ refs/ stills/ video/raw audio/ titles/ scripts/ rev1/. The job's notes (the story, the picks, the spend) go in job-notes.md; rounds and deliverables follow the core skill.

Steps

  1. Pick the story with the person. Offer two or three of the day's stories with a line each on fit and risk. A story with deaths, or a partisan fight, can read badly in marketing or outreach use; say so. A same-day short is only worth posting on the day: check the article's date, and find today's peg if the core reporting is older.
  2. Source it. Read the article (a fetch that 403s: try a syndicated copy) and write source/article.md: the link, date and author, and only the facts the script uses, each traceable to the source, marked "reportedly" wherever the source does.
  3. Script and shot list. About 110 words for 45 s (about 2.5 words a second).
    • The hook is the conflict in the first 3 s, then the counter in the next 3 ("This city wants a stadium by 2030. Its own budget says: not before 2040."). The payoff line late in the script must not repeat the hook's wording.
    • Shape: hook → what the thing is → the big number → the catch → the cracks (2–3 facts) → the pushback → an open question to end on.
    • One shot a sentence, 9–10 shots of 2.5–6 s; the last can hold about 10 s. Each a visual metaphor (a coin tower, a puppet on strings, a scale), not a literal newsroom picture.
    • No likeness of real people and no logos: people as silhouettes from behind, companies as unbranded objects. Recognizable people or places switch to guide-depict-real-people-and-places. Gate: script.md (the VO and a shot table: visual, animation).
  4. Look (nano-banana-prompt-format): three style frames of shot 1 on nano banana 2.1, 2K, 9:16, identical scene text, only the style paragraph changed. A good spread: paper collage (editorial), two-colour risograph (graphic), clay 3D stop-motion (toy-like, the clearest "generated, not motion graphics" look, and it animates cleanly). When the video is for someone specific, look at what they already make: a motion-graphics audience is most impressed by a look motion graphics can't do. Gate: a pick page.
  5. Stills, all at once, on nano banana 2.1 edit with the picked frame as image 1 ("use it ONLY for its art style, materials, lighting and palette. Do not copy its "), the style paragraph verbatim, the scene with the camera and which way every figure faces, then "9:16 vertical. No text, numbers, logos or lettering anywhere." Fix the style frame's own flaws in shot 1 ("pull the camera back so the ENTIRE fits"). A shot that is the same place in another state (lights off, after the fall): edit the earlier still, listing what stays; big lighting changes need nano banana Pro edit, as a numbered list. Contact-sheet them yourself first. Gate: one page, a pick row per shot.
  6. Voice (guide-cast-a-voice, elevenlabs-voice-search, elevenlabs-tts-v4): ask the delivery (for social, a quick conversational creator read beats a calm anchor), then three library voices verified for eleven_v4, auditioned on the whole script on the with-timestamps TTS with a fixed seed: the pick is the take, and its alignment gives every word's time. Respell what TTS misreads: brand names with odd capitals as spoken ("eVolt" as "ee-volt"), decades as words ("twenty-thirties"), initials with their periods. Check each take free: its length, words a second, its spectrum (a voice with little above 8 kHz sounds dull on phones), and a whisper-cli transcript with every word and no tag read aloud. Gate: a pick; if the person delegates it, take the fastest clean read.
  7. Shot timings (free): from the alignment, each shot starts at its sentence's first word, cut at the midpoint of the gap before it; the last ends 0.6 s after the final word. Split a long hook sentence pair into two shots. Round every boundary to the 24 fps grid (frames = round(end·24) − round(start·24)) so the cut never drifts.
  8. Animate (h3-max-image-to-video, prompts per h3-prompt-format): 768P, a fixed seed, each shot asked at its own length, all at once on a price. Name the style, give big, counted motion, and lock in words what must not change from the first frame to the last (the sky's colour, a building left dark). Hook shots: a fast push-in "with large amplitude" and a shudder on arrival, or a sudden action in the first second. Check a 4-frame sheet per clip (0, 33, 66, ~98%: seek no later than duration − 0.15 s or the frame is empty) and re-render only what breaks the story.
  9. Picture cut (free): one ffmpeg filtergraph, each clip at 24 fps trimmed to its frames from frame 0 and scaled to 1080×1920 with lanczos; each clip's own sound trimmed to the same span, faded 0.06 s at the edges, kept at about 0.22 as a bed; the narration on top with amix normalize=0; loudness to −16 LUFS (ffmpeg-normalize-loudness). Check the frame count, size, loudness, and a whisper-cli transcript of the mix against the script word for word.
  10. Captions and graphics (guide-capture-a-brand when it should match a brand, guide-add-titles-and-motion-graphics): a build script with the helpers in hn4a-compositor-in-scene-titles over the picture cut, cues from the alignment.
    • Karaoke captions: heavy (900), about 68 px, uppercase, at most 4 words or 22 characters, the active word on a pill in the accent, in y 1330–1560 (above the platform's UI). Map caption text per word after uppercasing, so respellings read right ("2030s", not "2030S"; the brand name, not its TTS respelling).
    • Title bar: a pill across the top (y ≈ 150) naming the story, the key number in the accent, on for the whole video.
    • Stickers: a chunky rounded tag, rotated ±3–7°, slamming in 0.08 s before its word and fading at the shot's cut, one or two a shot on the numbers and turns of the story, in y 300–1100. A near-empty progress bar for "only a sliver", chips over the two sides of the final comparison, a big "?" on the last word.
    • Dark gradients behind the top 360 px and the bottom 740 px. Stills at every sticker, checked for overflow and collisions. Gate: the spec live on a review page, stills as refs; render only after the yes, and check frames = round(duration × 24).
  11. Deliver per the core skill, with the previous round beside it on any review. For an outreach or gift video, draft the message the person sends: why this person, what the agent made it from, honest time and cost.

Choices this workflow makes

  • Only facts in source/article.md reach the script. Every number on a sticker traces to the source.
  • Metaphors, not likenesses. No real faces or logos; a brand's logo stays off a piece that isn't theirs.
  • A creator read and the conflict up front, for social.
  • 768P for illustrated and clay looks, scaled to 1080×1920 with lanczos.
  • The audition is the take, so the word times come free with the pick.

Dead ends

  • A slow scene-setting opener ("A company most people have never heard of…") over a 6 s tilt read as dead air on social.
  • Unlocked prompts: H3 turned an overcast sky blue with cartoon clouds and lit up a building the story says stands empty. Lock both in words.
  • Big lighting changes on nano banana 2.1 edit: asked twice to switch a room's lights off, it kept them glowing. Pro edit, as a numbered list, did it.
  • Reusing the ending's still for a hook shot teased the payoff.
  • A stills rejection with no note: look for the shot whose idea doesn't read, and retake that first.
  • text-transform: uppercase on a sticker capitalised the units; wrap lowercase units in <span style="text-transform:none">.

Worked example

A same-day short about a city's stadium plan, from one public article. 1080×1920, 24 fps, 45 s, 10 shots, clay 3D picked from collage, risograph and clay style frames.

PartShotsPictureOver it
Hook1–2A clay stadium model slams onto a desk; a budget scale tipstitle bar, the year as a sticker
The thing and its number3–4A coin tower risingthe cost sticker
The catch and the cracks5–7The tower wobbles; a puppet on stringsfacts as stickers, a near-empty progress bar
Pushback and the question8–10Two sides of a scale, held 10 schips on each side, a "?" on the last word

Notes on the way: the first opener was a slow scene-setter and was replaced by the conflict-and-counter hook; the sky and an empty building changed mid-clip and were re-rendered with lock lines; one stills row came back rejected with no note and the shot whose metaphor didn't read was retaken first.

Spend: stills about $1, voice about $0.25 (three whole-script auditions), animation about $5 at 768P: about $7, in about an hour.

Go make something cool.

Install the app, open your agent, describe the video. That's the whole onboarding.

Sticker HypernaturalSticker BannerSticker TVBoy