Saltar para o conteúdo principal
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"
    }
  ]
}
Imagem para vídeo (i2v). Modo FAST fixo, sem dimensão de speed; texto para vídeo (t2v) não é suportado — um primeiro quadro é obrigatório. A duração é fixa em ~5 segundos.
ItemValor
actionVIDEO
Cobrançamidjourney@video / midjourney@video-720p, cobrado = preço unitário × batch_size
Obrigatórioimage_urls (primeiro quadro) ou task_id (reutilizar um imagine em SUCCESS)

Parâmetros

CampoTipoObrigatórioPadrãoDescrição
promptstringNão(herda do pai)Prompt de vídeo; se vazio, task_id é obrigatório
image_urlsstring[]Primeiro quadro (1 imagem, ≤ 12 MiB); um de image_urls / task_id
task_idstringReutilizar um imagine em SUCCESS; um de image_urls / task_id
indexintNãoQual das 4 tiles do imagine é o primeiro quadro (03, com task_id)
video_typestringNãovid_1.1_i2v_480Nível de resolução (ver tabela); 720 → cobrança @video-720p
animate_modestringNãomanualmanual / auto; auto requer task_id + index
motionstringNãohighlow / high; quantidade de movimento, sem impacto na cobrança
batch_sizeintNão1Deve ser 1 / 2 / 4, outros valores tratados como 1; cobrado × N
end_urlstringNãoQuadro final; quando definido, video_type é auto-promovido para start_end_*

Valores válidos de video_type

ValorResoluçãoModoCobrança
vid_1.1_i2v_480480pi2v básico (padrão)midjourney@video
vid_1.1_i2v_720720pi2v básicomidjourney@video-720p
vid_1.1_i2v_start_end_480480pquadro início/fim (auto quando end_url definido)midjourney@video
vid_1.1_i2v_start_end_720720pquadro início/fim (auto quando end_url definido)midjourney@video-720p
Valores do tipo extend não são aceitos; apenas os valores de video_type listados acima são suportados.

Exemplos de requisição

i2v simples (primeiro quadro próprio, batch 4):
{
  "prompt": "the cat slowly turns its head to the camera",
  "image_urls": ["https://example.com/cat.png"],
  "motion": "high",
  "batch_size": 4
}
Transição início/fim (end_url promove automaticamente para 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

O envio retorna um task_id; pollar GET /v1/tasks/{task_id}. Em SUCCESS inclui video_url (o primeiro) mais video_urls (length === batch_size; com batch=1 ainda tem 1 elemento):
{
  "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"
  ]
}

Notas

  • Texto para vídeo (t2v) não é suportado: você deve passar image_urls ou task_id, caso contrário retorna 400; não pode passar ambos.
  • Modo FAST fixo, sem dimensão de speed (@video-fast / @video-turbo na tabela de cobrança nunca são atingidos).
  • batch_size é estritamente validado como 1 / 2 / 4; batch=4 cobra 4×, use batch=1 quando o orçamento for sensível.
  • animate_mode=auto requer tanto task_id + index.
  • O primeiro / último quadro deve ter cada um ≤ 12 MiB.