Hypernatural

GuideBy HypernaturalVersion 2, Oct 26, 2026

guide-prepare-renders-for-delivery

What to do with picked renders before they go to the client: native 1080p or 720p plus a Topaz upscale, frame-exact trims, grain for plastic skin, splicing clips into the source cut over its audio, 9:16 vertical crops, loudness, and small and no-audio copies. Use for finishing, post, conform, upscale, trim, film grain, splice, vertical or TikTok versions, delivery files.

SKILL.md

Prepare renders for delivery

From a picked render to the file the client gets: the right resolution, cut to the frame, texture matched to the source, placed in the cut, reframed if asked, with the copies the client wants. Where each file goes (the round's folder, names, which shots go out) is decided per job and recorded in AGENTS.md; the core skill covers that layout.

First question: what resolution did the render come out at, and what does the job deliver? Probe every render (ffprobe-inspect-media) before touching it: frame rate before any trim, an audio stream before any mux.

Routes

StepRouteWhenCost and timeLeaf
ResolutionNative 1080p renderThe whole frame ships and needs photographic detailSeedance 2.5 at 1080p: 6–30 min a render; H3 Max's 1080P tier costs twice its 768Pguide-choose-a-video-model
ResolutionRender only the pixels you useOnly part of the frame ships: a presenter in a slide layout, a speaker in a window, a vertical cropA portrait 720p (768P) speaker costs and waits less than a 1080p frame you'd crop awayguide-lipsync-video, guide-choose-a-video-model
Resolution720p render, then TopazOnly to save money where quality matters less; not a route to 1080p quality720p about 6 min plus the upscale; it softens fine detailtopaz-upscale
Cut to lengthFrame-exact trim at native fpsEvery renderLocal, secondsffmpeg-frame-exact-trim
TextureGrain in postNotes of plastic or shiny skin on an otherwise good takeLocal, seconds; no re-renderffmpeg-grain-for-plastic-skin, python-measure-detail
Into the cutSplice picked clips into the source timeline over its audioShot-for-shot and recast jobsLocalffmpeg-splice-into-source-cut
Vertical9:16 window per shot, panning where neededA vertical version of a 16:9 cutLocalffmpeg-crop-to-vertical
SoundLoudness normalizeA new or assembled trackLocalffmpeg-normalize-loudness

Choosing

  • How many pixels do you need? Resolution trades cost and latency against pixels. If the deliverable uses only part of the frame (an avatar or presenter composited into a layout), render at the size you use, such as a portrait 720p speaker, and don't upscale. If the whole frame ships at 1080p quality, render it at 1080p natively.

  • 1080p with realism and photographic grain: H3 Max can't; Seedance 2.5 can, at 5+ min a render. Draft on the fast model and pay for 1080p only on the take that ships.

  • Topaz is not the way to 1080p quality. It enhances what is there without inventing detail, but it softens fine detail: a wide shot at 720p plus Topaz came back soft with its logo illegible, and was redone at 1080p natively. Use it only to save money on shots where quality matters less, mixed with native renders if need be. Upscale the untrimmed render, then trim; keep the source of an upscale beside it.

  • Too long: trim, never speed up. Every model spreads the action over its whole clip; a sped-up clip reads badly. If the model idles before acting, start the trim later instead.

  • Shot files carry a 0.5 s tail past the cut, so a word finishing over the next shot is still in the file; the cut itself always uses the exact shot length.

  • Plastic skin: grain before a re-render. Size 2 (one-pixel grain vanishes at any scaled-down size); pick the strength from a ladder of 100% crops against the source (10 is light, and was the pick on a close-up). Grain won't fix shine that is in the lighting.

  • Splicing: frames without a replacement keep the original footage, and the source's audio runs under everything. A clip whose line a video model re-voiced keeps its own audio instead (guide-lipsync-video).

  • Vertical: crop every shot first (a 608×1080 window from 1080p), look at the whole vertical cut, and restage only the shots where the crop loses a story beat (a second character, an interaction, the product), not for empty space (guide-edit-a-frame-before-animating, recipe-reframe-vertical). Follow the subject and the action across the shot; pad end cards and wide graphics to fit instead of cropping them.

  • Vertical resolution: ship the crops at their native 608×1080, the pixels the source has; an upscale adds cost, not detail. If a vertical must be full 1080×1920 quality, restage those shots and render them natively at 1080p 9:16 with Seedance rather than putting Topaz on the crops.

  • Frame rates: a lip-sync pass that returns 25 fps goes back to 24 with fps=24:round=near, never by blind resampling.

Copies

Make these from the finished file, at the end:

  • Small review copy: exec ffmpeg -i cut.mp4 -vf scale=960:-2 -c:v libx264 -preset veryslow -crf 28 -c:a aac -b:a 96k cut_small.mp4 (a vertical cut: scale=540:-2).
  • No-audio copy, video untouched: exec ffmpeg -i shot03.mp4 -c:v copy -an shot03_noaudio.mp4

Check it

  • Count frames after every cut (exec ffmpeg -i clip.mp4 -f framemd5 -) against the shot's frame count.
  • Look at a contact sheet of the whole cut and listen to its start.
  • Re-check placement of a spliced dialogue track by transcribing the export.

Avoid

  • Retiming a clip to fit.
  • ffmpeg 7 dropping the last frame of a trimmed segment without -r <fps> on the output (25 frames in, 24 out); fps= inside per-segment filter chains before a concat lost one frame per shot (472 of 484).
  • Upscaling after trimming.
  • Re-rendering for texture before trying grain.

Go make something cool.

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

Sticker HypernaturalSticker BannerSticker TVBoy