AMT Frame Interpolation
التكامل
amt-interpolation/frame-interpolation
# 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/amt-interpolation/frame-interpolation?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"frames": [
{
"url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.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/amt-interpolation/frame-interpolation?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"frames": [
{
"url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.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 = {
"frames": [
{
"url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
},
],
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/amt-interpolation/frame-interpolation", 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/ar/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": "amt-interpolation/frame-interpolation",
"input": {
"frames": [
{
"url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}
]
}
}
استدعِ نموذج AMT Frame Interpolation (amt-interpolation/frame-interpolation) عبر Doitong API. توثيق الوكلاء: https://doitong.com/ar/developers/models/amt-interpolation/frame-interpolation.md
POST https://api.doitong.com/v1/run/amt-interpolation/frame-interpolation?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"frames": [
{
"url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}
]
}
إذا كانت حالة الاستجابة "queued" أو "running"، فأرسل طلبات GET إلى https://api.doitong.com/v1/requests/REQUEST_ID?wait=20 حتى تصبح "succeeded"؛ توجد الملفات في outputs[].url. يعيد POST https://api.doitong.com/v1/quote/amt-interpolation/frame-interpolation مع نفس النص الأساسي السعر الدقيق قبل التشغيل.
حتى 2.07 $ لكل تشغيل تُحتسب التكلفة حسب الاستخدام الفعلي، ويُسترد الباقي تشغيله في هذه الصفحة
مفتاح API الجديد الخاص بك. يظهر الآن فقط، وهو مُدرج بالفعل في الشيفرة وفي حقل مفتاح API أدناه. احتفظ به سريًا: لا تضعه أبدًا في شيفرة تعمل في المتصفح.
ستظهر نتيجتك الأولى هنا
أنشئ طلبًا أدناه وشغّله باستخدام مفتاح API الخاص بك. تُنسخ المخرجات إلى تخزيننا، وتُحفظ إلى الأبد أو لمدة 7 أيام مجانًا.
إنشاء طلب
تُنشأ عناصر التحكم من مخطط النموذج. يتحدّث الرمز والسعر عند تغييرها.
/run/amt-interpolation/frame-interpolation?wait=20
عرض السعر → 2.07 $
# 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/amt-interpolation/frame-interpolation?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"frames": [
{
"url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.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/amt-interpolation/frame-interpolation?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"frames": [
{
"url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.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 = {
"frames": [
{
"url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
},
],
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/amt-interpolation/frame-interpolation", 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": "amt-interpolation/frame-interpolation",
"input": {
"frames": [
{
"url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
}
]
},
"wait_seconds": 20
}
}
}
تشغيل هذا الطلب
يبقى مفتاحك في هذا المتصفح: لا يُرسل إلا إلى Doitong API ويُحفظ في localStorage فقط إذا فعّلت خيار التذكّر. الحصول على مفتاح API
حول AMT Frame Interpolation
يأخذ مصفوفة من `frames` وينشئ إطارات وسيطة بينها لتكوين مقطع. يحدد `output_fps` معدل التشغيل، والقيمة الافتراضية 24، بينما القيمة الافتراضية لـ `recursive_interpolation_passes` هي 4، لذا تُنشأ إطارات بينية أكثر من نسخة الفيديو. الناتج فيديو واحد.
المعاملات
framesمطلوب
frames[].urlمطلوب
output_fpsاختياري
recursive_interpolation_passesاختياري
المخرجات
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "amt-interpolation/frame-interpolation",
"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": 2070,
"usd": "2.07",
"charged": 2070,
"refunded": 0
},
"input": {
"frames": [
{
"url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.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"
}
}
حقول المخرجات
- video
- object {url, content_type, file_name, file_size}الفيديو الناتج عن التوليد.
أنواع Amt Interpolation الأخرى
مزيد من النماذج: من صورة إلى فيديو
لوكلاء الذكاء الاصطناعي: تتوفر هذه الصفحة بصيغة Markdown على https://doitong.com/ar/developers/models/amt-interpolation/frame-interpolation.md. جميع النماذج والأدلة: https://doitong.com/developers/llms.txt