Ảnh thành videoWaveSpeedChuẩn chuyên nghiệp

Wan 2.2 Ultra Fast · Image to Video

wavespeed-ai/wan-2.2/i2v-480p-ultra-fast

wavespeed-ai/wan-2.2/i2v-480p-ultra-fast. Truy cập mô hình AI từ nhiều nhà cung cấp qua một API. So sánh khả năng, tham số và giá.

Đầy đủ tham số, lược đồ đầu ra và giá hiện tại

Model HubMột nền tảng cho mọi thứPhổ biến nhấtĐiều khoảnTruy cập mô hình AI từ nhiều nhà cung cấp qua một API. So sánh khả năng, tham số và giá.
prompt *Prompttextarea—≤ 2000 chars
image *Start frameimage_upload—image/jpeg,image/png,image/webp · 1–1 items
last_imageEnd frame (optional)image_upload—image/jpeg,image/png,image/webp · 0–1 items
durationDurationselect55 | 8
negative_promptNegative prompttextarea—≤ 2000 chars
seedSeednumber-1-1 ~ 2147483647 · step 1

API

Truy cập mô hình AI từ nhiều nhà cung cấp qua một API. So sánh khả năng, tham số và giá.

cURL
# 1) Submit — returns { "task_uuid": "..." }
curl -X POST "https://www.framedance.ai/api/v1/marketplace/run/wavespeed-ai/wan-2.2/i2v-480p-ultra-fast" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "input": {
    "prompt": "A calm ocean wave at sunrise, gentle motion, slow cinematic camera push-in",
    "image": "https://example.com/input.jpg",
    "duration": 5,
    "seed": -1
  }
}'

# 2) Poll until status is "completed", then read the output URLs
curl "https://www.framedance.ai/api/v1/marketplace/run/tasks/TASK_UUID" \
  -H "Authorization: Bearer YOUR_API_KEY"
Python
import time, requests

API_KEY = "YOUR_API_KEY"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}

# 1) Submit
resp = requests.post(
    "https://www.framedance.ai/api/v1/marketplace/run/wavespeed-ai/wan-2.2/i2v-480p-ultra-fast",
    headers=HEADERS,
    json={
        "input": {
            "prompt": "A calm ocean wave at sunrise, gentle motion, slow cinematic camera push-in",
            "image": "https://example.com/input.jpg",
            "duration": 5,
            "seed": -1
        }
    },
)
resp.raise_for_status()  # 401/402/429/5xx stop here instead of polling a bad task
task = resp.json()

# 2) Poll until a terminal state (completed / failed / cancelled).
#    This model is allowed up to 600s server-side.
deadline = time.time() + 660
while task.get("status") not in ("completed", "failed", "cancelled"):
    if time.time() > deadline:
        raise TimeoutError(f"still {task.get('status')} — keep the task_uuid and poll later")
    time.sleep(3)
    poll = requests.get(f"https://www.framedance.ai/api/v1/marketplace/run/tasks/{task['task_uuid']}", headers=HEADERS)
    poll.raise_for_status()
    task = poll.json()

print(task["status"], task.get("output"))
JavaScript
const API_KEY = "YOUR_API_KEY";
const HEADERS = { Authorization: `Bearer ${API_KEY}` };

// 1) Submit
const resp = await fetch("https://www.framedance.ai/api/v1/marketplace/run/wavespeed-ai/wan-2.2/i2v-480p-ultra-fast", {
  method: "POST",
  headers: { ...HEADERS, "Content-Type": "application/json" },
  body: JSON.stringify({
    "input": {
      "prompt": "A calm ocean wave at sunrise, gentle motion, slow cinematic camera push-in",
      "image": "https://example.com/input.jpg",
      "duration": 5,
      "seed": -1
    }
  }),
});
if (!resp.ok) throw new Error(`submit failed: ${resp.status} ${await resp.text()}`);
let task = await resp.json();

// 2) Poll until a terminal state (completed / failed / cancelled).
//    This model is allowed up to 600s server-side.
const deadline = Date.now() + 660 * 1000;
while (!["completed", "failed", "cancelled"].includes(task.status)) {
  if (Date.now() > deadline) throw new Error(`still ${task.status} — keep the task_uuid and poll later`);
  await new Promise((r) => setTimeout(r, 3000));
  const poll = await fetch(`https://www.framedance.ai/api/v1/marketplace/run/tasks/${task.task_uuid}`, { headers: HEADERS });
  if (!poll.ok) throw new Error(`poll failed: ${poll.status}`);
  task = await poll.json();
}

console.log(task.status, task.output);
Wan 2.2 Ultra Fast · Image to Video API — Bảng giá, Thử trong khu trải nghiệm & Tài liệu API | Framedance