authustle
3 min readUpdated Aug 2, 2026

How to Animate a Photo Into a Talking Video With Lip Sync (2026)

Turning one still photo into a speaking video is now a single API call. Which model to use for script-driven versus audio-driven talking heads, what each costs, and the settings that keep the face stable.

Animating a still photo into a talking video used to mean a face-tracking pipeline and a separate lip-sync pass. In 2026 it is one call, and the only real decision is whether the performance is driven by a script or by an audio file you already have.

Two paths, two models

You have a script. Use alibaba/happy-horse/v1.1/image-to-video at $0.14 per second. It generates the audio natively and lip-syncs multilingually in the same call, outputs 1080p, and supports nine aspect ratios including genuine 9:16 and 4:5. For vertical social content this is the shortest route from a photo to a finished clip.

You have an audio track. Use fal-ai/bytedance/omnihuman/v1.5 at $0.16 per second. It is audio-driven: hand it a photo and an audio file, and the expressions and body movement track the audio rather than a text prompt. If you have already recorded a voice-over, or you are using a cloned voice from elsewhere, this is the better fit — you are not paying a model to regenerate audio you already have.

A third option worth knowing about is Kling AI Avatar v2 Pro at roughly $0.115 per second, which is cheaper than both and aimed at the same talking-avatar job.

What ten seconds costs

Model$/second10sDriven by
Kling AI Avatar v2 Pro~$0.115~$1.15script/audio
HappyHorse 1.1 i2v$0.140$1.40script, native audio
OmniHuman 1.5$0.160$1.60audio file

Prices for HappyHorse and OmniHuman were read live on 2 August 2026; the Kling Avatar figure is from our April evaluation and is worth re-checking.

The settings that decide whether it looks right

Keep it short. Face drift grows with duration and with motion amplitude. Five seconds with a restrained prompt holds identity where twelve seconds of animated gesturing starts to soften the face. If you need a long piece, generate several short shots and cut.

Write a restrained motion prompt. "Speaks calmly to camera, slight head movement" produces a stable face. Asking for expressive gesturing gets you expressive gesturing and a face that wanders. This is the single highest-leverage change most people can make.

Start the photo well. Even, frontal lighting, the whole head in frame, no heavy shadow across one side, no sunglasses. The model is inferring a three-dimensional head from your still; ambiguity in the input becomes instability in the output.

Check the aspect ratio before you run it. HappyHorse defaults to 16:9 and to 1080p. If you are making vertical content, set the ratio to 9:16 or 4:5 explicitly — the most common wasted generation in this workflow is a perfectly good landscape clip you cannot post. Resolution is billed at the same flat per-second rate either way on fal, so quality is not the thing to economise on here.

What will not work

Feeding a real person's photo into Seedance 2.0 or Veo 3.1 — both refuse real human likenesses, and the filter sits upstream of every reseller, so switching API providers does not change the outcome. This catches people out because the rejection arrives as a generic content-policy message rather than as an explanation.

Also: a talking-photo model is not a video editor. It cannot put your animated head into an existing clip. That is a different family of model — video edit or motion transfer — and asking image-to-video to do it produces exactly the disappointing result you would expect.

talking photolip syncimage to videohappyhorseomnihumanguide

Keep reading