Saltar para o conteúdo principal
POST
/
v1
/
videos
/
generations
curl --request POST \
  --url https://api.apimart.ai/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "skyreels-v4-fast",
    "prompt": "A serene forest at sunset with golden light filtering through the trees.",
    "duration": 5,
    "resolution": "1080p",
    "aspect_ratio": "16:9",
    "prompt_optimizer": true
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KPEY5H3NQ2W8D7T6VB3F9GR4"
    }
  ]
}

Documentation Index

Fetch the complete documentation index at: https://docs.apimart.ai/llms.txt

Use this file to discover all available pages before exploring further.

curl --request POST \
  --url https://api.apimart.ai/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "skyreels-v4-fast",
    "prompt": "A serene forest at sunset with golden light filtering through the trees.",
    "duration": 5,
    "resolution": "1080p",
    "aspect_ratio": "16:9",
    "prompt_optimizer": true
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KPEY5H3NQ2W8D7T6VB3F9GR4"
    }
  ]
}

Autorização

Authorization
string
obrigatório
Todos os endpoints da API exigem autenticação via Bearer TokenObtenha sua chave de API:Acesse a página de gerenciamento de chaves de API para obter sua chave de APIAdicione ao cabeçalho da requisição:
Authorization: Bearer YOUR_API_KEY

Modos de geração

O SkyReels V4 roteia automaticamente para o modo correto com base nos campos da requisição — nenhum campo mode é necessário:
ModoAcionamentoCapacidade
T2V (Text-to-Video)Apenas prompt + campos geraisGeração orientada puramente por texto
I2V (Image-to-Video)Qualquer um de first_frame_image / end_frame_image / mid_frame_imagesControle do primeiro/último/quadro-chave
Omni (Multimodal Reference)Qualquer um de ref_images / ref_videosReferência de personagem, colagem em grade, referência de movimento, extensão de vídeo, sincronização de áudio
Exclusão mútua estrita: campos I2V (first_frame_image / end_frame_image / mid_frame_images) e campos Omni (ref_images / ref_videos) não podem ser usados juntos, caso contrário retorna 422.
Mecanismo @tag: ao usar mid_frame_images / ref_images / ref_videos, cada elemento deve declarar uma tag começando com @ (por exemplo, @image1, @Actor-1, @video1), e a tag deve aparecer no prompt.Pense no prompt como o “roteiro” e na tag como um “ponteiro de personagem” para ativos específicos (imagens / vídeos). Por exemplo, um prompt como "@Actor-1 walks into the scene of @video1" instrui o sistema a injetar o sujeito da imagem de referência vinculada a @Actor-1 e a referência de movimento vinculada a @video1 no processo de geração.

Parâmetros da requisição

Campos gerais

model
string
obrigatório
Dois níveis de modelo estão disponíveis:
ModeloPosicionamentoCasos de uso
skyreels-v4-fastVelocidade em primeiro lugarPré-visualizações rápidas, geração em lote, conteúdo diário
skyreels-v4-stdQualidade em primeiro lugar (preço 25~30% maior que Fast)Tomadas-chave, requisitos de alto detalhe, entrega formal
O campo model deve ser explicitamente fornecido — sem valor padrão.
O preço está fortemente vinculado à resolução e ao uso de ref_videos: 1080p é significativamente mais caro que 480p / 720p; os níveis com ref_videos (entrada de vídeo) custam ~1,5 a 2× em comparação com os que não usam. Saída simultânea de áudio e vídeo ainda não é suportada.
prompt
string
obrigatório
Prompt de texto, máximo de 1280 tokensDescreva cenas, sujeitos, ações e estilos em detalhes para obter melhores resultados de geração.Ao usar ref_images / ref_videos / mid_frame_images, o prompt deve conter a @tag correspondente (por exemplo, @Actor-1, @video1, @image1).Exemplo: "@Actor-1 walks through a neon-lit street at night."
duration
integer
padrão:"5"
Duração do vídeo de saída (segundos)
  • Intervalo: [3, 15]
  • Padrão: 5
