Create By Talking Photo
curl --request POST \
--url https://openapi.akool.com/api/open/v3/content/video/createbytalkingphoto \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"talking_photo_url": "https://drz0f01yeq1cx.cloudfront.net/1688098804494-e7ca71c3-4266-4ee4-bcbb-ddd1ea490e75-9907.jpg",
"audio_url": "https://drz0f01yeq1cx.cloudfront.net/1710752141387-e7867802-0a92-41d4-b899-9bfb23144929-4946.mp3",
"prompt": "Throughout the entire video, maintain natural and smooth hand movements. When speaking, use appropriate hand gestures to emphasize key points, such as opening your hands to express welcome or explanation, pointing your fingers forward to emphasize, and placing your hands together to summarize. The gestures should be coherent, not stiff, with moderate amplitude, and the frequency should be coordinated with the speaking speed. During pauses, the gestures naturally return to a relaxed state, presenting a professional and friendly presentation style.",
"resolution": "720p",
"webhookUrl": ""
}
'import requests
url = "https://openapi.akool.com/api/open/v3/content/video/createbytalkingphoto"
payload = {
"talking_photo_url": "https://drz0f01yeq1cx.cloudfront.net/1688098804494-e7ca71c3-4266-4ee4-bcbb-ddd1ea490e75-9907.jpg",
"audio_url": "https://drz0f01yeq1cx.cloudfront.net/1710752141387-e7867802-0a92-41d4-b899-9bfb23144929-4946.mp3",
"prompt": "Throughout the entire video, maintain natural and smooth hand movements. When speaking, use appropriate hand gestures to emphasize key points, such as opening your hands to express welcome or explanation, pointing your fingers forward to emphasize, and placing your hands together to summarize. The gestures should be coherent, not stiff, with moderate amplitude, and the frequency should be coordinated with the speaking speed. During pauses, the gestures naturally return to a relaxed state, presenting a professional and friendly presentation style.",
"resolution": "720p",
"webhookUrl": ""
}
headers = {
"x-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-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
talking_photo_url: 'https://drz0f01yeq1cx.cloudfront.net/1688098804494-e7ca71c3-4266-4ee4-bcbb-ddd1ea490e75-9907.jpg',
audio_url: 'https://drz0f01yeq1cx.cloudfront.net/1710752141387-e7867802-0a92-41d4-b899-9bfb23144929-4946.mp3',
prompt: 'Throughout the entire video, maintain natural and smooth hand movements. When speaking, use appropriate hand gestures to emphasize key points, such as opening your hands to express welcome or explanation, pointing your fingers forward to emphasize, and placing your hands together to summarize. The gestures should be coherent, not stiff, with moderate amplitude, and the frequency should be coordinated with the speaking speed. During pauses, the gestures naturally return to a relaxed state, presenting a professional and friendly presentation style.',
resolution: '720p',
webhookUrl: ''
})
};
fetch('https://openapi.akool.com/api/open/v3/content/video/createbytalkingphoto', 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://openapi.akool.com/api/open/v3/content/video/createbytalkingphoto",
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([
'talking_photo_url' => 'https://drz0f01yeq1cx.cloudfront.net/1688098804494-e7ca71c3-4266-4ee4-bcbb-ddd1ea490e75-9907.jpg',
'audio_url' => 'https://drz0f01yeq1cx.cloudfront.net/1710752141387-e7867802-0a92-41d4-b899-9bfb23144929-4946.mp3',
'prompt' => 'Throughout the entire video, maintain natural and smooth hand movements. When speaking, use appropriate hand gestures to emphasize key points, such as opening your hands to express welcome or explanation, pointing your fingers forward to emphasize, and placing your hands together to summarize. The gestures should be coherent, not stiff, with moderate amplitude, and the frequency should be coordinated with the speaking speed. During pauses, the gestures naturally return to a relaxed state, presenting a professional and friendly presentation style.',
'resolution' => '720p',
'webhookUrl' => ''
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-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://openapi.akool.com/api/open/v3/content/video/createbytalkingphoto"
payload := strings.NewReader("{\n \"talking_photo_url\": \"https://drz0f01yeq1cx.cloudfront.net/1688098804494-e7ca71c3-4266-4ee4-bcbb-ddd1ea490e75-9907.jpg\",\n \"audio_url\": \"https://drz0f01yeq1cx.cloudfront.net/1710752141387-e7867802-0a92-41d4-b899-9bfb23144929-4946.mp3\",\n \"prompt\": \"Throughout the entire video, maintain natural and smooth hand movements. When speaking, use appropriate hand gestures to emphasize key points, such as opening your hands to express welcome or explanation, pointing your fingers forward to emphasize, and placing your hands together to summarize. The gestures should be coherent, not stiff, with moderate amplitude, and the frequency should be coordinated with the speaking speed. During pauses, the gestures naturally return to a relaxed state, presenting a professional and friendly presentation style.\",\n \"resolution\": \"720p\",\n \"webhookUrl\": \"\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-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://openapi.akool.com/api/open/v3/content/video/createbytalkingphoto")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"talking_photo_url\": \"https://drz0f01yeq1cx.cloudfront.net/1688098804494-e7ca71c3-4266-4ee4-bcbb-ddd1ea490e75-9907.jpg\",\n \"audio_url\": \"https://drz0f01yeq1cx.cloudfront.net/1710752141387-e7867802-0a92-41d4-b899-9bfb23144929-4946.mp3\",\n \"prompt\": \"Throughout the entire video, maintain natural and smooth hand movements. When speaking, use appropriate hand gestures to emphasize key points, such as opening your hands to express welcome or explanation, pointing your fingers forward to emphasize, and placing your hands together to summarize. The gestures should be coherent, not stiff, with moderate amplitude, and the frequency should be coordinated with the speaking speed. During pauses, the gestures naturally return to a relaxed state, presenting a professional and friendly presentation style.\",\n \"resolution\": \"720p\",\n \"webhookUrl\": \"\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://openapi.akool.com/api/open/v3/content/video/createbytalkingphoto")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"talking_photo_url\": \"https://drz0f01yeq1cx.cloudfront.net/1688098804494-e7ca71c3-4266-4ee4-bcbb-ddd1ea490e75-9907.jpg\",\n \"audio_url\": \"https://drz0f01yeq1cx.cloudfront.net/1710752141387-e7867802-0a92-41d4-b899-9bfb23144929-4946.mp3\",\n \"prompt\": \"Throughout the entire video, maintain natural and smooth hand movements. When speaking, use appropriate hand gestures to emphasize key points, such as opening your hands to express welcome or explanation, pointing your fingers forward to emphasize, and placing your hands together to summarize. The gestures should be coherent, not stiff, with moderate amplitude, and the frequency should be coordinated with the speaking speed. During pauses, the gestures naturally return to a relaxed state, presenting a professional and friendly presentation style.\",\n \"resolution\": \"720p\",\n \"webhookUrl\": \"\"\n}"
response = http.request(request)
puts response.read_body{
"code": 1000,
"msg": "OK",
"data": {
"faceswap_quality": 2,
"storage_loc": 1,
"_id": "64dd90f9f0b6684651e90d60",
"create_time": 1692242169057,
"uid": 378337,
"type": 5,
"from": 2,
"video_lock_duration": 0.8,
"deduction_lock_duration": 10,
"external_video": "",
"talking_photo": "https://***.cloudfront.net/1692242161763-4fb8c3c2-018b-4b84-82e9-413c81f26b3a-6613.jpeg",
"video": "",
"__v": 0,
"video_status": 1,
"prompt": "Throughout the entire video, maintain natural and smooth hand movements. When speaking, use appropriate hand gestures to emphasize key points, such as opening your hands to express welcome or explanation, pointing your fingers forward to emphasize, and placing your hands together to summarize. The gestures should be coherent, not stiff, with moderate amplitude, and the frequency should be coordinated with the speaking speed. During pauses, the gestures naturally return to a relaxed state, presenting a professional and friendly presentation style.",
"resolution": "720p"
}
}API Endpoints
Create By Talking Photo
Create animated video from photo and audio
POST
/
api
/
open
/
v3
/
content
/
video
/
createbytalkingphoto
Create By Talking Photo
curl --request POST \
--url https://openapi.akool.com/api/open/v3/content/video/createbytalkingphoto \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"talking_photo_url": "https://drz0f01yeq1cx.cloudfront.net/1688098804494-e7ca71c3-4266-4ee4-bcbb-ddd1ea490e75-9907.jpg",
"audio_url": "https://drz0f01yeq1cx.cloudfront.net/1710752141387-e7867802-0a92-41d4-b899-9bfb23144929-4946.mp3",
"prompt": "Throughout the entire video, maintain natural and smooth hand movements. When speaking, use appropriate hand gestures to emphasize key points, such as opening your hands to express welcome or explanation, pointing your fingers forward to emphasize, and placing your hands together to summarize. The gestures should be coherent, not stiff, with moderate amplitude, and the frequency should be coordinated with the speaking speed. During pauses, the gestures naturally return to a relaxed state, presenting a professional and friendly presentation style.",
"resolution": "720p",
"webhookUrl": ""
}
'import requests
url = "https://openapi.akool.com/api/open/v3/content/video/createbytalkingphoto"
payload = {
"talking_photo_url": "https://drz0f01yeq1cx.cloudfront.net/1688098804494-e7ca71c3-4266-4ee4-bcbb-ddd1ea490e75-9907.jpg",
"audio_url": "https://drz0f01yeq1cx.cloudfront.net/1710752141387-e7867802-0a92-41d4-b899-9bfb23144929-4946.mp3",
"prompt": "Throughout the entire video, maintain natural and smooth hand movements. When speaking, use appropriate hand gestures to emphasize key points, such as opening your hands to express welcome or explanation, pointing your fingers forward to emphasize, and placing your hands together to summarize. The gestures should be coherent, not stiff, with moderate amplitude, and the frequency should be coordinated with the speaking speed. During pauses, the gestures naturally return to a relaxed state, presenting a professional and friendly presentation style.",
"resolution": "720p",
"webhookUrl": ""
}
headers = {
"x-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-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
talking_photo_url: 'https://drz0f01yeq1cx.cloudfront.net/1688098804494-e7ca71c3-4266-4ee4-bcbb-ddd1ea490e75-9907.jpg',
audio_url: 'https://drz0f01yeq1cx.cloudfront.net/1710752141387-e7867802-0a92-41d4-b899-9bfb23144929-4946.mp3',
prompt: 'Throughout the entire video, maintain natural and smooth hand movements. When speaking, use appropriate hand gestures to emphasize key points, such as opening your hands to express welcome or explanation, pointing your fingers forward to emphasize, and placing your hands together to summarize. The gestures should be coherent, not stiff, with moderate amplitude, and the frequency should be coordinated with the speaking speed. During pauses, the gestures naturally return to a relaxed state, presenting a professional and friendly presentation style.',
resolution: '720p',
webhookUrl: ''
})
};
fetch('https://openapi.akool.com/api/open/v3/content/video/createbytalkingphoto', 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://openapi.akool.com/api/open/v3/content/video/createbytalkingphoto",
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([
'talking_photo_url' => 'https://drz0f01yeq1cx.cloudfront.net/1688098804494-e7ca71c3-4266-4ee4-bcbb-ddd1ea490e75-9907.jpg',
'audio_url' => 'https://drz0f01yeq1cx.cloudfront.net/1710752141387-e7867802-0a92-41d4-b899-9bfb23144929-4946.mp3',
'prompt' => 'Throughout the entire video, maintain natural and smooth hand movements. When speaking, use appropriate hand gestures to emphasize key points, such as opening your hands to express welcome or explanation, pointing your fingers forward to emphasize, and placing your hands together to summarize. The gestures should be coherent, not stiff, with moderate amplitude, and the frequency should be coordinated with the speaking speed. During pauses, the gestures naturally return to a relaxed state, presenting a professional and friendly presentation style.',
'resolution' => '720p',
'webhookUrl' => ''
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-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://openapi.akool.com/api/open/v3/content/video/createbytalkingphoto"
payload := strings.NewReader("{\n \"talking_photo_url\": \"https://drz0f01yeq1cx.cloudfront.net/1688098804494-e7ca71c3-4266-4ee4-bcbb-ddd1ea490e75-9907.jpg\",\n \"audio_url\": \"https://drz0f01yeq1cx.cloudfront.net/1710752141387-e7867802-0a92-41d4-b899-9bfb23144929-4946.mp3\",\n \"prompt\": \"Throughout the entire video, maintain natural and smooth hand movements. When speaking, use appropriate hand gestures to emphasize key points, such as opening your hands to express welcome or explanation, pointing your fingers forward to emphasize, and placing your hands together to summarize. The gestures should be coherent, not stiff, with moderate amplitude, and the frequency should be coordinated with the speaking speed. During pauses, the gestures naturally return to a relaxed state, presenting a professional and friendly presentation style.\",\n \"resolution\": \"720p\",\n \"webhookUrl\": \"\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-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://openapi.akool.com/api/open/v3/content/video/createbytalkingphoto")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"talking_photo_url\": \"https://drz0f01yeq1cx.cloudfront.net/1688098804494-e7ca71c3-4266-4ee4-bcbb-ddd1ea490e75-9907.jpg\",\n \"audio_url\": \"https://drz0f01yeq1cx.cloudfront.net/1710752141387-e7867802-0a92-41d4-b899-9bfb23144929-4946.mp3\",\n \"prompt\": \"Throughout the entire video, maintain natural and smooth hand movements. When speaking, use appropriate hand gestures to emphasize key points, such as opening your hands to express welcome or explanation, pointing your fingers forward to emphasize, and placing your hands together to summarize. The gestures should be coherent, not stiff, with moderate amplitude, and the frequency should be coordinated with the speaking speed. During pauses, the gestures naturally return to a relaxed state, presenting a professional and friendly presentation style.\",\n \"resolution\": \"720p\",\n \"webhookUrl\": \"\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://openapi.akool.com/api/open/v3/content/video/createbytalkingphoto")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"talking_photo_url\": \"https://drz0f01yeq1cx.cloudfront.net/1688098804494-e7ca71c3-4266-4ee4-bcbb-ddd1ea490e75-9907.jpg\",\n \"audio_url\": \"https://drz0f01yeq1cx.cloudfront.net/1710752141387-e7867802-0a92-41d4-b899-9bfb23144929-4946.mp3\",\n \"prompt\": \"Throughout the entire video, maintain natural and smooth hand movements. When speaking, use appropriate hand gestures to emphasize key points, such as opening your hands to express welcome or explanation, pointing your fingers forward to emphasize, and placing your hands together to summarize. The gestures should be coherent, not stiff, with moderate amplitude, and the frequency should be coordinated with the speaking speed. During pauses, the gestures naturally return to a relaxed state, presenting a professional and friendly presentation style.\",\n \"resolution\": \"720p\",\n \"webhookUrl\": \"\"\n}"
response = http.request(request)
puts response.read_body{
"code": 1000,
"msg": "OK",
"data": {
"faceswap_quality": 2,
"storage_loc": 1,
"_id": "64dd90f9f0b6684651e90d60",
"create_time": 1692242169057,
"uid": 378337,
"type": 5,
"from": 2,
"video_lock_duration": 0.8,
"deduction_lock_duration": 10,
"external_video": "",
"talking_photo": "https://***.cloudfront.net/1692242161763-4fb8c3c2-018b-4b84-82e9-413c81f26b3a-6613.jpeg",
"video": "",
"__v": 0,
"video_status": 1,
"prompt": "Throughout the entire video, maintain natural and smooth hand movements. When speaking, use appropriate hand gestures to emphasize key points, such as opening your hands to express welcome or explanation, pointing your fingers forward to emphasize, and placing your hands together to summarize. The gestures should be coherent, not stiff, with moderate amplitude, and the frequency should be coordinated with the speaking speed. During pauses, the gestures naturally return to a relaxed state, presenting a professional and friendly presentation style.",
"resolution": "720p"
}
}The resources (image, video, voice) generated by our API are valid for 7 days.
Please save the relevant resources as soon as possible to prevent expiration.
Experience our talking photo technology in action by exploring our interactive demo on GitHub: AKool Talking Photo Demo.
Important Notes
- Image Quality: Use high-resolution images with clearly visible faces for better results
- Audio Format: Standard audio formats (MP3 recommended)
- Prompt: Use the
promptparameter to control hand gestures for more natural and professional-looking videos - Resolution: Choose from 720p, 1080p based on your needs - higher resolution may take longer to process and costs more credits
- Resource Expiration: Generated videos are valid for 7 days, save them promptly
- Webhook: Use
webhookUrlto receive notifications when video generation is complete - Save the
_idfrom the response to check video status using the Get Video Info Result API
Authorizations
ApiKeyAuthBearerAuth
Your API Key used for request authorization. If both Authorization and x-api-key have values, Authorization will be used first and x-api-key will be discarded.
Body
application/json
Resource address of the talking picture
Example:
"https://drz0f01yeq1cx.cloudfront.net/1688098804494-e7ca71c3-4266-4ee4-bcbb-ddd1ea490e75-9907.jpg"
Resource address of the talking audio
Example:
"https://drz0f01yeq1cx.cloudfront.net/1710752141387-e7867802-0a92-41d4-b899-9bfb23144929-4946.mp3"
Prompt words for controlling gestures and movements
Example:
"Throughout the entire video, maintain natural and smooth hand movements."
Output video resolution. Supported values: 720p, 1080p. Default: 720p
Available options:
720p, 1080p Example:
"720p"
Callback url address based on HTTP request
Example:
""
⌘I