Перейти к основному содержанию
POST
/
v1
/
midjourney
/
generations
/
video
curl --request POST \
  --url https://api.apimart.ai/v1/midjourney/generations/video \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "prompt": "the cat slowly turns its head to the camera",
    "image_urls": [
      "https://example.com/cat.png"
    ],
    "motion": "high",
    "batch_size": 4
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KV52C0TEJSYZMCG0NCS4YWKK"
    }
  ]
}
curl --request POST \
  --url https://api.apimart.ai/v1/midjourney/generations/video \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "prompt": "the cat slowly turns its head to the camera",
    "image_urls": [
      "https://example.com/cat.png"
    ],
    "motion": "high",
    "batch_size": 4
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KV52C0TEJSYZMCG0NCS4YWKK"
    }
  ]
}
Изображение в видео (i2v). Фиксированный режим FAST, без измерения speed; текст в видео (t2v) не поддерживается — нужен первый кадр. Длительность фиксирована ~5 секунд.
ItemЗначение
actionVIDEO
Тарификацияmidjourney@video / midjourney@video-720p, списывается = цена за единицу × batch_size
Обязательноimage_urls (первый кадр) или task_id (повторное использование SUCCESS imagine)

Параметры

ПолеТипОбязат.По умолчаниюОписание
promptstringНет(наследует родителя)Промпт видео; если пусто, обязателен task_id
image_urlsstring[]Первый кадр (1 изображение, ≤ 12 MiB); одно из image_urls / task_id
task_idstringПовторно использовать SUCCESS imagine; одно из image_urls / task_id
indexintНетКакая из 4 плиток imagine — первый кадр (03, с task_id)
video_typestringНетvid_1.1_i2v_480Уровень разрешения (см. таблицу); 720 → тарификация @video-720p
animate_modestringНетmanualmanual / auto; auto требует task_id + index
motionstringНетhighlow / high; объём движения, не влияет на тарификацию
batch_sizeintНет1Должен быть 1 / 2 / 4, иные значения трактуются как 1; списывается × N
end_urlstringНетКонечный кадр; если задан, video_type авто-повышается до start_end_*

Допустимые значения video_type

ЗначениеРазрешениеРежимТарификация
vid_1.1_i2v_480480pбазовый i2v (по умолчанию)midjourney@video
vid_1.1_i2v_720720pбазовый i2vmidjourney@video-720p
vid_1.1_i2v_start_end_480480pкадр начала/конца (авто при заданном end_url)midjourney@video
vid_1.1_i2v_start_end_720720pкадр начала/конца (авто при заданном end_url)midjourney@video-720p
Значения типа extend не принимаются; поддерживаются только значения video_type, перечисленные выше.

Примеры запроса

Простой i2v (свой первый кадр, batch 4):
{
  "prompt": "the cat slowly turns its head to the camera",
  "image_urls": ["https://example.com/cat.png"],
  "motion": "high",
  "batch_size": 4
}
Переход начало/конец (end_url авто-повышает до start_end):
{
  "prompt": "transition smoothly from sunrise to sunset",
  "image_urls": ["https://example.com/sunrise.jpg"],
  "end_url": "https://example.com/sunset.jpg",
  "video_type": "vid_1.1_i2v_720"
}

Response

Отправка возвращает task_id; опрашивайте GET /v1/tasks/{task_id}. При SUCCESS включает video_url (первое) плюс video_urls (length === batch_size; при batch=1 всё равно 1 элемент):
{
  "id": "task_xxx",
  "status": "SUCCESS",
  "action": "VIDEO",
  "mode": "FAST",
  "video_url": "https://r2.example.com/video-0.mp4",
  "video_urls": [
    "https://r2.example.com/video-0.mp4",
    "https://r2.example.com/video-1.mp4"
  ]
}

Заметки

  • Текст в видео (t2v) не поддерживается: нужно передать image_urls или task_id, иначе вернётся 400; нельзя передать оба.
  • Фиксированный режим FAST, без измерения speed (@video-fast / @video-turbo в таблице тарификации никогда не срабатывают).
  • batch_size строго проверяется как 1 / 2 / 4; batch=4 списывает в 4 раза, при ограниченном бюджете используйте batch=1.
  • animate_mode=auto требует и task_id, и index.
  • Первый / конечный кадр — каждый ≤ 12 MiB.