Hypernatural

GuideBy HypernaturalVersion 4, Oct 29, 2026

guide-animate-a-shot

Turn a still into a moving shot, or re-animate a shot from an existing spot: image-to-video (img2vid, i2v) from a pinned first frame, first and last frames pinned, reference-to-video (ref2vid, r2v) anchored on the shot's still or composed freely from references, or a video-to-video recast that keeps a take's performance. Weighs the routes, then cuts, briefs, renders and checks the shot.

SKILL.md

Animate a shot

Turn a still into a moving shot, or remake a shot from an existing video. Ask first: must the shot open on, and keep, an exact frame? If yes, pin the frame (i2v, or both ends). If the layout may move a little, anchor a ref2vid render on the still. If the model may compose the shot, use pure ref2vid. If a filmed take already has the performance you want and only the person changes, recast it instead of animating.

Which model to use is guide-choose-a-video-model. Shots with dialogue go to guide-lipsync-video; shots whose logo, label or small product must hold go to guide-keep-small-details.

Routes

RoutePick it whenCost and timeWhat you getLoad
i2v, first frame pinnedThe opening must match the still; the end can be freeOne render; minutes per take, by modelFrame 0 matches the still (Kling ~0.996, Seedance ~0.997); the end drifts where the model takes itkling-v3-image-to-video, seedance-2-5-image-to-video, h3-max-image-to-video
First and last frames pinnedThe shot must reach an end pose the model keeps skipping, or small details must not degrade across the shotTwo stills to make and review first, then one renderBoth ends land; nothing drifts between them, if the two stills are continuousnano-banana-derive-last-frame, python-match-push-in, then an i2v leaf
ref2vid, anchoredReferences (people, product, audio) must drive the shot, and the layout may zoom or shift slightlyOne render; Seedance r2v is slow (minutes)Seedance with the still as @Image1 keeps its layout but opens zoomed or shifted (match 0.86–0.98). Measure, then accept or counter-cropseedance-2-5-prompt-format (r2v mode), python-measure-layout-drift
ref2vid, pureNo frame to hold: the model composes the shot from referencesOne renderA new composition; anything not in a reference changesthe model's prompt-format leaf
v2v recastA filmed take is right and only the person changesOne render per take; source ≥ 5 sThe original performance exactly, new personh3-max-recast (and guide-recast-a-person)

Models that take an end frame: Kling v3, Seedance 2.5 i2v, H3 Max (i2v and r2v), Wan 3. Seedance r2v has no frame inputs at all: the still is @Image1 only by the prompt's say-so ("Image 1 is the first frame"), which is why it opens slightly off.

