Talking photo

video Queued Runs in the background — you get a link when it is ready.

Turn a single photo of a person into a 1080p video of them speaking your audio.

Built for

Built for

  • Spokesperson videos
  • Personalized outreach
  • Explainers without a shoot

How it works

You provide

A photo of a person facing the camera, and an audio track you uploaded (or one made with a voice capability).

You get back

A 1080p video of the person speaking, as long as the audio.

What this means for you

  • Billed per second of audio, rounded up — up to 30 seconds per run.
  • Any photo works as the face; the audio must come from your uploads or assets.
  • Pairs with the voice capabilities: write it, voice it, then make it speak.

Try it

Details

What you can set

SettingType and limitsWhat it means
prompt optionaltext, 0–1000 charactersOptional direction for the performance (calm, animated, looking left…).
audio_url requiredtext, 1–2048 charactersThe speech: the file_url of one of your uploads or the URL of one of your assets. Its length is what you are billed for (up to 30 seconds).
image_url requiredtext, 1–2048 charactersThe photo to animate — a person, facing the camera. An upload file_url, one of your assets, or any image URL.
resolution optionaltext, one of: 1080pFixed to 1080p.
What you get back
An MP4 video
Limits
Up to 30 seconds of media
How it runs
Queued — Runs in the background — you get a link when it is ready.
Alias
oneup/talking-photo

For developers

The same request as an API call, with this capability's example input:

curl -X POST https://api.oneupai.com/v1/queue/submit/oneup/talking-photo \
  -H "Authorization: Bearer $ONEUP_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "audio_url": "https://media.oneupai.com/u/oneup_upload_youraudio/1790000000/sig",
  "image_url": "https://example.com/portrait.jpg",
  "resolution": "1080p"
}'
Show input schema (JSON)
{
  "type": "object",
  "required": [
    "image_url",
    "audio_url"
  ],
  "properties": {
    "prompt": {
      "type": "string",
      "maxLength": 1000,
      "description": "Optional direction for the performance (calm, animated, looking left…)."
    },
    "audio_url": {
      "type": "string",
      "maxLength": 2048,
      "minLength": 1,
      "description": "The speech: the file_url of one of your uploads or the URL of one of your assets. Its length is what you are billed for (up to 30 seconds)."
    },
    "image_url": {
      "type": "string",
      "maxLength": 2048,
      "minLength": 1,
      "description": "The photo to animate — a person, facing the camera. An upload file_url, one of your assets, or any image URL."
    },
    "resolution": {
      "enum": [
        "1080p"
      ],
      "type": "string",
      "description": "Fixed to 1080p."
    }
  },
  "additionalProperties": false
}

Other video capabilities

Photo to video clip

Bring a still photo to life as a short motion clip.

20 credits per second of clip

Cinematic clip (720p)

Our most cinematic photo-to-video, at 720p — the affordable tier for social.

55 credits per second of clip

Cinematic clip (1080p)

Our most cinematic photo-to-video, in full HD — for listings, ads and anything shown on a big screen.

125 credits per second of clip

Cinematic clip (4K)

Our most cinematic photo-to-video, at 4K — when the footage has to hold up on the largest screens.

280 credits per second of clip

Photo to full-motion clip

Turn a photo into a short clip with real motion and a soundtrack — optionally traveling to an end frame.

30 credits per second of clip

Lip-sync a video (studio)

Our highest-fidelity lip-sync — for close-ups and anything a customer will look at twice.

15 credits per second of your media (rounded up)

Lip-sync a video

Make the person in your video say your audio — mouth movements matched to the words.

8 credits per second of your media (rounded up)

Rendered short video

Cut your photos and clips into a finished short — cuts, punch-ins, captions, seamless transitions — the same result every time.

15 credits per started 10 seconds of output

Captions on your video

Burn captions from your own transcript onto your video, word for word.

15 credits per started 10 seconds of output