MMAudio V2
Tích hợp
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/vi/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
}
}
Gọi mô hình MMAudio V2 (mmaudio-v2) qua Doitong API. Tài liệu cho tác nhân: https://doitong.com/vi/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
}
Nếu trạng thái phản hồi là "queued" hoặc "running", hãy thăm dò GET https://api.doitong.com/v1/requests/REQUEST_ID?wait=20 cho đến khi trạng thái là "succeeded"; tệp nằm trong outputs[].url. POST https://api.doitong.com/v1/quote/mmaudio-v2 với cùng nội dung sẽ trả về giá chính xác trước khi chạy.
Yêu cầu này: 0,005 $ 5 tín dụng API Chạy trên trang này
Khóa API mới của bạn. Khóa này chỉ hiển thị lúc này và đã được chèn vào mã cũng như trường khóa API bên dưới. Hãy giữ bí mật: không bao giờ đưa khóa này vào mã chạy trong trình duyệt.
Ví dụ
Tạo một yêu cầu
Các điều khiển được tạo từ lược đồ mô hình. Mã và giá sẽ cập nhật khi bạn thay đổi chúng.
/run/mmaudio-v2?wait=20
báo giá → 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
}
}
}
Chạy yêu cầu này
Key của bạn vẫn nằm trong trình duyệt này: key chỉ được gửi đến Doitong API và chỉ được lưu trong localStorage nếu bạn chọn Ghi nhớ. Nhận khóa API
Giới thiệu về MMAudio V2
MMAudio V2 xem video và tạo âm thanh phù hợp: tiếng bước chân theo nhịp, tiếng nước bắn, động cơ, đám đông và âm thanh môi trường trong phòng, theo hướng dẫn của lời nhắc và lời nhắc phủ định tùy chọn. Tạo âm thanh dài 1 đến 30 giây và trả về video cùng nhạc nền mới.
Tham số
Gửi tên chuẩn hoặc tên gốc, không gửi cả hai. Tên chuẩn
video_urlbắt buộc
video
promptbắt buộc
negative_prompttùy chọn
seedtùy chọn
num_stepstùy chọn
durationtùy chọn
cfg_strengthtùy chọn
mask_away_cliptùy chọn
Các tham số tệp nhận URL https:// công khai, URI data: tối đa 10 MB hoặc file_url của một tệp tải lên. Tệp
Đầu ra
{
"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"
}
}
Các trường đầu ra
- video
- object {url, content_type, file_name, file_size}Video đầu ra chứa chuyển động môi đã đồng bộ.
Các biến thể MMAudio V2 khác
Thêm mô hình: Âm thanh
Dành cho tác nhân AI: trang này ở dạng Markdown tại https://doitong.com/vi/developers/models/mmaudio-v2.md. Tất cả mô hình và hướng dẫn: https://doitong.com/developers/llms.txt