Skip to content
English

OmniHuman 1.5

POST Base URL: https://api.hiapi.ai /v1/tasks

Image, video, and audio models are called through theUnified Async API POST /v1/tasks endpoint; only the input fields differ (see input parameters below).

Model summary

Model omnihuman-1.5
Capability Audio-driven avatar video
Inputs Portrait + audio
Output MP4, 720p / 1080p, as long as the audio

Turn one portrait and one audio clip into a lip-synced talking video with expressions and body motion that follow the speech.

Production guidance

Calling the API
  • Pass the portrait and audio as publicly accessible HTTPS URLs.
  • Use a clear, unobstructed face; half- or full-body images bring out more gestures.
  • Audio of 15 seconds or less works best; longer clips lose quality. The video is as long as the audio.
  • Use callback.url for terminal notifications and GET /v1/tasks/:id as a fallback query.

Best suited for

Audio-driven presenter

Send a portrait and recorded audio to get a talking video directly.

image_urlaudio_url
Steer expression and camera

Add a prompt for smiling, nodding or a push-in.

prompt
Pick the speaker in a group

Use masks so a chosen person in the image lip-syncs.

mask_urls

Request parameters

model string required

Model ID.

example omnihuman-1.5
input object required

OmniHuman 1.5 parameters.

image_url string required

Image of the character who speaks: a person, pet or anime character. The video keeps this image's aspect ratio. jpeg, png or webp, up to 10MB.

example https://example.com/portrait.jpg
audio_url string required

Speech or singing that drives the lips; the video is as long as the audio. Must be shorter than 60 seconds, and 15 seconds or less works best. mp3, wav, aac, ogg or m4a, up to 10MB.

example https://example.com/greeting.mp3
prompt string optional

Direction for expression, gestures or camera, such as "smiling and nodding, slow push-in". Chinese, English, Japanese, Korean, Spanish and Indonesian are supported, up to 300 characters.

mask_urls string[] optional

When the image has several people, masks the same size as the portrait (speaker in white, the rest in black) pick who speaks. Up to 5.

example ["https://example.com/speaker-mask.png"]
resolution enum optional

Output resolution tier; the aspect ratio always follows the portrait.

default 1080p enum: 720p1080p
fast_mode boolean optional

Faster generation with slightly lower quality.

default false example true
seed integer optional

Integer from 0 to 2147483647. The same seed with identical inputs gives a highly consistent result; omit it for a random one.

callback object optional

Sends the task object when the task reaches a terminal state.

url string required

HTTPS URL that receives terminal notifications.

example https://your-domain.com/hiapi/callback
when enum optional

Triggers on terminal status.

default final enum: final

Example requests

Portrait plus audio, 1080p

A square portrait with a 4-second greeting, no prompt; the output keeps 1:1.

Request body
{
  "model": "omnihuman-1.5",
  "input": {
    "image_url": "https://example.com/portrait.jpg",
    "audio_url": "https://example.com/greeting.mp3",
    "resolution": "1080p"
  }
}
With a prompt, 720p fast mode

Steer expression and camera with a prompt and enable fast mode for a preview.

Request body
{
  "model": "omnihuman-1.5",
  "input": {
    "image_url": "https://example.com/portrait.jpg",
    "audio_url": "https://example.com/greeting.mp3",
    "prompt": "Smiling and nodding gently, slow push-in",
    "resolution": "720p",
    "fast_mode": true
  }
}
All optional parameters: pick the speaker in a group

A two-person photo with a same-size mask (speaker in white, the rest in black) so only the person on the left speaks; a fixed seed keeps the result reproducible. Replace the example URLs with publicly accessible image and audio.

Request body
{
  "model": "omnihuman-1.5",
  "input": {
    "image_url": "https://example.com/two-people.jpg",
    "audio_url": "https://example.com/greeting.mp3",
    "prompt": "The person on the left smiles and speaks while the person on the right listens quietly, static camera",
    "mask_urls": [
      "https://example.com/speaker-mask.png"
    ],
    "resolution": "1080p",
    "fast_mode": false,
    "seed": 42
  }
}

Getting the result

  1. Read data.taskId after creating the task.
  2. Wait for the callback or query GET /v1/tasks/:id.
  3. On status=success, read the video URL from the output item whose type is video.

Next steps