Saltar para o conteúdo principal

Visão geral

A geração de vídeo é assíncrona. Você envia uma solicitação, recebe uma task_id e um poll_url, e então faz polling até obter o resultado final.
Para o comportamento de polling mais confiável, use exatamente o poll_url retornado pela resposta de criação.
Se uma resposta de criação retornar poll_url, chame exatamente essa URL. Quando ela apontar para /v1/tasks/{id}, trate-a como o endpoint fixo canônico de status.
A saída de áudio depende do modelo. Na LemonData, a família Veo 3 ativa áudio por padrão quando output_audio é omitido. Se um modelo oferecer controle de áudio, use output_audio para ativá-lo ou desativá-lo explicitamente. O alias camelCase outputAudio também é aceito por compatibilidade.
Em integrações de produção, prefira URLs https públicas para imagens, vídeos e áudio. Modelos compatíveis continuam aceitando URLs data:, mas payloads base64 grandes dificultam retry, observabilidade e depuração.

Corpo da requisição

model
string
padrão:"sora-2"
ID do modelo de vídeo. O padrão da API é sora-2. Consulte o guia de geração de vídeo para ver a matriz pública atual e os recursos compatíveis.
prompt
string
obrigatório
Descrição em texto do vídeo a ser gerado. Este campo é obrigatório para a maioria dos modelos públicos de vídeo.
operation
string
Operação de vídeo a ser executada. O contrato público suporta text-to-video, image-to-video, reference-to-video, start-end-to-video, video-to-video, video-extension, audio-to-video e motion-control. A LemonData pode inferir a operação a partir das entradas, mas em produção o ideal é informá-la explicitamente.
image_url
string
URL pública da imagem inicial para fluxos image-to-video. Para a compatibilidade mais ampla entre modelos, prefira image_url.
image
string
Imagem inline como URL data: (por exemplo, data:image/jpeg;base64,...). Modelos compatíveis aceitam esse formato, mas image_url costuma ser mais robusto em produção.
reference_images
array
Imagens de referência para fluxos reference-to-video. Você pode enviar até 3 itens. Recomendam-se URLs https públicas, embora modelos compatíveis também aceitem URLs data:.
reference_image_type
string
Campo opcional para modelos que distinguem entre referências asset e style.
video_url
string
URL pública do vídeo de origem. É obrigatória para os fluxos públicos atuais de video-to-video e para os modelos de motion-control.
audio_url
string
URL pública de áudio para modelos que suportam audio-to-video.
task_id
string
Identificador de tarefa do provedor para alguns fluxos de continuação, extensão ou derivação.
extend_at
integer
Deslocamento inicial específico do modelo para alguns fluxos video-extension.
extend_times
string
Multiplicador ou quantidade de repetições específica do modelo para alguns fluxos video-extension.
duration
integer
Duração do vídeo em segundos. Os valores permitidos dependem do modelo.
aspect_ratio
string
Proporção de aspecto, por exemplo 16:9, 9:16 ou 1:1.
resolution
string
Resolução de saída, por exemplo 720p, 1080p ou 4k. A compatibilidade depende do modelo.
output_audio
boolean
Alternador de saída de áudio dependente do modelo. Na LemonData, a família Veo 3 usa true por padrão quando esse campo é omitido. O alias camelCase outputAudio também é aceito por compatibilidade.
fps
integer
Quadros por segundo (1-120). Só tem efeito em modelos que expõem controle de FPS.
negative_prompt
string
Elementos que devem ser evitados no vídeo gerado.
seed
integer
Seed aleatória para resultados reproduzíveis.
cfg_scale
number
Intensidade de aderência ao prompt (0-20) nos modelos que expõem esse controle.
motion_strength
number
Intensidade de movimento (0-1) nos modelos que expõem esse controle.
start_image
string
URL da imagem do primeiro quadro, ou entrada compatível, para start-end-to-video.
end_image
string
URL da imagem do último quadro, ou entrada compatível, para start-end-to-video.
size
string
Faixa de tamanho específica do modelo para alguns modelos de vídeo compatíveis com OpenAI.
watermark
boolean
Alternador de marca-d’água para modelos que o expõem publicamente.
effect_type
string
Seletor de efeito específico do modelo para alguns fluxos especializados de edição ou efeitos.
user
string
Identificador único do usuário final.

