Открытый API

API генерации видео Wan

Генерация видео Wan (Alibaba DashScope) через LMU AI по нативному асинхронному протоколу: создание задач, опрос результатов, значения по умолчанию и полный пример опроса.

Генерация видео Wan (Alibaba Cloud Model Studio, DashScope) использует нативный асинхронный протокол поставщика, идентичный официальному протоколу DashScope: замените адрес в официальном SDK или команде curl на адрес LMU AI, а ключ — на ваш API-ключ LMU AI; тело запроса остаётся без изменений. Общие правила аутентификации, тарификации и водяных знаков, ограничения параллелизма и коды ошибок описаны в обзоре API генерации видео.

Базовый URL

https://api.lmuai.ai
ОперацияЭндпоинт
Создать задачуPOST /api/v1/services/aigc/video-generation/video-synthesis
Запросить задачуGET /api/v1/tasks/{task_id}

Для вашей группы должна быть включена генерация видео

Для группы API-ключа должна быть включена функция «Генерация видео», иначе вызовы возвращают 403. Название модели должно точно совпадать с названием, включённым для вашей группы (с учётом регистра); список доступных моделей можно получить через GET /v1/models.

1. Создание задачи

POST /api/v1/services/aigc/video-generation/video-synthesis

Асинхронный заголовок X-DashScope-Async: enable необязателен — платформа добавляет его автоматически.

ПараметрТипОбязательныйОписание
modelstringДаНапример, wan3.0-video
input.promptstringДаПромпт
input.mediaarrayНетРеференсные медиафайлы, например [{"type":"first_frame","url":"…"}]; type может быть first_frame или reference_image
parameters.resolutionstringНетУровень разрешения: 480P / 720P / 1080P, по умолчанию 1080P
parameters.durationintegerНетДлительность в секундах, по умолчанию 5
parameters.watermarkbooleanНетУстанавливается платформой единообразно в соответствии с политикой группы; значение, переданное клиентом, может быть переопределено
curl https://api.lmuai.ai/api/v1/services/aigc/video-generation/video-synthesis \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "wan3.0-video",
    "input": {"prompt": "A Shiba Inu running across a sunny meadow"},
    "parameters": {"resolution": "720P", "duration": 5}
  }'
import requests

BASE = "https://api.lmuai.ai"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}

resp = requests.post(f"{BASE}/api/v1/services/aigc/video-generation/video-synthesis", headers=HEADERS, json={
    "model": "wan3.0-video",
    "input": {"prompt": "A Shiba Inu running across a sunny meadow"},
    "parameters": {"resolution": "720P", "duration": 5},
})
resp.raise_for_status()
task_id = resp.json()["output"]["task_id"]
print(task_id)
const BASE = "https://api.lmuai.ai";
const headers = {
  Authorization: "Bearer YOUR_API_KEY",
  "Content-Type": "application/json",
};

const resp = await fetch(`${BASE}/api/v1/services/aigc/video-generation/video-synthesis`, {
  method: "POST",
  headers,
  body: JSON.stringify({
    model: "wan3.0-video",
    input: { prompt: "A Shiba Inu running across a sunny meadow" },
    parameters: { resolution: "720P", duration: 5 },
  }),
});
const data = await resp.json();
console.log(data.output.task_id);

Ответ:

{
  "request_id": "4909100c-…",
  "output": {
    "task_id": "c65c77fe-323b-4140-8de6-5a7241d9ec44",
    "task_status": "PENDING"
  }
}

2. Запрос задачи

GET /api/v1/tasks/{task_id}

Значения output.task_status: PENDING → RUNNING → SUCCEEDED / FAILED / CANCELED. При успешном выполнении URL видео находится в output.video_url, а оплачиваемые секунды — в usage.duration.

curl https://api.lmuai.ai/api/v1/tasks/TASK_ID \
  -H "Authorization: Bearer YOUR_API_KEY"

Ответ (успех):

{
  "request_id": "…",
  "output": {
    "task_id": "c65c77fe-323b-4140-8de6-5a7241d9ec44",
    "task_status": "SUCCEEDED",
    "video_url": "https://…/output.mp4"
  },
  "usage": {
    "duration": 2.0,
    "video_count": 1
  }
}

Нет эндпоинта отмены

У Wan нет эндпоинта отмены: после отправки задача всегда выполняется до конца. Неудавшиеся задачи не оплачиваются.

3. Полный пример: создание и опрос

import time, requests

BASE = "https://api.lmuai.ai"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}

# 1. Create the task
resp = requests.post(f"{BASE}/api/v1/services/aigc/video-generation/video-synthesis", headers=HEADERS, json={
    "model": "wan3.0-video",
    "input": {"prompt": "A Shiba Inu running across a sunny meadow"},
    "parameters": {"resolution": "720P", "duration": 5},
})
resp.raise_for_status()
task_id = resp.json()["output"]["task_id"]

# 2. Poll until a final state (every 10 seconds)
while True:
    task = requests.get(f"{BASE}/api/v1/tasks/{task_id}", headers=HEADERS).json()
    status = task["output"]["task_status"]
    if status in ("SUCCEEDED", "FAILED", "CANCELED", "CANCELLED", "UNKNOWN"):
        break
    time.sleep(10)

# 3. Download (the link is valid for 24 hours)
if status == "SUCCEEDED":
    url = task["output"]["video_url"]
    with open(f"{task_id}.mp4", "wb") as f:
        f.write(requests.get(url).content)
else:
    print("Generation failed:", task)

4. Тарификация и коды ошибок

Wan тарифицируется по формуле «фактические секунды × цена за единицу для уровня разрешения», а оплачиваемые секунды указаны в usage.duration результата запроса. При создании задачи замораживается расчётная сумма; при недостаточном балансе возвращается 402. При успешном выполнении задача рассчитывается по фактическому использованию, а за неудавшиеся задачи средства возвращаются полностью. У каждого пользователя и каждого API-ключа одновременно может генерироваться не более 5 задач; при превышении запросы возвращают 429.

Полные правила см. в разделах Тарификация и водяные знаки, Ограничения параллелизма и Коды ошибок обзора. Информацию о другом поставщике см. в API генерации видео Seedance.

Последнее обновление:

Остались вопросы? Задайте их в сообществе LMU AI (на китайском языке) — вход через аккаунт консоли.

На этой странице