curl --request POST \
--url https://api.magnific.com/v1/ai/video/omni-human-1-5 \
--header 'Content-Type: application/json' \
--header 'x-magnific-api-key: <api-key>' \
--data '
{
"image_url": "https://example.com/human-figure.jpg",
"audio_url": "https://example.com/audio.mp3",
"webhook_url": "<string>",
"prompt": "A person speaking naturally with subtle head movements",
"turbo_mode": false,
"resolution": "1080p"
}
'import requests
url = "https://api.magnific.com/v1/ai/video/omni-human-1-5"
payload = {
"image_url": "https://example.com/human-figure.jpg",
"audio_url": "https://example.com/audio.mp3",
"webhook_url": "<string>",
"prompt": "A person speaking naturally with subtle head movements",
"turbo_mode": False,
"resolution": "1080p"
}
headers = {
"x-magnific-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-magnific-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
image_url: 'https://example.com/human-figure.jpg',
audio_url: 'https://example.com/audio.mp3',
webhook_url: '<string>',
prompt: 'A person speaking naturally with subtle head movements',
turbo_mode: false,
resolution: '1080p'
})
};
fetch('https://api.magnific.com/v1/ai/video/omni-human-1-5', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.magnific.com/v1/ai/video/omni-human-1-5",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'image_url' => 'https://example.com/human-figure.jpg',
'audio_url' => 'https://example.com/audio.mp3',
'webhook_url' => '<string>',
'prompt' => 'A person speaking naturally with subtle head movements',
'turbo_mode' => false,
'resolution' => '1080p'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-magnific-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.magnific.com/v1/ai/video/omni-human-1-5"
payload := strings.NewReader("{\n \"image_url\": \"https://example.com/human-figure.jpg\",\n \"audio_url\": \"https://example.com/audio.mp3\",\n \"webhook_url\": \"<string>\",\n \"prompt\": \"A person speaking naturally with subtle head movements\",\n \"turbo_mode\": false,\n \"resolution\": \"1080p\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-magnific-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.magnific.com/v1/ai/video/omni-human-1-5")
.header("x-magnific-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"image_url\": \"https://example.com/human-figure.jpg\",\n \"audio_url\": \"https://example.com/audio.mp3\",\n \"webhook_url\": \"<string>\",\n \"prompt\": \"A person speaking naturally with subtle head movements\",\n \"turbo_mode\": false,\n \"resolution\": \"1080p\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.magnific.com/v1/ai/video/omni-human-1-5")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-magnific-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"image_url\": \"https://example.com/human-figure.jpg\",\n \"audio_url\": \"https://example.com/audio.mp3\",\n \"webhook_url\": \"<string>\",\n \"prompt\": \"A person speaking naturally with subtle head movements\",\n \"turbo_mode\": false,\n \"resolution\": \"1080p\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"generated": [],
"task_id": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
"status": "CREATED"
}
}OmniHuman 1.5 - Create human animation
Generate animated video of a human figure driven by audio using OmniHuman 1.5 model (ByteDance). Supports natural head movements, facial expressions, and body motion synchronized to audio input.
curl --request POST \
--url https://api.magnific.com/v1/ai/video/omni-human-1-5 \
--header 'Content-Type: application/json' \
--header 'x-magnific-api-key: <api-key>' \
--data '
{
"image_url": "https://example.com/human-figure.jpg",
"audio_url": "https://example.com/audio.mp3",
"webhook_url": "<string>",
"prompt": "A person speaking naturally with subtle head movements",
"turbo_mode": false,
"resolution": "1080p"
}
'import requests
url = "https://api.magnific.com/v1/ai/video/omni-human-1-5"
payload = {
"image_url": "https://example.com/human-figure.jpg",
"audio_url": "https://example.com/audio.mp3",
"webhook_url": "<string>",
"prompt": "A person speaking naturally with subtle head movements",
"turbo_mode": False,
"resolution": "1080p"
}
headers = {
"x-magnific-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-magnific-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
image_url: 'https://example.com/human-figure.jpg',
audio_url: 'https://example.com/audio.mp3',
webhook_url: '<string>',
prompt: 'A person speaking naturally with subtle head movements',
turbo_mode: false,
resolution: '1080p'
})
};
fetch('https://api.magnific.com/v1/ai/video/omni-human-1-5', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.magnific.com/v1/ai/video/omni-human-1-5",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'image_url' => 'https://example.com/human-figure.jpg',
'audio_url' => 'https://example.com/audio.mp3',
'webhook_url' => '<string>',
'prompt' => 'A person speaking naturally with subtle head movements',
'turbo_mode' => false,
'resolution' => '1080p'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-magnific-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.magnific.com/v1/ai/video/omni-human-1-5"
payload := strings.NewReader("{\n \"image_url\": \"https://example.com/human-figure.jpg\",\n \"audio_url\": \"https://example.com/audio.mp3\",\n \"webhook_url\": \"<string>\",\n \"prompt\": \"A person speaking naturally with subtle head movements\",\n \"turbo_mode\": false,\n \"resolution\": \"1080p\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-magnific-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.magnific.com/v1/ai/video/omni-human-1-5")
.header("x-magnific-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"image_url\": \"https://example.com/human-figure.jpg\",\n \"audio_url\": \"https://example.com/audio.mp3\",\n \"webhook_url\": \"<string>\",\n \"prompt\": \"A person speaking naturally with subtle head movements\",\n \"turbo_mode\": false,\n \"resolution\": \"1080p\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.magnific.com/v1/ai/video/omni-human-1-5")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-magnific-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"image_url\": \"https://example.com/human-figure.jpg\",\n \"audio_url\": \"https://example.com/audio.mp3\",\n \"webhook_url\": \"<string>\",\n \"prompt\": \"A person speaking naturally with subtle head movements\",\n \"turbo_mode\": false,\n \"resolution\": \"1080p\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"generated": [],
"task_id": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
"status": "CREATED"
}
}Authorizations
Your Magnific API key. Required for authentication. Learn how to obtain an API key
Body
URL of the human figure image to animate. Image must be publicly accessible, contain a visible human figure, and be in jpg, jpeg, png, or webp format.
"https://example.com/human-figure.jpg"
URL of the audio file that drives the animation. Must be publicly accessible. Supported formats: MP3, OGG, WAV, M4A, AAC. Duration limits: 720p max 60 seconds, 1080p max 30 seconds.
"https://example.com/audio.mp3"
Webhook URL to notify the user when the task is completed
Optional text guidance for the generation. Can describe desired motion, expression, or style.
2000"A person speaking naturally with subtle head movements"
Enable faster generation with potentially reduced quality
Video resolution. 1080p allows max 30 seconds audio, 720p allows max 60 seconds audio.
720p, 1080p Response
OK - The task exists and the status is returned
Show child attributes
Show child attributes
{
"task_id": "046b6c7f-0b8a-43b9-b35d-6489e6daee91",
"status": "CREATED",
"generated": [
"https://openapi-generator.tech",
"https://openapi-generator.tech"
]
}
Was this page helpful?