Quando ref_videos.type=reference é fornecido, duration é sobrescrito pela duração do vídeo de referência (máximo de 10 segundos).
resolution
string
padrão:"1080p"
Resolução do vídeoOpções:
  • 480p
  • 720p
  • 1080p (padrão)
aspect_ratio
string
padrão:"16:9"
Proporção de telaOpções:
  • 16:9 (padrão)
  • 4:3
  • 1:1
  • 9:16
  • 3:4
aspect_ratio é ignorado no modo I2V (a proporção de saída é determinada pela imagem de entrada); também é ignorado quando Omni é combinado com ref_videos.
prompt_optimizer
boolean
padrão:"true"
Se deve otimizar automaticamente o promptQuando ativado, o sistema otimiza automaticamente seu prompt para obter melhores resultados de geração.

Campos específicos do I2V

first_frame_image
string
URL da imagem do primeiro quadro (jpg / jpeg / png / gif / bmp)Quando fornecida, esta imagem é usada como o quadro inicial do vídeo.
end_frame_image
string
URL da imagem do último quadro (jpg / jpeg / png / gif / bmp)Quando fornecida, esta imagem é usada como o quadro final do vídeo. Pode ser combinada com first_frame_image para controle do primeiro e do último quadro.
mid_frame_images
object[]
Lista de quadros-chave intermediários, até 6. Cada elemento tem a seguinte estrutura:

Campos específicos do Omni

ref_images
object[]
Lista de imagens de referência (todos os elementos devem compartilhar o mesmo type). Cada elemento tem a seguinte estrutura:
ref_videos
object[]
Lista de vídeos de referência, até 1. Cada elemento tem a seguinte estrutura:

Cenários suportados

Os cenários a seguir são suportados por ambos skyreels-v4-fast e skyreels-v4-std:
CenárioModoCampos obrigatóriosCaso de uso típico
Text-to-VideoT2VpromptOrientado por texto puro, tomadas conceituais rápidas
Image-to-Video - Primeiro quadroI2Vfirst_frame_imageDe imagem para vídeo com um quadro inicial especificado
Image-to-Video - Último quadroI2Vend_frame_imageEspecifica o quadro de encerramento
Image-to-Video - Quadros-chaveI2Vmid_frame_images (1 ~ 6)Primeiro + último + quadros-chave intermediários para ritmo preciso
Omni Single/Multi-SubjectOmniref_images (type=image)Consistência de personagem, enquadramento de múltiplos sujeitos
Omni Grid CollageOmniref_images (type=grid, 1 imagem)Vídeos de processo passo a passo (tutoriais, receitas, demos)
Omni Motion ReferenceOmniref_videos (type=reference)Replicar o movimento, sujeito ou estilo de um vídeo de referência
Omni Video ExtensionOmniref_videos (type=extend)Continuar um vídeo existente com novo conteúdo
Omni Audio SyncOmniref_images (type=image) + audio_urlNarração de humano digital, lip-sync orientado por áudio

Restrições de parâmetros

Violar qualquer um dos seguintes fará com que a requisição seja rejeitada com uma resposta 422, sem cobrança:
ParâmetroRestrição
promptMáximo de 1280 tokens
duration[3, 15] segundos; sobrescrito pela duração do vídeo de referência (máx 10s) quando ref_videos.type=reference
resolutionApenas 480p / 720p / 1080p
aspect_ratio16:9 / 4:3 / 1:1 / 9:16 / 3:4; ignorado em I2V; ignorado quando Omni carrega ref_videos
mid_frame_imagesAté 6; time_stamp deve ser -1 ou estar dentro de (0, duration)
ref_images geralTodos os elementos devem compartilhar o mesmo type; não pode coexistir com campos I2V
ref_images.type=gridComprimento da lista deve ser = 1; image_urls deve ser 1 imagem
ref_images.type=imageComprimento da lista 1 ~ 3; cada image_urls com comprimento 1 ~ 5
ref_images.audio_urlSuportado apenas quando type=image, áudio ≤ 15 segundos
ref_videosAté 1; video_url MP4 / MOV, ≤ 15 segundos
ref_videos.type=referenceSobrescreve a duration solicitada (máx 10s), pode combinar com ref_images.type=image, carrega o áudio do vídeo de entrada por padrão
ref_videos.type=extendCobrado pela duration solicitada; não pode combinar com ref_images
Campo tagDeve começar com @ e aparecer no prompt
Exclusão I2V / OmniCampos I2V e campos Omni não podem ser usados juntos