Notas de compatibilidade

  • Os campos públicos canônicos usam snake_case: reference_images, reference_image_type e output_audio.
  • Por compatibilidade, a LemonData também aceita os aliases camelCase referenceImages, referenceImageType e outputAudio.
  • Se operation for omitido, a LemonData a infere a partir das entradas. Mesmo assim, em produção recomenda-se enviá-la explicitamente.

Boas práticas para entradas de mídia

  • Para image_url, reference_images, video_url e audio_url, prefira URLs https públicas.
  • Sempre que possível, evite misturar base64 inline e URLs remotas na mesma requisição.
  • Se você usar URLs assinadas, garanta que elas permaneçam válidas durante o período necessário para retries e criação assíncrona da tarefa.

Resposta

id
string
Identificador canônico da tarefa assíncrona. Quando id e task_id estiverem presentes juntos, trate-os como a mesma tarefa.
task_id
string
Identificador único da tarefa para polling.
poll_url
string
URL de polling recomendada para esta tarefa. Use exatamente esse caminho ao consultar o status.
status
string
Status inicial: pending.
created
integer
Timestamp Unix de criação da tarefa.
model
string
Modelo utilizado.
curl -X POST "https://api.lemondata.cc/v1/videos/generations" \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora-2",
    "prompt": "A cat walking through a garden, cinematic lighting",
    "operation": "text-to-video",
    "duration": 4,
    "aspect_ratio": "16:9"
  }'
{
  "id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "task_id": "ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "poll_url": "/v1/tasks/ldtask_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "status": "pending",
  "model": "sora-2",
  "created": 1706000000
}

Imagem para vídeo

response = requests.post(
    "https://api.lemondata.cc/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "hailuo-2.3-standard",
        "prompt": "The scene begins from the provided image and adds gentle natural motion.",
        "operation": "image-to-video",
        "image_url": "https://example.com/image.jpg",
        "duration": 6,
        "aspect_ratio": "16:9"
    }
)

Referência para vídeo

Quando o modelo suporta condicionamento dedicado por imagens de referência, use operation=reference-to-video. No contrato público da LemonData, as referências são enviadas por reference_images.
response = requests.post(
    "https://api.lemondata.cc/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "veo3.1",
        "prompt": "Keep the same subject identity, palette, and framing while adding subtle natural motion.",
        "operation": "reference-to-video",
        "reference_images": [
            "https://example.com/ref-a.jpg",
            "https://example.com/ref-b.jpg"
        ],
        "reference_image_type": "asset",
        "duration": 8,
        "resolution": "720p",
        "aspect_ratio": "9:16"
    }
)

Controle de quadro inicial e final

Use start_image e end_image para controlar o primeiro e o último quadro.
response = requests.post(
    "https://api.lemondata.cc/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "viduq2-pro",
        "prompt": "Smooth transition from day to night",
        "operation": "start-end-to-video",
        "start_image": "https://example.com/day.jpg",
        "end_image": "https://example.com/night.jpg",
        "duration": 5,
        "resolution": "720p",
        "aspect_ratio": "16:9"
    }
)

Vídeo para vídeo

Quando um modelo aceita um vídeo existente como entrada principal, use operation=video-to-video.
response = requests.post(
    "https://api.lemondata.cc/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "topaz-video-upscale",
        "operation": "video-to-video",
        "video_url": "https://example.com/source.mp4",
        "prompt": "Upscale the clip while preserving the original motion.",
        "resolution": "1080p"
    }
)

Controle de movimento

