Live Portrait
Integreiddio
live-portrait
# 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/live-portrait?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"image": "https://content.doitong.com/images/showcase/v3/avatar/talking_avatar.jpg"
}'
# 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/live-portrait?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"image": "https://content.doitong.com/images/showcase/v3/avatar/talking_avatar.jpg"
}),
});
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 = {
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"image": "https://content.doitong.com/images/showcase/v3/avatar/talking_avatar.jpg",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/live-portrait", 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/cy/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": "live-portrait",
"input": {
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"image": "https://content.doitong.com/images/showcase/v3/avatar/talking_avatar.jpg"
}
}
Galwch y model Live Portrait (live-portrait) drwy Doitong API. Dogfennaeth ar gyfer asiantau: https://doitong.com/cy/developers/models/live-portrait.md
POST https://api.doitong.com/v1/run/live-portrait?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"image": "https://content.doitong.com/images/showcase/v3/avatar/talking_avatar.jpg"
}
Os yw statws yr ymateb yn "queued" neu "running", holwch GET https://api.doitong.com/v1/requests/REQUEST_ID?wait=20 nes ei fod yn "succeeded"; mae'r ffeiliau yn outputs[].url. Mae POST https://api.doitong.com/v1/quote/live-portrait gyda'r un corff yn dychwelyd yr union bris cyn y rhediad.
Hyd at $4.50 fesul rhediad codir tâl yn ôl y defnydd gwirioneddol, a chaiff y gweddill ei ad-dalu Ei redeg ar y dudalen hon
Eich allwedd API newydd. Dim ond nawr y caiff ei ddangos ac mae eisoes yn y cod ac ym maes allwedd API isod. Cadwch ef yn gyfrinachol: peidiwch byth â’i roi mewn cod sy’n rhedeg mewn porwr.
Mae eich canlyniad cyntaf yn mynd yma
Adeiladwch gais isod a'i redeg gyda'ch allwedd API. Mae allbynnau'n cael eu copïo i'n storio, wedi'u cadw am byth neu am 7 diwrnod am ddim.
Adeiladu cais
Cynhyrchir rheolyddion o sgema'r model. Mae'r cod a'r pris yn diweddaru wrth i chi eu newid.
/run/live-portrait?wait=20
dyfynbris → $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/live-portrait?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"image": "https://content.doitong.com/images/showcase/v3/avatar/talking_avatar.jpg"
}'
# 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/live-portrait?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"image": "https://content.doitong.com/images/showcase/v3/avatar/talking_avatar.jpg"
}),
});
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 = {
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"image": "https://content.doitong.com/images/showcase/v3/avatar/talking_avatar.jpg",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/live-portrait", 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": "live-portrait",
"input": {
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"image": "https://content.doitong.com/images/showcase/v3/avatar/talking_avatar.jpg"
},
"wait_seconds": 20
}
}
}
Rhedeg y cais hwn
Mae'ch allwedd yn aros yn y porwr hwn: caiff ei hanfon at Doitong API yn unig a'i chadw (localStorage) dim ond os ticiwch Cofio. Cael allwedd API
Ynglŷn â Live Portrait
Trosglwyddo mudiant wyneb o fideo gyrru i bortread llonydd, gan gynhyrchu fideo. Yn ogystal â `video_url` ac `image_url`, mae'n cynnig rheolyddion rhifol ar gyfer amrantu, ael, wincio, disgyblion, siapiau ceg (aaa, eee, woo), gwên a chylchdroi pen mewn pitch, yaw a roll. Mae opsiynau tocio a phwytho fel `flag_do_crop` a `flag_pasteback` ar gael, ac mae `dsize` yn gosod maint yr allbwn (512 yn rhagosodedig).
Paramedrau
Anfonwch naill ai'r enw canonaidd neu'r enw brodorol, nid y ddau. Enwau canonaidd
video_urlgofynnol
video
image_urlgofynnol
image
blinkdewisol
eyebrowdewisol
winkdewisol
pupil_xdewisol
pupil_ydewisol
aaadewisol
eeedewisol
woodewisol
smiledewisol
flag_lip_zerodewisol
rotate_pitchdewisol
rotate_yawdewisol
rotate_rolldewisol
flag_eye_retargetingdewisol
flag_lip_retargetingdewisol
flag_stitchingdewisol
flag_relativedewisol
flag_pastebackdewisol
flag_do_cropdewisol
flag_do_rotdewisol
dsizedewisol
scaledewisol
vx_ratiodewisol
vy_ratiodewisol
batch_sizedewisol
enable_safety_checkerdewisol
Mae paramedrau ffeil yn derbyn URL cyhoeddus https://, URI data: hyd at 10 MB, neu file_url uwchlwythiad. Ffeiliau
Allbwn
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "live-portrait",
"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": {
"video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"image_url": "https://content.doitong.com/images/showcase/v3/avatar/talking_avatar.jpg"
},
"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"
}
}
Meysydd yr allbwn
- video
- object {url, content_type, file_name, file_size}Ffeil fideo a gynhyrchir.
Amrywiadau Live Portrait eraill
Mwy o fodelau: Cydamseru Gwefusau ac Afatarau
Ar gyfer asiantau AI: mae'r dudalen hon fel Markdown ar gael yn https://doitong.com/cy/developers/models/live-portrait.md. Pob model a chanllaw: https://doitong.com/developers/llms.txt