MMAudio V2
Integruoti
mmaudio-v2
# 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/mmaudio-v2?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video": "https://content.doitong.com/dev-api/2026/10/21/req_qicb9wfr7rqfo46hqcxollq6/0-QQGxyL6x8ywkCEWdZ94UY_YyJVjs3R.mp4",
"prompt": "Gentle waves lapping against a wooden boat, oars creaking, seagulls calling in the distance, light wind",
"duration": 5
}'
# 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/mmaudio-v2?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"video": "https://content.doitong.com/dev-api/2026/10/21/req_qicb9wfr7rqfo46hqcxollq6/0-QQGxyL6x8ywkCEWdZ94UY_YyJVjs3R.mp4",
"prompt": "Gentle waves lapping against a wooden boat, oars creaking, seagulls calling in the distance, light wind",
"duration": 5
}),
});
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/dev-api/2026/10/21/req_qicb9wfr7rqfo46hqcxollq6/0-QQGxyL6x8ywkCEWdZ94UY_YyJVjs3R.mp4",
"prompt": "Gentle waves lapping against a wooden boat, oars creaking, seagulls calling in the distance, light wind",
"duration": 5,
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/mmaudio-v2", 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": "mmaudio-v2",
"input": {
"video": "https://content.doitong.com/dev-api/2026/10/21/req_qicb9wfr7rqfo46hqcxollq6/0-QQGxyL6x8ywkCEWdZ94UY_YyJVjs3R.mp4",
"prompt": "Gentle waves lapping against a wooden boat, oars creaking, seagulls calling in the distance, light wind",
"duration": 5
}
}
Iškvieskite MMAudio V2 modelį (mmaudio-v2) per Doitong API. Dokumentacija agentams: https://doitong.com/lt/developers/models/mmaudio-v2.md
POST https://api.doitong.com/v1/run/mmaudio-v2?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"video": "https://content.doitong.com/dev-api/2026/10/21/req_qicb9wfr7rqfo46hqcxollq6/0-QQGxyL6x8ywkCEWdZ94UY_YyJVjs3R.mp4",
"prompt": "Gentle waves lapping against a wooden boat, oars creaking, seagulls calling in the distance, light wind",
"duration": 5
}
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/mmaudio-v2 su tuo pačiu turiniu grąžina tikslią kainą prieš paleidimą.
Ši užklausa: 0,005 $ 5 API kreditai 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.
Pavyzdžiai
Sukurti užklausą
Valdikliai sugeneruojami pagal modelio schemą. Keisdami juos atnaujinsite kodą ir kainą.
/run/mmaudio-v2?wait=20
kaina → 0,005 $
# 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/mmaudio-v2?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"video": "https://content.doitong.com/dev-api/2026/10/21/req_qicb9wfr7rqfo46hqcxollq6/0-QQGxyL6x8ywkCEWdZ94UY_YyJVjs3R.mp4",
"prompt": "Gentle waves lapping against a wooden boat, oars creaking, seagulls calling in the distance, light wind",
"duration": 5
}'
# 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/mmaudio-v2?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"video": "https://content.doitong.com/dev-api/2026/10/21/req_qicb9wfr7rqfo46hqcxollq6/0-QQGxyL6x8ywkCEWdZ94UY_YyJVjs3R.mp4",
"prompt": "Gentle waves lapping against a wooden boat, oars creaking, seagulls calling in the distance, light wind",
"duration": 5
}),
});
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/dev-api/2026/10/21/req_qicb9wfr7rqfo46hqcxollq6/0-QQGxyL6x8ywkCEWdZ94UY_YyJVjs3R.mp4",
"prompt": "Gentle waves lapping against a wooden boat, oars creaking, seagulls calling in the distance, light wind",
"duration": 5,
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/mmaudio-v2", 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": "mmaudio-v2",
"input": {
"video": "https://content.doitong.com/dev-api/2026/10/21/req_qicb9wfr7rqfo46hqcxollq6/0-QQGxyL6x8ywkCEWdZ94UY_YyJVjs3R.mp4",
"prompt": "Gentle waves lapping against a wooden boat, oars creaking, seagulls calling in the distance, light wind",
"duration": 5
},
"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 MMAudio V2
MMAudio V2 analizuoja vaizdo įrašą ir generuoja tinkamą garsą: žingsnius pagal ritmą, vandens purslus, variklius, minios ir patalpos aplinkos garsus, vadovaudamasis jūsų užklausa ir pasirinktine neigiama užklausa. Generuoja 1–30 sekundžių garso ir grážina vaizdo įrašą su nauju garso takeliu.
Parametrai
Siųskite arba kanoninį, arba savąjį pavadinimą, bet ne abu. Kanoniniai pavadinimai
video_urlprivaloma
video
promptprivaloma
negative_promptneprivalomas
seedneprivalomas
num_stepsneprivalomas
durationneprivalomas
cfg_strengthneprivalomas
mask_away_clipneprivalomas
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": "mmaudio-v2",
"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": 5,
"usd": "0.005",
"charged": 5,
"refunded": 0
},
"input": {
"video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
"prompt": "Night forest ambience, soft paws running on grass, crickets, gentle magical chimes",
"duration": 6
},
"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}Išvesties vaizdo įrašas su sinchronizuotais lūpų judesiais.
Kiti MMAudio V2 variantai
Daugiau modelių: Garsas
AI agentams: šis puslapis Markdown formatu pateikiamas adresu https://doitong.com/lt/developers/models/mmaudio-v2.md. Visi modeliai ir vadovai: https://doitong.com/developers/llms.txt