Resposta

code
integer
Código de status da resposta, 200 em caso de sucesso
data
array
Array de dados da resposta

Exemplos de requisição

Caso 1: Texto para vídeo (Mínimo)

{
  "model": "skyreels-v4-fast",
  "prompt": "A serene forest at sunset with golden light filtering through the trees."
}

Caso 2: Texto para vídeo (Parâmetros completos)

{
  "model": "skyreels-v4-std",
  "prompt": "A serene forest at sunset.",
  "duration": 5,
  "resolution": "720p",
  "aspect_ratio": "16:9",
  "prompt_optimizer": true
}

Caso 3: Imagem para vídeo - Primeiro quadro

{
  "model": "skyreels-v4-fast",
  "prompt": "Slowly pull the camera back to reveal the entire scene.",
  "first_frame_image": "https://example.com/start.png",
  "duration": 5
}

Caso 4: Imagem para vídeo - Primeiro/Último quadro + quadros-chave intermediários

{
  "model": "skyreels-v4-std",
  "prompt": "The King summons a flying dragon. @image1 The dragon lowers. The King mounts and flies away.",
  "duration": 8,
  "resolution": "1080p",
  "first_frame_image": "https://example.com/k2v_0.png",
  "end_frame_image":   "https://example.com/k2v_2.png",
  "mid_frame_images": [
    { "tag": "@image1", "image_url": "https://example.com/k2v_1.png", "time_stamp": 3 }
  ]
}

Caso 5: Omni - Referência de sujeito único

{
  "model": "skyreels-v4-fast",
  "prompt": "@Actor-1 walks through a neon-lit street at night.",
  "ref_images": [
    { "tag": "@Actor-1", "type": "image", "image_urls": ["https://example.com/actor.jpg"] }
  ]
}

Caso 6: Omni - Múltiplos sujeitos + referência de movimento por vídeo

{
  "model": "skyreels-v4-fast",
  "prompt": "The man from @image_1 imitates the move on the left in @video_1. The woman from @image_2 imitates the right side.",
  "duration": 5,
  "ref_images": [
    { "tag": "@image_1", "type": "image", "image_urls": ["https://example.com/a.png"] },
    { "tag": "@image_2", "type": "image", "image_urls": ["https://example.com/b.png"] }
  ],
  "ref_videos": [
    { "tag": "@video_1", "type": "reference", "video_url": "https://example.com/motion.mp4" }
  ]
}
Este caso usa ref_videos.type=reference, então a duration solicitada será sobrescrita pela duração real do vídeo de referência (máximo de 10 segundos). Mesmo que "duration": 5 seja passado aqui, a duração final do vídeo segue o vídeo de referência.

Caso 7: Omni - Colagem em grade

{
  "model": "skyreels-v4-fast",
  "prompt": "Create a video showing how to make tomato and egg noodles based on @image1.",
  "ref_images": [
    { "tag": "@image1", "type": "grid", "image_urls": ["https://example.com/recipe_grid.png"] }
  ]
}

Caso 8: Omni - Extensão de vídeo (extend)

{
  "model": "skyreels-v4-fast",
  "prompt": "Video extended @video1, someone walks over and sits on the sofa.",
  "duration": 8,
  "ref_videos": [
    { "tag": "@video1", "type": "extend", "video_url": "https://example.com/source.mp4" }
  ]
}

Caso 9: Omni - Sincronização de áudio (orientada por voz)

{
  "model": "skyreels-v4-std",
  "prompt": "@Actor-1 speaks with a calm tone.",
  "ref_images": [
    {
      "tag": "@Actor-1",
      "type": "image",
      "image_urls": ["https://example.com/actor.jpg"],
      "audio_url":  "https://example.com/voice.mp3"
    }
  ]
}
Consultar resultados da tarefaA geração de vídeos é uma tarefa assíncrona que retorna um task_id no envio. Use o endpoint Obter status da tarefa para consultar o progresso e os resultados da geração.