Quando um modelo precisa tanto de uma imagem do sujeito quanto de um vídeo de referência de movimento, use operation=motion-control. A LemonData normaliza a forma pública image_url + video_url para o contrato upstream correspondente.
response = requests.post(
    "https://api.lemondata.cc/v1/videos/generations",
    headers={"Authorization": "Bearer sk-your-api-key"},
    json={
        "model": "kling-3.0-motion-control",
        "operation": "motion-control",
        "prompt": "Keep the subject stable while following the motion reference.",
        "image_url": "https://example.com/subject.png",
        "video_url": "https://example.com/motion.mp4",
        "resolution": "720p"
    }
)

Disponibilidade atual de audio-to-video e video-extension

O contrato público da LemonData aceita audio-to-video e video-extension para fluxos específicos de determinados modelos. No entanto, na lista pública de modelos geralmente habilitados desta compilação de documentação não há nenhum modelo amplamente habilitado que anuncie publicamente essas capacidades. Antes de integrar esses fluxos, confirme a disponibilidade atual pela Models API ou pela página de modelos.

Inventário público atual de modelos

Esta lista está alinhada ao inventário público de modelos de vídeo habilitados nesta compilação da documentação. Para o estado mais recente, consulte a Models API.

OpenAI

ModeloOperações públicas
sora-2Texto para vídeo, imagem para vídeo
sora-2-proTexto para vídeo, imagem para vídeo
sora-2-pro-storyboardImagem para vídeo

Kuaishou

ModeloOperações públicas
kling-3.0-motion-controlControle de movimento
kling-3.0-videoTexto para vídeo, imagem para vídeo, início-fim para vídeo
kling-v2.5-turbo-proTexto para vídeo, imagem para vídeo, início-fim para vídeo
kling-v2.5-turbo-stdTexto para vídeo, imagem para vídeo
kling-v2.6-proTexto para vídeo, imagem para vídeo, início-fim para vídeo
kling-v2.6-stdTexto para vídeo, imagem para vídeo
kling-v3.0-proTexto para vídeo, imagem para vídeo, início-fim para vídeo
kling-v3.0-stdTexto para vídeo, imagem para vídeo, início-fim para vídeo
kling-video-o1-proTexto para vídeo, imagem para vídeo, referência para vídeo, início-fim para vídeo, vídeo para vídeo
kling-video-o1-stdTexto para vídeo, imagem para vídeo, referência para vídeo, início-fim para vídeo, vídeo para vídeo

Google

ModeloOperações públicas
veo3Texto para vídeo, imagem para vídeo
veo3-fastTexto para vídeo, imagem para vídeo
veo3-proTexto para vídeo, imagem para vídeo
veo3.1Texto para vídeo, imagem para vídeo, referência para vídeo, início-fim para vídeo
veo3.1-fastTexto para vídeo, imagem para vídeo, referência para vídeo, início-fim para vídeo
veo3.1-proTexto para vídeo, imagem para vídeo, início-fim para vídeo

ByteDance

ModeloOperações públicas
seedance-1.5-proTexto para vídeo, imagem para vídeo

MiniMax

ModeloOperações públicas
hailuo-2.3-fastImagem para vídeo
hailuo-2.3-proTexto para vídeo, imagem para vídeo
hailuo-2.3-standardTexto para vídeo, imagem para vídeo

Alibaba

ModeloOperações públicas
wan-2.2-plusTexto para vídeo, imagem para vídeo
wan-2.5Texto para vídeo, imagem para vídeo
wan-2.6Texto para vídeo, imagem para vídeo, referência para vídeo

Shengshu

ModeloOperações públicas
viduq2Texto para vídeo, referência para vídeo
viduq2-proImagem para vídeo, referência para vídeo, início-fim para vídeo
viduq2-pro-fastImagem para vídeo, início-fim para vídeo
viduq2-turboImagem para vídeo, início-fim para vídeo
viduq3-proTexto para vídeo, imagem para vídeo, início-fim para vídeo
viduq3-turboTexto para vídeo, imagem para vídeo, início-fim para vídeo

xAI

ModeloOperações públicas
grok-imagine-image-to-videoImagem para vídeo
grok-imagine-text-to-videoTexto para vídeo
grok-imagine-upscaleVídeo para vídeo

Outros

ModeloOperações públicas
topaz-video-upscaleVídeo para vídeo