SeeGen AI API
Bem-vindo à API da SeeGen AI — uma única API para geração de vídeo cinematográfico e imagens de alta fidelidade em vários modelos líderes.
Visão geral
A SeeGen AI é uma API de geração unificada: um conjunto consistente de endpoints para executar vários modelos líderes de vídeo e imagem por IA. Escolha um modelo com o parâmetro model — autenticação, envio de tarefas, consulta de status e webhooks funcionam da mesma forma em todos eles.
Modelos disponíveis no momento:
- Vídeo — Seedance 2.5 (
sd2.5), Seedance 2.0 Pro (sd2), Fast (sd2-fast), Mini (sd2-mini), Wan 3.0 Video Prime (wan3.0-video-prime), Wan 3.0 Video (wan3.0-video) - Imagem — GPT Image 2 (
gpt-image-2), Nano Banana 2 (nano-banana-2), Nano Banana Pro (nano-banana-pro), Seedream 5.0 Lite (seedream-v5.0-lite), Seedream 5.0 Pro (seedream-v5.0-pro)
URL base: https://seegen.ai/api/v1
Modelo: informe qualquer um dos aliases acima no campo model (por exemplo, sd2, gpt-image-2).
Por que SeeGen AI?
Mais motivos para escolher a SeeGen AI:
- Muito mais do que Seedance 2.0: Wan 3.0, Nano Banana, ChatGPT Image e outros.
- Nenhuma assinatura necessária — pague conforme o uso
- Acesso rápido aos modelos mais recentes
- Suporte ao cliente 24 horas por dia, 7 dias por semana
- Suporte para consultas oficiais relacionadas aos modelos
- Acesso ao console para desenvolvedores
- Aberto tanto para empresas quanto para usuários individuais
Preços
API Pack
125,000 créditos ($0.004/crédito)
~781 vídeos de 5s
API-XL Pack
500,000 créditos ($0.004/crédito)
~3,125 vídeos de 5s
Seedance 2.0 / Fast / Mini / 2.5 — cálculo de custo
Considere out = output_seconds e in = a soma de ⌈duration⌉ de cada vídeo de entrada (cada um arredondado para cima, mínimo out × 2/3). Seedance 2.5 segue o mesmo cálculo que Seedance 2.0. A taxa base do modelo correspondente é multiplicada por 1.5 e arredondada antes de aplicar a fórmula da tarefa (1080P é nativo no sd2.5, 2,5× sua taxa de 720P); os adicionais de upscale independentes de modelo permanecem em +30 / +40 créditos por segundo de saída para 2K / 4K (+20 para 1080P apenas em sd2-fast / sd2-mini).
| Sem vídeo de entrada | Com vídeo de entrada | |
|---|---|---|
| sd2.5: 480P | 30 × out | 23 × (out + in) |
| sd2.5: 720P | 60 × out | 45 × (out + in) |
| sd2.5: 1080P (nativo) | 150 × out | 113 × (out + in) |
| sd2.5: 2K | (60 + 30) × out | 45 × (out + in) + 30 × out |
| sd2.5: 4K | (60 + 40) × out | 45 × (out + in) + 40 × out |
| sd2-pro: 480P | 20 × out | 15 × (out + in) |
| sd2-pro: 720P | 40 × out | 30 × (out + in) |
| sd2-pro: 1080P (nativo) | 100 × out | 75 × (out + in) |
| sd2-pro: 2K | (40 + 30) × out | 30 × (out + in) + 30 × out |
| sd2-pro: 4K (nativo) | 200 × out | 150 × (out + in) |
| sd2-fast: 480P | 16 × out | 12 × (out + in) |
| sd2-fast: 720P | 32 × out | 24 × (out + in) |
| sd2-fast: 1080P | (32 + 20) × out | 24 × (out + in) + 20 × out |
| sd2-fast: 2K | (32 + 30) × out | 24 × (out + in) + 30 × out |
| sd2-fast: 4K | (32 + 40) × out | 24 × (out + in) + 40 × out |
| sd2-mini: 480P | 10 × out | 7.5 × (out + in) |
| sd2-mini: 720P | 20 × out | 15 × (out + in) |
| sd2-mini: 1080P | (20 + 20) × out | 15 × (out + in) + 20 × out |
| sd2-mini: 2K | (20 + 30) × out | 15 × (out + in) + 30 × out |
| sd2-mini: 4K | (20 + 40) × out | 15 × (out + in) + 40 × out |
Observação: sd2-pro 1080P e 4K são saída oficial nativa (4K = 5× a taxa de 720P); sd2-pro 2K e todos os modos 1080P/2K/4K de sd2-fast / sd2-mini recebem upscale da SeeGen AI. sd2.5 gera nativamente em 480P/720P/1080P (1080P = 2,5× a taxa de 720P, sem adicional de upscale) e usa upscale automático para 2K/4K. Solicite qualquer nível via outputResolution: "4k" (por exemplo, "2k" / "4k"; o gateway escolhe automaticamente entre nativo e upscale — apenas o preço e o rótulo Native diferem). sd2-mini custa 50% de sd2-pro — o nível mais barato. Seedance 2.5 usa o arredondamento de duração por vídeo, o piso mínimo de duração de entrada e o cálculo de upscale de Seedance 2.0. A taxa base do modelo correspondente é multiplicada por 1.5 e arredondada antes do cálculo da tarefa (por exemplo, 1080P com vídeo: 75 × 1.5 → 113). Os adicionais de upscale 2K / 4K independentes de modelo permanecem em +30 / +40 créditos por segundo de saída. Se o upscale falhar, a tarefa concluída retorna o fallback em 720P sem reembolso parcial de créditos.
- sd2.5 480P, saída de 4 segundos sem vídeo de entrada: 120 créditos
- sd2.5 720P, saída de 5 segundos sem vídeo de entrada: 300 créditos
- sd2.5 720P, saída de 5 segundos + vídeo de entrada de 3 segundos (mínimo de entrada de 4 segundos): 405 créditos
- sd2.5 1080P nativo, saída de 5 segundos sem vídeo de entrada: 750 créditos
- sd2.5 1080P nativo, saída de 5 segundos + vídeo de entrada de 5 segundos: 1,130 créditos
Wan 3.0 Video / Prime — cálculo do custo
Considere out = segundos de saída e in = soma dos segundos dos vídeos de referência, arredondando cada clipe para cima ao segundo inteiro. Sem vídeo de referência: credits = out × rate. Com vídeo de referência: credits = (out + in) × rate. Use a tarifa do seu modelo e resolução na tabela abaixo.
| Modelo | Saída nativa | Créditos / seg. | Exemplo de 2s |
|---|---|---|---|
| wan3.0-video-prime | 480P | 22 | 44 |
| 720P | 45 | 90 | |
| 1080P | 90 | 180 | |
| wan3.0-video | 480P | 16 | 32 |
| 720P | 32 | 64 | |
| 1080P | 64 | 128 |
Nota: 480P, 720P e 1080P são saídas nativas; não há suporte a upscale 2K/4K. Imagens e áudio de referência não acrescentam duração cobrável. Desativar o áudio gerado não altera o preço. A duração total dos vídeos de referência mais a duração de saída não pode exceder 30 segundos.
- wan3.0-video 480P, saída de 2 segundos sem vídeo de entrada: 2 × 16 = 32 créditos
- wan3.0-video-prime 480P, saída de 2 segundos sem vídeo de entrada: 2 × 22 = 44 créditos
- wan3.0-video 720P, saída de 5 segundos + vídeo de referência de 3 segundos: (5 + 3) × 32 = 256 créditos
- wan3.0-video-prime 720P, saída de 5 segundos + vídeo de referência de 2.2 segundos (arredondado para 3 segundos): (5 + 3) × 45 = 360 créditos
🎉 Oferta por tempo limitado: 33% de desconto em toda a geração de imagens — todos os preços de imagens abaixo já estão com desconto aplicado.
GPT Image 2.5 Flare / Sunburst
| Resolução | Qualidade média | Alta qualidade | Qualidade XHigh | Qualidade Max |
|---|---|---|---|---|
| 1k | 35 | 1320 | 2335 | 5075 |
| 2k (padrão) | 710 | 2335 | 3755 | 84125 |
| 4k | 1015 | 4060 | 67100 | 154230 |
Cada tarefa produz 1 imagem. Envie N tarefas para obter N variações. Tarefas com falha reembolsam créditos automaticamente.
gpt-image-2 — créditos por imagem
| Resolução | Qualidade média | Alta qualidade |
|---|---|---|
| 1k | 1015 | 4770 |
| 2k (padrão) | 2335 | 84125 |
| 4k | 4060 | 154230 |
Cada tarefa produz 1 imagem. Envie N tarefas para obter N variações. Tarefas com falha reembolsam créditos automaticamente.
nano-banana-2 e nano-banana-pro — créditos por imagem
| Resolução | nano-banana-2 | nano-banana-pro |
|---|---|---|
| 1k | 2030 | 4060 |
| 2k (padrão) | 3045 | 4060 |
| 4k | 4770 | 74110 |
Cada tarefa produz 1 imagem. Envie N tarefas para obter N variações. Tarefas com falha reembolsam créditos automaticamente.
Seedream 5.0 — créditos por imagem
| Modelo / nível | Créditos |
|---|---|
| Lite 2k / 4k (taxa fixa) | 710 |
| Pro 1k (padrão) | 1015 |
| Pro 2k | 2030 |
Cada tarefa produz 1 imagem. Envie N tarefas para obter N variações. Tarefas com falha reembolsam créditos automaticamente. As imagens de referência não são cobradas separadamente.
Verifique seu saldo: GET /api/v1/account/credits
Recarga automática para contas de API
Sua chave de API e o painel do SeeGen AI usam o mesmo saldo de créditos da conta. A recarga automática pode manter saldo disponível para cargas de trabalho da API, mas precisa ser configurada na página Credits; no momento, não há uma API de configuração separada.
Configure a recarga automática em Credits:
- Abra Credits, escolha o saldo mínimo que deseja manter e selecione um pacote de recarga.
- Autorize sua forma de pagamento uma única vez. Essa etapa salva a autorização e não cobra o cartão.
- Depois que a autorização flexível estiver ativa, você poderá alterar o saldo mínimo ou o pacote em Credits sem autorizar novamente. Contas que usam a autorização anterior de preço fixo podem precisar de uma atualização única.
Como funciona com solicitações de API
- Quando o envio bem-sucedido de uma tarefa da API deduz créditos e faz o saldo passar de um valor igual ou superior ao limite para um valor inferior, o SeeGen AI coloca uma recarga automática na fila de forma assíncrona. O envio da tarefa não aguarda a recarga.
- Se a conta não tiver créditos suficientes antes do envio, a API retorna HTTP 402 e não cria a tarefa. A solicitação recusada não aciona a recarga automática nem é repetida automaticamente; tente novamente quando houver créditos disponíveis.
- Consulte o saldo atual com
GET /api/v1/account/credits. O andamento e as falhas da recarga automática aparecem em Credits e Payment History, e resultados importantes são enviados ao e-mail de cobrança da conta. No momento, não há webhook nem API de status de recarga automática para clientes.
Bônus de recarga automática para pacotes de API
- API Pack de $500.00: 127,500 créditos (125,000 + bônus de 2%).
- API-XL Pack de $2,000.00: 525,000 créditos (500,000 + bônus de 5%).
- As compras manuais desses pacotes continuam adicionando 125,000 e 500,000 créditos, respectivamente.
Autenticação
Todas as requisições da API exigem um token Bearer no cabeçalho Authorization. Você pode criar e gerenciar chaves de API em Configurações da conta.
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://seegen.ai/api/v1/account/creditsImportante: sua chave de API é exibida apenas uma vez, no momento da criação. Guarde-a com segurança. Você pode criar até 10 chaves de API por conta.
Início rápido
Gere um vídeo em duas etapas: crie uma tarefa e depois consulte o resultado.
# 1. Create a text-to-video task
TASK_ID=$(curl -s -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"inputs": {
"prompt": "A golden retriever running on the beach at sunset",
"duration": "5s",
"resolution": "1280x720"
}
}' \
https://seegen.ai/api/v1/jobs/createTask | jq -r '.taskId')
echo "Task created: $TASK_ID"
# 2. Poll for result
while true; do
RESULT=$(curl -s -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/jobs/queryTask?taskId=$TASK_ID")
STATUS=$(echo $RESULT | jq -r '.status')
echo "Status: $STATUS"
if [ "$STATUS" = "COMPLETED" ] || [ "$STATUS" = "FAILED" ]; then
echo $RESULT | jq .
break
fi
sleep 5
doneEndpoints
/api/v1/jobs/createTaskCriar uma nova tarefa de geração de vídeo
/api/v1/jobs/queryTaskConsultar status e resultado da tarefa
/api/v1/account/creditsVerificar seu saldo de créditos
/api/v1/assets/uploadEnviar um asset (imagem/vídeo/áudio) para revisão
/api/v1/assets/statusConsultar status de revisão do asset
/api/v1/assets/listListar seus assets enviados
/api/v1/upscale/createEnviar uma tarefa independente de upscale de vídeo (720p / 1080p / 2K / 4K)
/api/v1/upscale/queryConsultar status e resultado de uma tarefa independente de upscale
Escolha um modelo (vídeo)
Escolha um modelo de vídeo por fluxo de trabalho, resolução nativa, velocidade e preço; combine esta tabela com a seção Preços para estimar o custo.
| Modelo | T2V | I2V | First–Last | Multi-Ref | R2V | Nativo 1080p | Nativo 4K | Áudio | 720p / 5s |
|---|---|---|---|---|---|---|---|---|---|
| sd2.5 | ✓ | ✓ | ✓ | ✓ | — | ✓ | upscale | ✓ | 300 créditos |
| sd2 | ✓ | ✓ | ✓ | ✓ | — | ✓ | ✓ | ✓ | 200 créditos |
| sd2-fast | ✓ | ✓ | ✓ | ✓ | — | upscale | upscale | ✓ | 160 créditos |
| sd2-mini | ✓ | ✓ | ✓ | ✓ | — | upscale | upscale | ✓ | 100 créditos |
| wan3.0-video-prime | ✓ | ✓ | ✓ | ✓ | — | ✓ | — | ✓ | 225 créditos |
| wan3.0-video | ✓ | ✓ | ✓ | ✓ | — | ✓ | — | ✓ | 160 créditos |
T2V = texto para vídeo · I2V = imagem para vídeo (primeiro quadro) · First–Last = primeiro + último keyframe · Multi-Ref = referências mistas de imagem / vídeo / áudio · R2V = 1–9 imagens de referência com marcadores de personagem
Seedance 2.0 / 2.0 Fast / 2.0 Mini / Seedance 2.5
Texto para vídeo
Gere um vídeo a partir de um prompt de texto. Não é necessária nenhuma imagem.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"inputs": {
"prompt": "A futuristic city with flying cars at night, neon lights reflecting on wet streets",
"duration": "5s",
"resolution": "1280x720"
}
}' \
https://seegen.ai/api/v1/jobs/createTask| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| prompt | string | Sim | Descrição textual do vídeo a ser gerado. Máximo de 20000 caracteres. |
| duration | string | Não | Duração do vídeo: de "4s" a "15s"; sd2.5 aceita até "30s" (padrão: "5s") |
| resolution | string | Não | Proporção definida via resolução. Opções: auto (padrão), 720x720, 720x960, 960x720, 1280x720, 720x1280, 1280x540 |
| outputResolution | string | Não | Nível de resolução de saída: "480p", "720p" (padrão), "1080p", "2k" ou "4k". As resoluções nativas variam por modelo: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast & Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. Níveis mais altos recebem upscale automaticamente. |
| seed | int | Não | Seed de reprodutibilidade: -1 ou omita para aleatório; 0–2147483647 para fixo. |
| generateAudio | boolean | Não | Se deve sintetizar uma trilha de áudio sincronizada. Padrão true; envie false para vídeo sem áudio. |
Imagem para vídeo
Anime uma imagem estática em um vídeo. Informe uma URL de imagem como quadro inicial.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"inputs": {
"urls": ["https://example.com/photo.jpg"], // or "asset://asset-20260326-abc123"
"prompt": "The woman slowly turns her head and smiles",
"duration": "5s"
}
}' \
https://seegen.ai/api/v1/jobs/createTask| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| urls | string[] | Sim | Array com uma URL de imagem (o quadro de origem). Aceita tanto URLs HTTP quanto referências de asset (por exemplo, "asset://asset-20260326-abc123") |
| prompt | string | Não | Descrição textual do movimento desejado |
| duration | string | Não | Duração do vídeo: de "4s" a "15s"; sd2.5 aceita até "30s" (padrão: "5s") |
| outputResolution | string | Não | Nível de resolução de saída: "480p", "720p" (padrão), "1080p", "2k" ou "4k". As resoluções nativas variam por modelo: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast & Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. Níveis mais altos recebem upscale automaticamente. |
| seed | int | Não | Seed de reprodutibilidade: -1 ou omita para aleatório; 0–2147483647 para fixo. |
| generateAudio | boolean | Não | Se deve sintetizar uma trilha de áudio sincronizada. Padrão true; envie false para vídeo sem áudio. |
Primeiro e último quadro
Defina os quadros inicial e final, e o modelo gera a transição entre eles. Usa videoInputMode: "keyframe".
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"inputs": {
"urls": [
"https://example.com/first-frame.jpg",
"https://example.com/last-frame.jpg"
],
"prompt": "Smooth camera transition from day to night",
"duration": "5s",
"videoInputMode": "keyframe"
}
}' \
https://seegen.ai/api/v1/jobs/createTask| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| urls | string[] | Sim | Array com exatamente 2 URLs de imagem: [first_frame, last_frame]. Aceita tanto URLs HTTP quanto referências de asset (por exemplo, "asset://asset-20260326-abc123") |
| videoInputMode | string | Sim | Deve ser "keyframe" |
| prompt | string | Não | Descrição textual que orienta a transição |
| duration | string | Não | Duração do vídeo: de "4s" a "15s"; sd2.5 aceita até "30s" (padrão: "5s") |
| outputResolution | string | Não | Nível de resolução de saída: "480p", "720p" (padrão), "1080p", "2k" ou "4k". As resoluções nativas variam por modelo: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast & Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. Níveis mais altos recebem upscale automaticamente. |
| seed | int | Não | Seed de reprodutibilidade: -1 ou omita para aleatório; 0–2147483647 para fixo. |
| generateAudio | boolean | Não | Se deve sintetizar uma trilha de áudio sincronizada. Padrão true; envie false para vídeo sem áudio. |
Multirreferência
Use várias imagens, vídeos e arquivos de áudio de referência para orientar a geração. Usa videoInputMode: "reference". No sd2.5, esta é a subtarefa de referência padrão; para editar ou continuar um vídeo existente, veja Editar e estender vídeo abaixo.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"inputs": {
"urls": [
"https://example.com/ref1.jpg",
"https://example.com/ref2.jpg"
],
"videoUrls": ["asset://asset-motion-video"],
"audioUrls": ["https://example.com/audio.mp3"],
"prompt": "Character walks through a garden",
"duration": "5s",
"videoInputMode": "reference",
"resolution": "1280x720"
}
}' \
https://seegen.ai/api/v1/jobs/createTask| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| urls | string[] | Não | URLs de imagens de referência (máximo 9). Aceita tanto URLs HTTP quanto referências de asset (por exemplo, "asset://asset-20260326-abc123") |
| videoUrls | string[] | Não | URIs de vídeo de referência asset:// — envie primeiro via /api/v1/assets/upload; URLs externas são rejeitadas. sd2: máximo de 3 vídeos, cada um ≤15s. sd2.5: até 10 vídeos, cada um 2–30s e ≤200MB, duração total de referência ≤30s, entradas de 480p–4K suportadas. |
| audioUrls | string[] | Não | Entradas de áudio de referência. sd2 / sd2-fast / sd2-mini: até 3 arquivos de áudio, cada um 2–15s, total ≤15s — áudio não pode ser a única referência nesses modelos (adicione ao menos uma imagem ou vídeo). sd2.5: até 10 arquivos, ≤15MB e 2–30s cada, total ≤30s, e entrada somente com áudio é suportada. |
| videoInputMode | string | Sim | Deve ser "reference" |
| prompt | string | Não | Descrição textual |
| duration | string | Não | Duração do vídeo: de "4s" a "15s"; sd2.5 aceita até "30s" (padrão: "5s") |
| resolution | string | Sim | Obrigatório para o modo reference. Opções: 720x720, 720x960, 960x720, 1280x720, 720x1280, 1280x540 |
| outputResolution | string | Não | Nível de resolução de saída: "480p", "720p" (padrão), "1080p", "2k" ou "4k". As resoluções nativas variam por modelo: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast & Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. Níveis mais altos recebem upscale automaticamente. |
| seed | int | Não | Seed de reprodutibilidade: -1 ou omita para aleatório; 0–2147483647 para fixo. |
| generateAudio | boolean | Não | Se deve sintetizar uma trilha de áudio sincronizada. Padrão true; envie false para vídeo sem áudio. |
Restrições de referência
- Máximo de 9 imagens, 3 vídeos, 3 arquivos de áudio
- Máximo de 12 arquivos no total, somando todos os tipos
- Cada vídeo/áudio deve ter ≤ 15 segundos
- As imagens devem ter no mínimo 400px no lado mais curto
- sd2.5: máximo de 30 imagens, 10 vídeos, 10 arquivos de áudio e 50 no total; a duração total de vídeo e de áudio é, cada uma, ≤ 30 segundos
Editar e estender vídeo
O sd2.5 divide a geração baseada em referência em três subtarefas. Omita mode para geração de referência comum, defina mode: "edit" para editar um vídeo existente, ou mode: "extend" para continuá-lo. Ambos exigem pelo menos um vídeo em videoUrls e sempre geram saída com a proporção do vídeo de origem.
Coloque o vídeo que deseja operar em primeiro lugar em videoUrls e refira-se a ele como "Video 1" no seu prompt. edit força a duração da saída a corresponder à desse primeiro vídeo (de origem), que deve ter 4–30s, portanto qualquer duration enviado é ignorado; a cobrança usa a duração do vídeo de origem como duração de saída, além de todos os vídeos de referência como entrada. extend aceita de 1 a 3 clipes unidos em ordem, e o duration solicitado é a duração de saída desta geração (sem relação com a duração de origem) — cobrado como uma geração de referência comum.
Os modelos da família 2.0 (sd2 / sd2-fast / sd2-mini) também aceitam mode: "edit" e mode: "extend": eles inferem a operação a partir do seu prompt (descreva explicitamente a edição ou continuação), a proporção segue o vídeo de origem, e duration permanece sob seu controle, com cobrança comum.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2.5",
"inputs": {
"mode": "edit",
"videoInputMode": "reference",
"videoUrls": ["asset://asset-source-video"],
"urls": ["https://example.com/annotation-at-1.2s.png"],
"source_frame_timestamps_ms": [1200],
"prompt": "Replace the marked object with a red umbrella",
"outputResolution": "720p"
}
}' \
https://seegen.ai/api/v1/jobs/createTask| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| mode | string | Não | "edit" ou "extend". Omita para geração de referência comum. |
| videoUrls | string[] | Sim | Pelo menos um vídeo; o primeiro é a origem ("Video 1") — a duração de saída e a cobrança do edit seguem esse vídeo. Vídeos seguintes são referências extras (edit) ou clipes adicionais unidos em ordem (extend, máximo 3). |
| urls | string[] | Não | Imagens opcionais de anotação/referência. |
| source_frame_timestamps_ms | number[] | Não | somente para mode "edit". Um timestamp não negativo do vídeo de origem, em milissegundos, por imagem em urls. |
| outputResolution | string | Não | Nível de resolução de saída: "480p", "720p" (padrão), "1080p", "2k" ou "4k". As resoluções nativas variam por modelo: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast & Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. Níveis mais altos recebem upscale automaticamente. |
Referência de parâmetros do Seedance
Referência completa de todos os parâmetros inputs para os modelos sd2 / sd2-fast / sd2-mini / sd2.5.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| prompt | string | Não | Descrição textual (obrigatória para text-to-video, opcional para os demais modos). Máximo de 20000 caracteres. |
| urls | string[] | Não | URLs de imagem. Aceita tanto URLs HTTP quanto referências de asset (por exemplo, "asset://asset-20260326-abc123"). Mapeado internamente para uploadedUrls. |
| videoUrls | string[] | Não | URIs de vídeo de referência asset:// (somente no modo reference). Devem ser enviados primeiro via /api/v1/assets/upload — URLs externas são rejeitadas. |
| audioUrls | string[] | Não | URLs de áudio de referência (somente no modo reference). Entrada somente com áudio é suportada no sd2.5; sd2 / sd2-fast / sd2-mini exigem pelo menos uma imagem ou vídeo além do áudio. |
| duration | string | Não | normalmente de "4s" a "15s"; sd2.5 aceita até "30s". Padrão: "5s" |
| resolution | string | Não | Proporção: auto (padrão) | 720x720 | 720x960 | 960x720 | 1280x720 | 720x1280 | 1280x540 |
| outputResolution | string | Não | Nível de resolução de saída: "480p", "720p" (padrão), "1080p", "2k" ou "4k". As resoluções nativas variam por modelo: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast & Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. Níveis mais altos recebem upscale automaticamente. |
| videoInputMode | string | Não | "keyframe" (padrão) ou "reference" |
| mode | string | Não | Subtarefa do modo reference (todos os modelos Seedance): omita para geração de referência comum, "edit" para editar o primeiro vídeo em videoUrls, "extend" para continuar 1-3 clipes. Veja Editar e estender vídeo. |
| source_frame_timestamps_ms | number[] | Não | somente para sd2.5 Video Edit: um timestamp não negativo em milissegundos por imagem de anotação. |
| seed | int | Não | Seed aleatório para reprodutibilidade. -1 ou omita para aleatório no servidor. O mesmo seed + as mesmas entradas geram uma saída bastante semelhante (não idêntica bit a bit, devido ao não determinismo da GPU). Intervalo: -1 a 2147483647. |
| generateAudio | boolean | Não | Se deve sintetizar uma trilha de áudio (fala, efeitos sonoros, música de fundo) sincronizada com o vídeo. Padrão true. Defina false para gerar um vídeo sem áudio — um pouco mais rápido, útil se você planeja dublar separadamente. |
| bitrateMode | string | Não | Nível de taxa de bits de saída na mesma resolução: "standard" (padrão) ou "high". "high" preserva mais detalhes e reduz banding / blocos em cerca de 3-5× o tamanho do arquivo — não altera a resolução nem o preço. |
| upscaleResolution | string | Não | (Obsoleto) Campo separado legado, ainda aceito por compatibilidade retroativa. Novas integrações devem usar outputResolution, que agora aceita "2k" / "4k" diretamente. Se ambos forem enviados, upscaleResolution tem precedência — exceto em modelos com 1080p nativo (Seedance2 Pro / Seedance 2.5), onde upscaleResolution:"1080p" resolve para 1080p nativo (cobrado na taxa nativa). |
Campos de nível superior da requisição: model (obrigatório), inputs (obrigatório), callBackUrl (URL de webhook opcional).
Assets do Seedance
Assets do Seedance são imagens, vídeos e arquivos de áudio que passam pelo processo de revisão do ByteDance Volcano antes de serem usados em tarefas de geração de vídeo do Seedance. Envie um asset, aguarde até que ele fique ACTIVE e use sua URL asset:// na tarefa do Seedance.
Observação: assets de imagem e vídeo com pessoas reais exigem revisão oficial, normalmente concluída em segundos. Uma vez aprovados, podem ser usados diretamente como referências. Sem revisão, a geração pode falhar.
Enviar asset
Duas formas de enviar: enviar um arquivo local diretamente (multipart/form-data) ou informar uma URL HTTPS acessível publicamente. Em ambos os casos, o asset é processado e revisado automaticamente.
Método A — envio direto de arquivo (multipart/form-data)
Envie um arquivo local sem necessidade de hospedagem de imagem. O tipo de mídia é detectado a partir dos bytes do arquivo (a extensão do nome do arquivo não é confiável). Permitido: imagens (jpg/png/webp/gif/bmp/tiff/heic), vídeos (mp4/mov), áudio (wav/mp3). Máximo de 50MB por arquivo (imagem ≤30MB, vídeo ≤50MB, áudio ≤15MB).
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-F "file=@/path/to/photo.jpg" \
-F "name=my-photo" \
https://seegen.ai/api/v1/assets/upload| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| file | file | Sim | O arquivo local (campo do formulário multipart). O tipo de mídia é detectado a partir do conteúdo. |
| name | string | Não | Nome do asset (máximo de 64 caracteres) |
Método B — por URL (application/json)
Se o arquivo já estiver hospedado em uma URL HTTPS pública.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/photo.jpg",
"type": "IMAGE",
"name": "my-photo"
}' \
https://seegen.ai/api/v1/assets/upload| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| url | string | Sim | URL HTTPS publicamente acessível do arquivo a ser enviado |
| type | string | Sim | "IMAGE", "AUDIO" ou "VIDEO" |
| name | string | Não | Nome do asset (máximo de 64 caracteres) |
Resposta do envio
{
"assetId": 123,
"volcAssetId": "asset-20260326-abc123",
"type": "IMAGE",
"status": "PROCESSING",
"failReason": null,
"url": "https://example.com/photo.jpg",
"name": "my-photo",
"createdAt": 1711234567890
}Consultar status do asset
Consulte o status de revisão de um asset. Quando o status é PROCESSING, o endpoint verifica automaticamente atualizações do sistema de revisão.
# Query by asset ID (numeric)
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/assets/status?assetId=123"
# Query by volcAssetId (string)
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/assets/status?assetId=asset-20260326-abc123"Valores de status do asset
PROCESSING— em revisão, ainda não utilizávelACTIVE— revisão aprovada, pronto para uso em tarefasFAILED— revisão falhou, verifique failReason
Listar assets
Lista seus assets enviados com filtragem opcional por tipo e status. Suporta paginação baseada em cursor.
# List all assets
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/assets/list"
# Filter by type and status
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/assets/list?type=IMAGE&status=ACTIVE&limit=10"
# Paginate with cursor
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/assets/list?cursor=100&limit=20"| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| type | string | Não | Filtrar por tipo: "IMAGE", "AUDIO" ou "VIDEO" |
| status | string | Não | Filtrar por status: "NONE", "PROCESSING", "ACTIVE" ou "FAILED" |
| cursor | number | Não | Cursor para paginação (use nextCursor da resposta anterior) |
| limit | number | Não | Itens por página, 1-50 (padrão: 20) |
Resposta da listagem
{
"items": [
{
"assetId": 123,
"volcAssetId": "asset-20260326-abc123",
"type": "IMAGE",
"status": "ACTIVE",
"failReason": null,
"url": "https://example.com/photo.jpg",
"name": "my-photo",
"width": 1920,
"height": 1080,
"size": 245000,
"duration": null,
"createdAt": 1711234567890
}
],
"nextCursor": 122
}Usando assets em tarefas
Assim que um asset estiver ACTIVE, use seu volcAssetId com o protocolo asset:// nas URLs da sua tarefa:
{
"model": "sd2",
"inputs": {
"urls": ["asset://asset-20260326-abc123"],
"prompt": "The person slowly looks up and smiles",
"duration": "5s"
}
}Wan 3.0 Video e Wan 3.0 Video Prime
Wan 3.0 oferece vídeo a partir de texto ou quadro inicial, interpolação entre o primeiro e o último quadro, referências mistas de imagem/vídeo/áudio, edição e extensão de vídeo. wan3.0-video-prime aceita as mesmas entradas que wan3.0-video e é otimizado para geração mais rápida.
Ambos os aliases usam a API assíncrona da SeeGen: POST /api/v1/jobs/createTask retorna um taskId; consulte GET /api/v1/jobs/queryTask?taskId=... periodicamente ou forneça callBackUrl para obter o resultado final.
Saída compatível: durações fixas de 2–30 segundos em 480p, 720p ou 1080p nativos, sem marca-d’água. Duração automática (duration: -1), saída 2K/4K e configuração personalizada de watermark não são compatíveis. Envie primeiro a mídia de referência e use a URL HTTPS retornada.
Texto para vídeo
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video-prime",
"inputs": {
"prompt": "A red paper boat glides across a calm pond at sunrise, locked camera, no text.",
"duration": "5s",
"outputResolution": "720p",
"ratio": "16:9",
"generateAudio": true,
"promptExtend": true,
"seed": 12345
}
}' \
https://seegen.ai/api/v1/jobs/createTaskImagem para vídeo (primeiro quadro)
Envie a mídia Wan via multipart POST /api/v1/assets/upload?model=wan3.0-video (ou o alias Prime) e use a url HTTPS própria retornada nas entradas de geração. O assetId retornado é apenas o ID do registro de mídia do SeeGen; não o envie nas entradas de geração.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-F "file=@/path/to/first-frame.webp" \
"https://seegen.ai/api/v1/assets/upload?model=wan3.0-video"{
"assetId": 123,
"type": "IMAGE",
"status": "ACTIVE",
"url": "https://static.seegen.ai/materials/api/.../first-frame.webp"
}curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video",
"inputs": {
"urls": ["https://static.seegen.ai/materials/api/.../first-frame.webp"],
"videoInputMode": "keyframe",
"prompt": "The subject looks toward the camera as morning mist drifts past.",
"duration": "5s",
"outputResolution": "1080p",
"generateAudio": true
}
}' \
https://seegen.ai/api/v1/jobs/createTaskPrimeiro e último quadro
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video",
"inputs": {
"urls": [
"https://static.seegen.ai/materials/api/.../first-frame.webp",
"https://static.seegen.ai/materials/api/.../last-frame.webp"
],
"videoInputMode": "keyframe",
"prompt": "A smooth continuous transition from sunrise to night.",
"duration": "8s",
"outputResolution": "720p"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskMúltiplas referências (imagens, vídeos e áudio)
Defina videoInputMode: "reference" e envie pelo menos uma mídia compatível por urls, videoUrls ou audioUrls; o prompt é opcional. Faça referência à mídia na ordem como Image1, Image2, Video1 ou Audio1. Envie cada referência primeiro pelo endpoint multipart do Wan e use a URL HTTPS própria retornada.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video-prime",
"inputs": {
"videoInputMode": "reference",
"urls": ["https://static.seegen.ai/materials/api/.../reference-image.webp"],
"videoUrls": ["https://static.seegen.ai/materials/api/.../source-video.mp4"],
"audioUrls": ["https://static.seegen.ai/materials/api/.../reference-audio.mp3"],
"prompt": "Use Image1 for identity, Video1 for motion, and Audio1 for timing.",
"duration": "10s",
"outputResolution": "720p",
"ratio": "16:9",
"generateAudio": true,
"promptExtend": true
}
}' \
https://seegen.ai/api/v1/jobs/createTaskEdição de vídeo
Envie primeiro o vídeo original e use mode: "edit" com videoInputMode: "reference". No prompt obrigatório, descreva como editar Video1, o primeiro vídeo em videoUrls. A proporção é automática e você escolhe a duração da saída. Os limites de referências e preços abaixo valem tanto para edição quanto para extensão.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video",
"inputs": {
"mode": "edit",
"videoInputMode": "reference",
"videoUrls": ["https://static.seegen.ai/materials/api/.../source-video.mp4"],
"prompt": "Transform Video1 into clay animation, keeping the characters and camera movement.",
"duration": "5s",
"outputResolution": "720p",
"ratio": "adaptive"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskExtensão de vídeo
Use mode: "extend" com um vídeo original e uma instrução, como "Estenda Video1 para a frente", seguida do que acontece depois. Defina ratio: "adaptive". O duration selecionado é a duração do vídeo gerado, não a soma do original com a extensão. Não há suporte para gerar vídeos a partir de arquivos ou páginas web.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video-prime",
"inputs": {
"mode": "extend",
"videoInputMode": "reference",
"videoUrls": ["https://static.seegen.ai/materials/api/.../source-video.mp4"],
"prompt": "Extend Video1 forward, continuing the motion of the character and keeping the scene consistent.",
"duration": "5s",
"outputResolution": "720p",
"ratio": "adaptive"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskReferência de parâmetros do Wan 3.0
Os dois modelos Wan 3.0 aceitam os mesmos campos inputs. Escolha uma duração de saída de 2 a 30 segundos, em intervalos de um segundo.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| prompt | string | Não | Descrição ou instrução do vídeo. Máximo de 20,000 caracteres. Obrigatório para texto para vídeo, edição e extensão; opcional para imagem para vídeo, primeiro/último quadro e múltiplas referências. Edição e extensão também exigem um vídeo. Use Image1 / Video1 / Audio1 na ordem das referências. |
| mode | string | Não | Omita ou use "normal" para geração comum. Use "edit" ou "extend" com um vídeo e um prompt de instruções. Ambos usam modo de referência, proporção automática e duração fixa de saída de 2–30 segundos. |
| urls | string[] | Não | URLs HTTPS próprias de imagens retornadas pelo endpoint de upload do Wan. Omita em texto para vídeo; envie exatamente 1 primeiro quadro, exatamente 2 quadros inicial/final ou até 10 imagens no modo de referência. URLs externas de terceiros e referências do protocolo de recursos do Seedance são rejeitadas. |
| videoUrls | string[] | Não | Até 5 URLs HTTPS próprias de vídeos de referência retornadas pelo endpoint de upload do Wan. Cada clipe deve ter 1–15 s, todos os vídeos de referência devem somar no máximo 15 s e sua duração mais a saída deve ser de no máximo 30 s. URLs externas de terceiros e referências do protocolo de recursos do Seedance são rejeitadas. |
| audioUrls | string[] | Não | Até 5 URLs HTTPS próprias de áudios de referência retornadas pelo endpoint de upload do Wan. WAV ou MP3; cada clipe deve ter 1–15 s e todos os áudios de referência devem somar no máximo 15 s. URLs externas de terceiros e referências do protocolo de recursos do Seedance são rejeitadas. |
| videoInputMode | string | Não | Omita para texto para vídeo; use "keyframe" para um primeiro quadro ou dois primeiros/últimos quadros; use "reference" para referências combinadas de imagem/vídeo/áudio. |
| duration | string | Não | String de segundos inteiros de "2s" a "30s". Padrão: "5s". |
| outputResolution | string | Não | "480p", "720p" (padrão) ou "1080p" nativos. Saída 2K/4K não é compatível. |
| ratio | string | Não | "auto" ou "adaptive" (ambos selecionam enquadramento automático), "16:9", "9:16", "1:1", "4:3" ou "3:4". Usado em texto para vídeo e múltiplas referências. Edição e extensão sempre usam Auto; imagem para vídeo e primeiro/último quadro seguem as imagens-chave. |
| generateAudio | boolean | Não | Gere fala sincronizada, efeitos sonoros e música. Padrão: true. Defina como false para uma saída silenciosa; o preço não muda. |
| promptExtend | boolean | Não | Permita que o modelo enriqueça o prompt antes da geração. Padrão: true. |
| seed | int | Não | 0–2147483647. Use a mesma seed e as mesmas entradas para uma nova tentativa com resultados semelhantes. |
Requisitos de mídia de referência
- Imagens: até 10; JPEG/JPG/PNG (sem transparência)/BMP/WebP; ≤20MB cada; cada lado entre 240 e 8000px; proporção de até 8:1
- Vídeos: até 5 clipes MP4/MOV; ≤100MB cada; 1–15s cada, ≤15s de entrada total e entrada + saída solicitada ≤30s; cada lado entre 240 e 4096px; proporção de até 8:1
- Áudio: até 5 URLs HTTPS WAV/MP3 retornadas pelo endpoint de upload do Wan; ≤15MB cada; 1–15s cada e ≤15s no total
- O modo de primeiro/último quadro não pode ser combinado com arrays de imagens, vídeos ou áudios de referência
Escolha um modelo (imagem)
Os modelos de imagem recebem um prompt (e opcionalmente imagens de referência) e retornam uma imagem por tarefa. Cada requisição é cobrada por imagem, de acordo com o nível do modelo selecionado (ou uma taxa fixa para o Seedream Lite). Tarefas com falha são reembolsadas automaticamente. Não há parâmetro de lote — para gerar várias variações, chame createTask uma vez para cada imagem.
| Modelo | T2I | I2I (Edição) | Multi-Ref | Resolução máxima | 2k / medium |
|---|---|---|---|---|---|
| gpt-image-2.5-flare | ✓ | ✓ | até 10 | 4k | veja Preços |
| gpt-image-2.5-sunburst | ✓ | ✓ | até 10 | 4k | veja Preços |
| gpt-image-2 | ✓ | ✓ | até 10 | 4k | veja Preços |
| nano-banana-2 | ✓ | ✓ | até 10 | 4k | veja Preços |
| nano-banana-pro | ✓ | ✓ | até 10 | 4k | veja Preços |
| seedream-v5.0-lite | ✓ | ✓ | até 10 | 4k | taxa fixa |
| seedream-v5.0-pro | ✓ | ✓ | até 10 | 2k | veja Preços |
GPT Image 2.5 Flare / Sunburst
GPT Image 2.5 Flare prioriza a rapidez na geração e edição de imagens. Sunburst prioriza imagens detalhadas e edições precisas. Ambos aceitam prompts de texto e imagens de referência.
Disponível no espaço de trabalho, Playground e API. Ambos os modelos aceitam os seguintes parâmetros: qualidade medium/high/xhigh/max, predefinições 1K/2K/4K e saída PNG/JPEG/WebP. As dimensões reais podem diferir da predefinição. JPEG e WebP são convertidos a partir do PNG gerado sem redimensionamento. Cada tarefa da API gera uma imagem.
Texto para imagem
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.5-flare",
"inputs": {
"prompt": "A neon-lit cyberpunk alley at midnight, photoreal",
"quality": "medium",
"resolution": "2k",
"aspectRatio": "16:9"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskImagem para imagem (edição)
Passe de 1 a 10 imagens de referência via urls. O modelo as usará como contexto visual para a edição descrita em prompt.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.5-sunburst",
"inputs": {
"urls": ["https://example.com/portrait.jpg"],
"prompt": "Restyle as oil painting",
"quality": "medium",
"resolution": "1k",
"aspectRatio": "1:1"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskReferência de parâmetros do GPT Image 2.5
Referência completa de todos os parâmetros inputs para o modelo gpt-image-2.5-flare.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| prompt | string | Sim | Descrição textual da imagem a ser gerada, ou da edição a ser aplicada quando urls é informado. |
| urls | string[] | Não | URLs de imagens de referência para o modo image-to-image (edição) (1–10 imagens). Omita para text-to-image. URLs HTTPS públicas são aceitas. |
| quality | string | Não | "medium" / "high" / "xhigh" / "max". Padrão: "medium". Os créditos variam conforme o nível (veja Preços). |
| resolution | string | Não | "1k" / "2k" / "4k". Padrão: "2k". Os créditos variam conforme o nível (veja Preços). |
| aspectRatio | string | Não | "1:1" / "16:9" / "9:16" / "4:3" / "3:4". Padrão: "1:1". |
| outputFormat | string | Não | "png" / "jpeg" / "webp". Padrão: "png". |
Requisitos de imagem de entrada (modo image-to-image)
- Até 10 imagens de referência por tarefa
- Tamanho máximo de arquivo de 50 MB por imagem
- Lado mais curto ≥ 256px
- Proporção entre 1:3 e 3:1
- Formatos: JPEG, JPG, PNG, WEBP
Os créditos por imagem variam conforme a resolução e a qualidade — veja a tabela completa na seção Preços.
GPT Image 2
O modelo GPT Image 2 da OpenAI para text-to-image e edição image-to-image de alta qualidade. Um único fluxo cobre ambos os modos — passe urls para alternar automaticamente para o modo de edição. A saída é entregue via R2 no formato solicitado (PNG / JPEG / WEBP). Nome do modelo: gpt-image-2.
Texto para imagem
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"inputs": {
"prompt": "A neon-lit cyberpunk alley at midnight, photoreal",
"quality": "medium",
"resolution": "2k",
"aspectRatio": "16:9"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskImagem para imagem (edição)
Passe de 1 a 10 imagens de referência via urls. O modelo as usará como contexto visual para a edição descrita em prompt.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"inputs": {
"urls": ["https://example.com/portrait.jpg"],
"prompt": "Restyle as oil painting",
"quality": "medium",
"resolution": "1k",
"aspectRatio": "1:1"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskReferência de parâmetros do GPT Image 2
Referência completa de todos os parâmetros inputs para o modelo gpt-image-2.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| prompt | string | Sim | Descrição textual da imagem a ser gerada, ou da edição a ser aplicada quando urls é informado. |
| urls | string[] | Não | URLs de imagens de referência para o modo image-to-image (edição) (1–10 imagens). Omita para text-to-image. URLs HTTPS públicas são aceitas. |
| quality | string | Não | "medium" / "high". Padrão: "medium". Os créditos variam conforme o nível (veja Preços). |
| resolution | string | Não | "1k" / "2k" / "4k". Padrão: "2k". Os créditos variam conforme o nível (veja Preços). |
| aspectRatio | string | Não | "1:1" / "16:9" / "9:16" / "4:3" / "3:4". Padrão: "1:1". |
| outputFormat | string | Não | "png" / "jpeg" / "webp". Padrão: "png". |
Requisitos de imagem de entrada (modo image-to-image)
- Até 10 imagens de referência por tarefa
- Tamanho máximo de arquivo de 50 MB por imagem
- Lado mais curto ≥ 256px
- Proporção entre 1:3 e 3:1
- Formatos: JPEG, JPG, PNG, WEBP
Os créditos por imagem variam conforme a resolução e a qualidade — veja a tabela completa na seção Preços.
Nano Banana 2
Nano Banana 2 é um modelo de imagem de alta fidelidade com cobertura de proporção mais ampla que gpt-image-2 — adiciona predefinições de retrato/paisagem (3:2, 2:3, 4:5, 5:4) e o cinematográfico 21:9. Um único fluxo cobre ambos os modos — passe urls para alternar automaticamente para o modo de edição. Nome do modelo: nano-banana-2.
Texto para imagem
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-2",
"inputs": {
"prompt": "A neon-lit cyberpunk alley at midnight, photoreal",
"resolution": "2k",
"aspectRatio": "16:9"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskImagem para imagem (edição)
Passe de 1 a 10 imagens de referência via urls. O modelo as usará como contexto visual para a edição descrita em prompt.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-2",
"inputs": {
"urls": ["https://example.com/portrait.jpg"],
"prompt": "Restyle as oil painting",
"resolution": "2k",
"aspectRatio": "1:1"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskReferência de parâmetros do Nano Banana 2
Referência completa de todos os parâmetros inputs para o modelo nano-banana-2.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| prompt | string | Sim | Descrição textual da imagem a ser gerada, ou da edição a ser aplicada quando urls é informado. |
| urls | string[] | Não | URLs de imagens de referência para o modo image-to-image (edição) (1–10 imagens). Omita para text-to-image. URLs HTTPS públicas são aceitas. |
| resolution | string | Não | "1k" / "2k" / "4k". Padrão: "2k". Os créditos variam conforme o nível (veja Preços). |
| aspectRatio | string | Não | "1:1" / "16:9" / "9:16" / "4:3" / "3:4" / "3:2" / "2:3" / "4:5" / "5:4" / "21:9". Padrão: "1:1". |
Requisitos de imagem de entrada (modo image-to-image)
- Até 10 imagens de referência por tarefa
- Tamanho máximo de arquivo de 50 MB por imagem
- Lado mais curto ≥ 256px
- Proporção entre 1:3 e 3:1
- Formatos: JPEG, JPG, PNG, WEBP
Os créditos por imagem variam conforme a resolução — veja a tabela completa na seção Preços.
Nano Banana Pro
Nano Banana Pro é um modelo de imagem de alta fidelidade com cobertura de proporção mais ampla que gpt-image-2 — adiciona predefinições de retrato/paisagem (3:2, 2:3, 4:5, 5:4) e o cinematográfico 21:9. Um único fluxo cobre ambos os modos — passe urls para alternar automaticamente para o modo de edição. Nome do modelo: nano-banana-pro.
Texto para imagem
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-pro",
"inputs": {
"prompt": "A neon-lit cyberpunk alley at midnight, photoreal",
"resolution": "2k",
"aspectRatio": "16:9"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskImagem para imagem (edição)
Passe de 1 a 10 imagens de referência via urls. O modelo as usará como contexto visual para a edição descrita em prompt.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-pro",
"inputs": {
"urls": ["https://example.com/portrait.jpg"],
"prompt": "Restyle as oil painting",
"resolution": "2k",
"aspectRatio": "1:1"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskReferência de parâmetros do Nano Banana Pro
Referência completa de todos os parâmetros inputs para o modelo nano-banana-pro.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| prompt | string | Sim | Descrição textual da imagem a ser gerada, ou da edição a ser aplicada quando urls é informado. |
| urls | string[] | Não | URLs de imagens de referência para o modo image-to-image (edição) (1–10 imagens). Omita para text-to-image. URLs HTTPS públicas são aceitas. |
| resolution | string | Não | "1k" / "2k" / "4k". Padrão: "2k". Os créditos variam conforme o nível (veja Preços). |
| aspectRatio | string | Não | "1:1" / "16:9" / "9:16" / "4:3" / "3:4" / "3:2" / "2:3" / "4:5" / "5:4" / "21:9". Padrão: "1:1". |
Requisitos de imagem de entrada (modo image-to-image)
- Até 10 imagens de referência por tarefa
- Tamanho máximo de arquivo de 50 MB por imagem
- Lado mais curto ≥ 256px
- Proporção entre 1:3 e 3:1
- Formatos: JPEG, JPG, PNG, WEBP
Os créditos por imagem variam conforme a resolução — veja a tabela completa na seção Preços.
Seedream 5.0 Lite
Geração rápida de text-to-image e image-to-image em 2K ou 4K com 15 proporções. Nome do modelo: seedream-v5.0-lite.
Texto para imagem
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-v5.0-lite",
"inputs": {
"prompt": "A cinematic product photograph, soft studio light",
"resolution": "2k",
"aspectRatio": "1:1"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskImagem para imagem (edição)
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-v5.0-lite",
"inputs": {
"prompt": "Restyle the references as a premium fashion campaign",
"urls": ["https://example.com/reference.png"],
"resolution": "4k",
"aspectRatio": "3:4"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskParâmetros do Seedream 5.0 Lite
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| prompt | string | Sim | Descrição da imagem ou instrução de edição. |
| urls | string[] | Não | 1–10 URLs HTTPS públicas de imagens de referência. Omita para text-to-image. |
| resolution | string | Não | "2k" ou "4k". Padrão: "2k". |
| aspectRatio | string | Não | "1:1", "1:2", "2:1", "1:3", "3:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "9:21", ou "21:9". |
Seedream 5.0 Pro
Geração e edição de alta fidelidade em 1K ou 2K. Nome do modelo: seedream-v5.0-pro.
Texto para imagem
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-v5.0-pro",
"inputs": {
"prompt": "Editorial portrait with dramatic rim lighting",
"resolution": "2k",
"aspectRatio": "3:4"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskImagem para imagem (edição)
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-v5.0-pro",
"inputs": {
"prompt": "Turn the reference into a cinematic poster",
"urls": ["https://example.com/reference.png"],
"resolution": "2k",
"aspectRatio": "1:2"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskParâmetros do Seedream 5.0 Pro
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| prompt | string | Sim | Descrição da imagem ou instrução de edição. |
| urls | string[] | Não | 1–10 URLs HTTPS públicas de imagens de referência. Omita para text-to-image. |
| resolution | string | Não | "1k" ou "2k". Padrão: "1k". 4k não é suportado. |
| aspectRatio | string | Não | "1:1", "1:2", "2:1", "1:3", "3:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "9:21", ou "21:9". |
Upscaler de vídeo
Criar tarefa
POST /api/v1/upscale/create
# source.url accepts ANY https video URL — your own CDN, OR a file you first
# uploaded to us via /api/v1/assets/upload (pass the r2Url it returns). No need
# to declare which: we detect it. External URLs are validated; our own are trusted.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"source": { "type": "url", "url": "https://your-cdn.com/video.mp4" },
"targetResolution": "2k",
"callBackUrl": "https://your-server.com/webhook"
}' \
https://seegen.ai/api/v1/upscale/create| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| source.type | string | Sim | Use "url" para qualquer origem. ("uploadId" é um alias legado mantido por compatibilidade retroativa.) |
| source.url | string | Não | Com type="url". Qualquer URL de vídeo https — seu próprio CDN, ou a r2Url retornada por /api/v1/assets/upload. Para URLs externas, http e IPs privados/internos são rejeitados (proteção contra SSRF); URLs em nosso próprio host de assets ignoram essa verificação. |
| source.r2Url | string | Não | Legado — apenas com type="uploadId" (compatibilidade retroativa). Novas integrações devem usar type="url". |
| targetResolution | string | Sim | "720p", "1080p", "2k" ou "4k". Deve ser maior que a resolução de origem. |
| callBackUrl | string | Não | URL de webhook chamada uma vez ao atingir o estado final (completed ou failed). |
Resposta de criação
{
"taskId": "n770mo4sh6rpi690ff3gwymx",
"orderId": "ord_2026...",
"status": "validating"
}Consultar status
GET /api/v1/upscale/query?taskId=...
O status avança por validating → processing → completed / failed.
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/upscale/query?taskId=n770mo4sh6rpi690ff3gwymx"Resposta de conclusão
{
"taskId": "n770mo4sh6rpi690ff3gwymx",
"status": "completed",
"targetResolution": "2k",
"creditsConsumed": 900,
"result": {
"url": "https://static.seegen.ai/standalone-upscale/results/...mp4",
"probedDurationSeconds": 30,
"probedSourceResolution": "1280x720"
},
"error": null,
"createdAt": "2026-04-29T01:23:45.000Z",
"finishedAt": "2026-04-29T01:35:01.000Z"
}Resposta de falha
{
"taskId": "n770mo4sh6rpi690ff3gwymx",
"status": "failed",
"creditsConsumed": null,
"result": null,
"error": {
"code": "SOURCE_RESOLUTION_TOO_HIGH",
"message": "Source 3840x2160 is not below target 4k"
}
}Limites
- Origem: URL https ou sua URL R2 enviada anteriormente
- Duração de até 600 s (clipes com menos de 5 s são cobrados como 5 s)
- Tamanho do arquivo ≤ 200 MB
- Formato: MP4 / MOV / WebM
- A resolução de origem deve ser menor que a de destino
Preços
- 720P: 17 créditos/seg (5s = 85, 30s = 510)
- 1080P: 25 créditos/seg (5s = 125, 30s = 750)
- 2K: 38 créditos/seg (5s = 190, 30s = 1140)
- 4K: 50 créditos/seg (5s = 250, 30s = 1500)
- mínimo de 5 segundos; falhas reembolsam créditos automaticamente
Códigos de erro
Erros comuns sobre os quais você pode agir. Outras falhas retornam um campo message autoexplicativo — leia-o antes de presumir que o código é um destes.
| Código | Significado |
|---|---|
| INVALID_URL | A URL está malformada ou não é https |
| URL_NOT_REACHABLE | Não foi possível buscar a URL — verifique se ela é pública e acessível |
| UNSUPPORTED_MEDIA_TYPE | O arquivo não é um vídeo, ou não está em MP4 / MOV / WebM |
| FILE_TOO_LARGE | A origem excede 200 MB |
| DURATION_EXCEEDS_LIMIT | A origem tem mais de 600 s |
| SOURCE_RESOLUTION_TOO_HIGH | A origem já está no nível do destino ou acima — escolha um destino mais alto |
| INSUFFICIENT_CREDITS | Créditos insuficientes — recarregue e tente novamente |
| ACCOUNT_FROZEN | A conta pode não ter permissão para gastar créditos — contate o suporte |
Callback de webhook
Em vez de fazer polling, você pode informar uma callBackUrl para receber os resultados automaticamente quando uma tarefa for concluída ou falhar.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"callBackUrl": "https://your-server.com/webhook/callback",
"inputs": {
"prompt": "A cat playing piano",
"duration": "5s"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskPayload do callback
Quando a tarefa termina, enviamos uma requisição POST para sua URL no mesmo formato da resposta do queryTask:
// POST to your callBackUrl
{
"taskId": "task_abc123",
"model": "sd2",
"status": "COMPLETED",
"creditsUsed": 200,
"output": [
{
"url": "https://static.seegen.ai/videos/result.mp4",
"width": 1280,
"height": 720
}
],
"error": null,
"createTime": 1711234567890,
"completeTime": 1711234612345
}Política de repetição: se seu endpoint retornar um status diferente de 2xx, tentamos novamente até 3 vezes com atrasos crescentes (1s, 5s, 30s).
Formato de resposta
Resposta do createTask
// 200 OK
{ "taskId": "task_abc123" }Resposta do queryTask
{
"taskId": "task_abc123",
"model": "sd2",
"status": "COMPLETED", // "PENDING" | "PROCESSING" | "COMPLETED" | "FAILED"
"creditsUsed": 200,
"output": [ // null when status is not "COMPLETED"
{
"url": "https://static.seegen.ai/videos/result.mp4",
"width": 1280,
"height": 720
}
],
"error": null, // error message when status is "FAILED"
"createTime": 1711234567890,
"completeTime": 1711234612345
}Resposta do credits
{
"credits": 5000,
"availableCredits": 4800
}Tratamento de erros
| Código de status | Significado | Ação |
|---|---|---|
| 400 | Parâmetros inválidos | Verifique a mensagem de erro e corrija sua requisição |
| 401 | Chave de API inválida ou ausente | Verifique o formato do seu cabeçalho Authorization |
| 402 | Créditos insuficientes | Abra Credits para comprar créditos ou ativar a recarga automática e tente a solicitação novamente |
| 403 | Acesso negado | Você só pode consultar suas próprias tarefas |
| 404 | Tarefa não encontrada | Verifique se o taskId está correto |
| 500 | Erro interno do servidor | Tente novamente após alguns segundos |
Validação antes do envio (400 com código)
As solicitações do Seedance e Wan 3.0 são verificadas pelas regras de produto da SeeGen antes da cobrança de créditos. Em caso de falha, createTask retorna HTTP 400 com { "message": "...", "code": "..." }; erros do Wan também podem incluir path. Nenhuma tarefa é criada ou cobrada.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| EMPTY_CONTENT | code | Não | Nenhum prompt e nenhuma imagem / vídeo / áudio de referência. |
| AUDIO_ONLY_NOT_SUPPORTED | code | Não | O áudio é a única referência em sd2 / sd2-fast / sd2-mini. Adicione uma imagem ou vídeo, ou use sd2.5 (suporta somente áudio). |
| UNSUPPORTED_MODEL | code | Não | O alias do modelo não é compatível. Para Wan 3.0, use exatamente "wan3.0-video-prime" ou "wan3.0-video". |
| UNSUPPORTED_RESOLUTION | code | Não | O nível de saída selecionado não está disponível. O lançamento do Wan 3.0 oferece suporte apenas a 480p / 720p / 1080p nativos; 2K/4K e upscaleResolution são rejeitados. |
| DURATION_OUT_OF_RANGE | code | Não | duration não é um número inteiro dentro do intervalo do modelo (Wan 3.0 «2s»–«30s», família sd2 «4s»–«15s», sd2.5 «4s»–«30s»). A duração inteligente do Wan (-1) não é disponibilizada. |
| INVALID_MEDIA_COMBINATION | code | Não | A mídia não corresponde ao modo selecionado (por exemplo, quantidade incorreta de quadros-chave, mídia no modo texto para vídeo, ausência de mídia no modo multirreferência ou combinação de entradas de quadros-chave e referências). |
| EDIT_SOURCE_VIDEO_REQUIRED / EXTEND_SOURCE_VIDEO_REQUIRED | code | Não | mode "edit" / "extend" foi solicitado sem um vídeo em videoUrls. |
| EDIT_SOURCE_DURATION_INVALID | code | Não | sd2.5 Video Edit: um vídeo na requisição é mais curto que 4s ou mais longo que 30s (o ARK aplica 4–30s a cada vídeo de uma tarefa edit). |
| TOO_MANY_REFERENCES | code | Não | Há mais imagens / vídeos / clipes de áudio de referência do que o modelo aceita (Wan 3.0: 10 / 5 / 5; família sd2: 9 / 3 / 3; sd2.5: 30 / 10 / 10; até 3 vídeos adicionais). |
| REFERENCE_VIDEO_DURATION_INVALID | code | Não | Um vídeo de referência excede o limite por clipe, a entrada combinada de vídeos de referência excede o limite do modelo ou a combinação entre entrada e saída é inválida. Para Wan 3.0: cada clipe deve ter de 1 a 15s, a entrada total deve ser ≤15s e a entrada mais a saída solicitada deve ser ≤30s (15+15 é válido; 15+16 é rejeitado). |
| REFERENCE_AUDIO_DURATION_INVALID | code | Não | Uma duração conhecida de áudio de referência do Wan 3.0 está fora de 1–15 s ou faz a entrada total de áudio de referência exceder 15 s. |
| REFERENCE_IMAGE_INVALID | code | Não | Uma imagem do Wan 3.0 está ausente, pertence a outro usuário, tem o tipo de mídia errado ou viola um requisito conhecido de tamanho, formato, dimensões, proporção ou ausência de transparência. |
| REFERENCE_VIDEO_INVALID | code | Não | Um vídeo enviado para o Wan 3.0 viola o requisito de tamanho, formato MP4/MOV, dimensões ou proporção. |
| REFERENCE_AUDIO_INVALID | code | Não | Um arquivo de áudio enviado para o Wan 3.0 viola o requisito de tamanho ou formato WAV/MP3. |
| ASSET_NOT_FOUND / EXTERNAL_URL / READ_TIMEOUT / READ_FAILED | code | Não | Uma entrada de videoUrls não pôde ser associada a nenhum dos seus assets enviados, ou sua duração não pôde ser lida. |
Exemplos completos
Fluxo completo: envie um asset, aguarde a revisão, crie uma tarefa com o asset aprovado e consulte o resultado.
const API_KEY = process.env.API_KEY;
const BASE = "https://seegen.ai/api/v1";
const headers = {
"Authorization": `Bearer ${API_KEY}`,
"Content-Type": "application/json",
};
// 1. Upload asset and wait for review
// (To upload a LOCAL file instead of a URL, POST multipart/form-data with a "file"
// field — no Content-Type header, no "type" — see the Upload Asset section above.)
async function uploadAndWaitForAsset(url, type = "IMAGE") {
const res = await fetch(`${BASE}/assets/upload`, {
method: "POST",
headers,
body: JSON.stringify({ url, type }),
});
if (!res.ok) throw new Error(`Upload failed: ${(await res.json()).message}`);
const asset = await res.json();
console.log(`Asset uploaded: ${asset.assetId}, status: ${asset.status}`);
// Poll until review completes
while (true) {
const statusRes = await fetch(
`${BASE}/assets/status?assetId=${asset.assetId}`,
{ headers }
);
const status = await statusRes.json();
if (status.status === "ACTIVE") {
console.log(`Asset approved: asset://${status.volcAssetId}`);
return status.volcAssetId;
}
if (status.status === "FAILED") {
throw new Error(`Asset review failed: ${status.failReason}`);
}
await new Promise((r) => setTimeout(r, 3000));
}
}
// 2. Create a task
async function createTask(inputs, callBackUrl) {
const res = await fetch(`${BASE}/jobs/createTask`, {
method: "POST",
headers,
body: JSON.stringify({
model: "sd2",
inputs,
...(callBackUrl && { callBackUrl }),
}),
});
if (!res.ok) throw new Error(`[${res.status}] ${(await res.json()).message}`);
return res.json();
}
// 3. Poll until done
async function waitForResult(taskId, timeoutMs = 300000) {
const start = Date.now();
while (Date.now() - start < timeoutMs) {
const res = await fetch(
`${BASE}/jobs/queryTask?taskId=${taskId}`,
{ headers }
);
const result = await res.json();
if (result.status === "COMPLETED") return result;
if (result.status === "FAILED") throw new Error(result.error);
await new Promise((r) => setTimeout(r, 5000));
}
throw new Error("Timeout waiting for task");
}
// Full workflow: upload → review → generate → result
async function main() {
// Upload image and wait for review
const volcAssetId = await uploadAndWaitForAsset(
"https://example.com/photo.jpg", "IMAGE"
);
// Create task with approved asset
const { taskId } = await createTask({
urls: [`asset://${volcAssetId}`],
prompt: "The person slowly looks up and smiles",
duration: "5s",
});
console.log(`Task: ${taskId}`);
// Wait for video
const result = await waitForResult(taskId);
console.log(`Video: ${result.output[0].url}`);
}
main().catch(console.error);Precisa de ajuda? Junte-se ao nosso Discord ou entre em contato conosco