Choosing

  • Layout must stay exactly: i2v, or both ends pinned. Never pure ref2vid; it redraws the opening (0.2–0.5 SSIM against the still).
  • People and props already in the pinned still stay consistent through i2v. Anchored ref2vid with every character sheet was no better than i2v on a busy wide shot; reach for it when the references carry something the still cannot (audio, an entrance, a product that turns).
  • Pin the last frame when a timed end state matters or a small detail has to survive the whole shot. Derive it from the locked first frame (never from the source's last frame), then crop it to the source's push-in.
  • Complex physical motion (papers falling like feathers, a burst of objects): Seedance i2v, not H3 Max.
  • A whole take worth keeping, new face: recast. A new performance: swap the still, then animate it.

Process

Each gate is a review page (review_open, review_wait) with the original shot as the reference and the measured numbers in each candidate's note.

  1. Cut and inspect the source. ffprobe-inspect-media for frame rate and frame count; ffmpeg-scene-cuts for boundaries (scene > 0.15 finds candidates, real cuts score ~0.4–0.8; confirm by eye, since motion inside a shot can score 0.15). Export each shot's first and last stills and an exact-frame clip.
  2. Read the shot. gemini-shot-recreation-brief watches the clip at 24 fps and gives camera, timed beats and sound. Correct it with direction where it is wrong: it sometimes mirrors left and right, and called slow push-ins "locked off".
  3. Make the frames. First frame from guide-edit-a-frame-before-animating or guide-recast-a-person. For a pinned end: nano-banana-derive-last-frame from the locked first frame, as text edits only, then python-match-push-in (image models ignore "pushed in 10%"). Gate: first ↔ last on a flip; hair, cuffs, props, eyes must match, or the shot morphs mid-clip.
  4. Write the brief (rules below), one per model, since each model's length floor changes the timing line. Load the model's prompt-format leaf for the grammar.
  5. Gate: the stills that move. Show the person the still of each shot you will animate, say which shots move and how, and price the run (estimate). Ask before the first paid run, a test included: a plan's "animate about six hero moments" is not that yes, and neither is your own look at the stills.
  6. Render about three takes per shot, each under the next free variant letter; with more than a few shots, one shot first. Start every take at once with wait: false.
  7. Check every take before the person sees it, each as it lands (tasks(wait: true, calls: [...], until: "any"), then again with the ids still running), so a re-render starts while the rest still render:
    • python-check-pinned-frames: frame 0 against the first still, where the render lands on the last still, and the overage;
    • python-measure-layout-drift: under 0.95 means it did not open on its still (a bad opening scored 0.68, good ones ≥ 0.98). Raw SSIM misleads: the same layout 2% zoomed scores ~0.5. A shot's own first against last frame is ~0.86;
    • python-measure-judder across takes of one shot (source footage ≈ 0.05). Re-render a take that does not open on its still, with its framing stated in the prompt ("from mid-shin up; never pulls back"). Gate: the takes next to the original, played together.
  8. Trim, don't retime. Cut each pick at native fps to the shot's length (plus a 0.5 s tail if the delivery keeps shot files), starting later to skip an idle opening; see guide-prepare-renders-for-delivery. Keep the untrimmed render.

The brief

  • Timing for the model's floor. H3 Max takes lengths from about 1 s, so ask for the shot's own length there. Keep every shot to about 15 s or less on any model. If the render is longer than the shot (Kling's floor is ~3–4 s), say: play the action at natural real-time speed so it reaches the final pose by the shot's length, then hold it with only tiny natural movement. Every model spreads action over its whole clip otherwise, and a sped-up clip reads badly.
  • Models idle at the start. Kling waits in the opening pose even when told to act "inside the first second". Trim the start instead of fighting it.
  • Spell out counts and amounts: "blinks exactly once", "tips it a third of the way, base below her chin", "walks left in profile, never turning toward the camera". Unqualified, models double the blink, overshoot the lift and turn people to camera.
  • State the camera every shot ("a slow push-in", "locked").
  • Time-cue the beats from the analysis ("From 0.40 s to 1.10 s, the woman lowers the cup"), and the end state ("It ends exactly on the provided last frame: …").
  • Say what makes sound, and "No music or score of any kind" when the cut keeps the source's audio.
  • References in the prompt: how to cite people and props, entrances, and why handles must never reach the model are in references/video-reference-rules.md. Read it before writing any prompt with references.

Avoid

  • Pure ref2vid when the layout must stay; Omni Flash and regular H3 r2v for a held layout (no first frame; they redraw the opening, and Omni lost the faces).
  • The source's last frame as a reference for an edit: its cast and props leak back in.
  • A pinned last frame without the push-in: the clip loses the push-in.
  • Two pinned stills edited independently: on H3 Max the hair morphed mid-shot.
  • Speeding a render up to fit the shot.
  • Judging layout by raw SSIM.

Related

guide-choose-a-video-model (which model), guide-keep-small-details (logos and products through the shot), guide-lipsync-video (speech), guide-recast-a-person (new people), guide-prepare-renders-for-delivery (trim, upscale, grain, splice).

Go make something cool.

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

Sticker HypernaturalSticker BannerSticker TVBoy