Sad Talker · Reference
Integruoti
sadtalker/reference
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/sadtalker/reference?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"image": "https://content.doitong.com/images/showcase/v3/avatar/talking_avatar.jpg",
"driven_audio_url": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3",
"reference_pose_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/sadtalker/reference?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"image": "https://content.doitong.com/images/showcase/v3/avatar/talking_avatar.jpg",
"driven_audio_url": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3",
"reference_pose_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"image": "https://content.doitong.com/images/showcase/v3/avatar/talking_avatar.jpg",
"driven_audio_url": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3",
"reference_pose_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/sadtalker/reference", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
# 1. Connect once (Claude Code; Cursor, VS Code, Claude Desktop: https://doitong.com/lt/developers/docs/mcp)
claude mcp add --transport http doitong-models https://api.doitong.com/v1/mcp \
--header "Authorization: Bearer $DOITONG_API_KEY"
# 2. Your agent calls the "run" tool with:
{
"model_id": "sadtalker/reference",
"input": {
"image": "https://content.doitong.com/images/showcase/v3/avatar/talking_avatar.jpg",
"driven_audio_url": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3",
"reference_pose_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
}
}
Iškvieskite Sad Talker · Reference modelį (sadtalker/reference) per Doitong API. Dokumentacija agentams: https://doitong.com/lt/developers/models/sadtalker/reference.md
POST https://api.doitong.com/v1/run/sadtalker/reference?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"image": "https://content.doitong.com/images/showcase/v3/avatar/talking_avatar.jpg",
"driven_audio_url": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3",
"reference_pose_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
}
Jei atsakymo būsena yra "queued" arba "running", siųskite GET https://api.doitong.com/v1/requests/REQUEST_ID?wait=20 užklausas, kol būsena taps "succeeded"; failai pateikiami outputs[].url. POST https://api.doitong.com/v1/quote/sadtalker/reference su tuo pačiu turiniu grąžina tikslią kainą prieš paleidimą.
Iki 4,50 $ už vykdymą mokama pagal faktinį naudojimą, likusi suma grąžinama Paleisti šiame puslapyje
Jūsų naujas API raktas. Jis rodomas tik dabar ir jau įrašytas kode bei toliau esančiame API rakto lauke. Saugokite jį paslaptyje: niekada nedėkite jo į kodą, kuris vykdomas naršyklėje.
Čia bus pirmasis jūsų rezultatas
Sukurkite užklausą toliau ir paleiskite ją naudodami savo API raktą. Išvestys nukopijuojamos į mūsų saugyklą ir saugomos neribotą laiką arba 7 dienos nemokamai.
Sukurti užklausą
Valdikliai sugeneruojami pagal modelio schemą. Keisdami juos atnaujinsite kodą ir kainą.
/run/sadtalker/reference?wait=20
kaina → 4,50 $
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/sadtalker/reference?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"image": "https://content.doitong.com/images/showcase/v3/avatar/talking_avatar.jpg",
"driven_audio_url": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3",
"reference_pose_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/sadtalker/reference?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"image": "https://content.doitong.com/images/showcase/v3/avatar/talking_avatar.jpg",
"driven_audio_url": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3",
"reference_pose_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"image": "https://content.doitong.com/images/showcase/v3/avatar/talking_avatar.jpg",
"driven_audio_url": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3",
"reference_pose_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/sadtalker/reference", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "run",
"arguments": {
"model_id": "sadtalker/reference",
"input": {
"image": "https://content.doitong.com/images/showcase/v3/avatar/talking_avatar.jpg",
"driven_audio_url": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3",
"reference_pose_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
},
"wait_seconds": 20
}
}
}
Vykdyti šią užklausą
Jūsų raktas lieka šioje naršyklėje: jis siunčiamas tik į Doitong API ir išsaugomas (localStorage) tik pažymėjus Prisiminti. Gauti API raktą
Apie Sad Talker · Reference
Kaip pagrindinis kalbančio veido variantas, tačiau papildomai reikia `reference_pose_video_url` – vaizdo įrašo, kurio galvos judesiai nurodo rezultatą. Įvestys yra `source_image_url` ir `driven_audio_url`. Parinktys apima `pose_style` (nuo 0 iki 45), `expression_scale` (nuo 0 iki 3), `face_model_resolution` (256 arba 512), `still_mode` ir vieną iš penkių `preprocess` režimų.
Parametrai
Siųskite arba kanoninį, arba savąjį pavadinimą, bet ne abu. Kanoniniai pavadinimai
source_image_urlprivaloma
image
driven_audio_urlprivaloma
reference_pose_video_urlprivaloma
pose_styleneprivalomas
face_model_resolutionneprivalomas
expression_scaleneprivalomas
face_enhancerneprivalomas
still_modeneprivalomas
preprocessneprivalomas
Failų parametrams reikia viešo https:// URL, ne didesnio nei 10 MB data: URI arba įkelto failo file_url. Failai
Išvestis
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "sadtalker/reference",
"status": "succeeded",
"created_at": "2026-10-20T12:00:00Z",
"started_at": "2026-10-20T12:00:02Z",
"completed_at": "2026-10-20T12:00:09Z",
"queue_position": null,
"cost": {
"credits": 4500,
"usd": "4.50",
"charged": 4500,
"refunded": 0
},
"input": {
"source_image_url": "https://content.doitong.com/images/showcase/v3/avatar/talking_avatar.jpg",
"driven_audio_url": "https://content.doitong.com/audio/showcase/v3/tools/dub_es.mp3",
"reference_pose_video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
},
"output": {
"video": {
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
"content_type": "video/mp4",
"file_name": "0-output.mp4",
"file_size": 1843200
}
},
"outputs": [
{
"type": "video",
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
"content_type": "video/mp4",
"file_size": 1843200,
"width": 1280,
"height": 720,
"duration": 5,
"stored": true
}
],
"error": null,
"metrics": {
"inference_seconds": 6.8
},
"urls": {
"self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
"cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
}
}
Išvesties laukai
- video
- object {url, content_type, file_name, file_size}Sugeneruoto vaizdo įrašo URL.
Kiti Sad Talker variantai
Daugiau modelių: Lūpų sinchronizavimas ir avatarai
AI agentams: šis puslapis Markdown formatu pateikiamas adresu https://doitong.com/lt/developers/models/sadtalker/reference.md. Visi modeliai ir vadovai: https://doitong.com/developers/llms.txt