API de geração de vídeo Seedance
Chame a geração de vídeo Seedance (Volcengine Ark) pela LMU AI com o protocolo assíncrono nativo: crie, consulte, liste e cancele tarefas, além de um exemplo completo de polling.
A geração de vídeo Seedance (Volcengine Ark) usa o protocolo assíncrono nativo do fornecedor: substitua o endereço no SDK oficial ou no comando curl pelo endereço da LMU AI e a chave pela sua chave de API da LMU AI; o corpo da requisição permanece inalterado. Para as regras comuns de autenticação, cobrança e marcas d'água, limites de concorrência e códigos de erro, consulte a visão geral da API de geração de vídeo.
URL base
https://api.lmuai.ai| Operação | Endpoint |
|---|---|
| Criar uma tarefa | POST /api/v3/contents/generations/tasks |
| Consultar uma tarefa | GET /api/v3/contents/generations/tasks/{id} |
| Listar tarefas | GET /api/v3/contents/generations/tasks |
| Cancelar / excluir | DELETE /api/v3/contents/generations/tasks/{id} |
A geração de vídeo deve estar habilitada para o seu grupo
O grupo da chave de API deve ter a "Geração de vídeo" habilitada; caso contrário, as chamadas retornam 403. O nome do modelo deve corresponder exatamente ao nome habilitado para o seu grupo (diferencia maiúsculas de minúsculas); verifique os modelos disponíveis com GET /v1/models.
1. Criar uma tarefa
POST /api/v3/contents/generations/tasks
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
model | string | Sim | Nome do modelo; deve corresponder exatamente ao nome habilitado para o seu grupo (diferencia maiúsculas de minúsculas) |
content | array | Sim | Conteúdo de entrada. Texto: {"type":"text","text":"…"}; imagem de referência: {"type":"image_url","image_url":{"url":"…"},"role":"first_frame"}, em que role pode ser first_frame (primeiro quadro) ou reference_image (imagem de referência) |
resolution | string | Não | Nível de resolução: 480p / 720p / 1080p |
duration | integer | Não | Duração do vídeo em segundos |
ratio | string | Não | Proporção: 16:9 / 9:16 / 1:1 / 4:3 |
generate_audio | boolean | Não | Se deve gerar áudio também |
curl https://api.lmuai.ai/api/v3/contents/generations/tasks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.5",
"content": [
{"type": "text", "text": "Waves gently lapping the beach at dusk, slow motion"}
],
"resolution": "720p",
"duration": 5,
"ratio": "16:9",
"generate_audio": true
}'import requests
BASE = "https://api.lmuai.ai"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}
resp = requests.post(f"{BASE}/api/v3/contents/generations/tasks", headers=HEADERS, json={
"model": "seedance-2.5",
"content": [{"type": "text", "text": "Waves gently lapping the beach at dusk, slow motion"}],
"resolution": "720p",
"duration": 5,
"ratio": "16:9",
"generate_audio": True,
})
resp.raise_for_status()
task_id = resp.json()["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/v3/contents/generations/tasks`, {
method: "POST",
headers,
body: JSON.stringify({
model: "seedance-2.5",
content: [{ type: "text", text: "Waves gently lapping the beach at dusk, slow motion" }],
resolution: "720p",
duration: 5,
ratio: "16:9",
generate_audio: true,
}),
});
const data = await resp.json();
console.log(data.id);Resposta:
{
"id": "cgt-20261022103211-ab12c"
}Para usar uma imagem de referência de primeiro quadro, adicione um item de imagem a content:
{
"model": "seedance-2.5",
"content": [
{"type": "text", "text": "The camera slowly pushes in as waves gently lap the beach"},
{"type": "image_url", "image_url": {"url": "https://example.com/first-frame.png"}, "role": "first_frame"}
],
"resolution": "720p",
"duration": 5
}Observações
- No modo de primeiro quadro (
roleigual afirst_frame), não envieratio: a proporção segue a imagem do primeiro quadro, e o upstream rejeita a requisição com400se você enviá-lo. - O
callback_urlnão é repassado ao upstream; você não receberá um callback mesmo que o passe. Use polling em vez disso.
2. Consultar uma tarefa
GET /api/v3/contents/generations/tasks/{id}
Valores de status: queued → running → succeeded / failed / cancelled. Em caso de sucesso, a URL do vídeo fica em content.video_url.
curl https://api.lmuai.ai/api/v3/contents/generations/tasks/TASK_ID \
-H "Authorization: Bearer YOUR_API_KEY"Resposta (sucesso):
{
"id": "cgt-20261022103211-ab12c",
"model": "seedance-2.5",
"status": "succeeded",
"content": {
"video_url": "https://…/video.mp4"
},
"usage": {
"completion_tokens": 108900,
"total_tokens": 108900
},
"created_at": 1792629131,
"updated_at": 1792629262
}3. Listar tarefas
GET /api/v3/contents/generations/tasks?limit=20&offset=0
Retorna as tarefas criadas com a chave de API atual (limit de 1 a 100, padrão 20). A resposta é {object, data[], has_more}. Os registros das tarefas continuam consultáveis depois que o link do vídeo expira.
4. Cancelar / excluir
DELETE /api/v3/contents/generations/tasks/{id}
- Tarefas ainda na fila (
queued) podem ser canceladas sem custo. - Tarefas que já começaram a ser geradas (
running) não podem ser canceladas e retornam409. - Tarefas concluídas podem ter seu registro no upstream excluído, sem reembolso.
5. Exemplo completo: criar e fazer polling
import time, requests
BASE = "https://api.lmuai.ai"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}
# 1. Create the task
resp = requests.post(f"{BASE}/api/v3/contents/generations/tasks", headers=HEADERS, json={
"model": "seedance-2.5",
"content": [{"type": "text", "text": "Waves gently lapping the beach at dusk, slow motion"}],
"resolution": "720p", "duration": 5, "ratio": "16:9",
})
resp.raise_for_status()
task_id = resp.json()["id"]
# 2. Poll until a final state (every 10 seconds)
while True:
task = requests.get(f"{BASE}/api/v3/contents/generations/tasks/{task_id}", headers=HEADERS).json()
status = task["status"]
if status in ("succeeded", "failed", "cancelled", "canceled", "expired"):
break
time.sleep(10)
# 3. Download (the link is valid for 24 hours)
if status == "succeeded":
url = task["content"]["video_url"]
with open(f"{task_id}.mp4", "wb") as f:
f.write(requests.get(url).content)
else:
print("Generation failed:", task)6. Cobrança e códigos de erro
O Seedance é cobrado por tokens de saída. Um valor estimado é congelado quando a tarefa é criada, e saldo insuficiente retorna 402; em caso de sucesso, a tarefa é liquidada conforme o uso real, e tarefas com falha e canceladas são totalmente reembolsadas. Cada usuário e cada chave de API pode ter no máximo 5 tarefas sendo geradas ao mesmo tempo; acima disso, as requisições retornam 429.
Para as regras completas, consulte Cobrança e marcas d'água, Limites de concorrência e Códigos de erro na visão geral. Para o outro fornecedor, consulte a API de geração de vídeo Wan.
Última atualização:
Ainda com dúvidas? Pergunte na Comunidade da LMU AI (em chinês); entre com a sua conta do console.
Obtenha uma chave de API da LMU AI e comece a usar Claude, Codex e muito mais
Cadastro gratuito e planos flexíveis. Uma única chave de API para Claude Code, Codex CLI, Cursor, extensão do VS Code, OpenCode, Cherry Studio e outras ferramentas de IA.
Cadastrar-seAPI de geração de vídeo
Visão geral da API de geração de vídeo com IA da LMU AI: escolha entre Seedance e Wan, além das regras comuns de autenticação, tarefas assíncronas, cobrança, limites de concorrência e códigos de erro.
API de Geração de Vídeo Wan
Chame a geração de vídeo Wan (Alibaba DashScope) por meio do LMU AI com o protocolo assíncrono nativo: crie tarefas, consulte os resultados, valores padrão e um exemplo completo de polling.