Pular para o conteúdo

Vindo do fal, do Replicateou do WaveSpeed

Como levar as chamadas ao Seedance 2.0 e ao Qwen-Image para o /v1: autenticação, IDs de modelo, todos os campos, tarefas assíncronas e webhooks, e o que não se transfere.

Documentação deles verificada2026-10-22OpenAPIllms.txt

Não é só trocar a URL base

Em nenhuma das três basta trocar a URL base e a chave. Toda requisição também muda nestes pontos:

  • A chave: Authorization: Bearer com uma chave que começa com sk_test_ ou sk_live_.
  • O ID do modelo vai no corpo como model, e um só ID cobre texto, um primeiro quadro e referências.
  • Um cabeçalho Idempotency-Key em toda requisição de geração.
  • Um limite de preço: max_credits ou um quote_id de POST /v1/quotes.
  • O resultado é uma tarefa: consulte GET /v1/jobs/{id} ou receba nosso webhook assinado.
fal
O mais parecido com o nosso: a maioria dos nomes de campo do Seedance vem do fal. Também renomeie image_urls para reference_image_urls, envie duration como número e mova fal_webhook para o corpo como webhook_url.
Replicate
Tire os campos de dentro de input. Também renomeie image para image_url, reference_images para reference_image_urls e webhook para webhook_url.
WaveSpeed
Também renomeie image para image_url e reference_images para reference_image_urls, e mova standard_webhook para o corpo como webhook_url. Leia os resultados em GET /v1/jobs/{id}.

Autenticação

Para onde vão as requisições e como são assinadas.

PlataformaURL baseCabeçalho de autenticação
Pershothttps://api.pershot.app/v1Authorization: Bearer $API_KEY
falhttps://queue.fal.runAuthorization: Key $FAL_KEY
Replicatehttps://api.replicate.com/v1Authorization: Bearer $REPLICATE_API_TOKEN
WaveSpeedhttps://api.wavespeed.ai/api/v3Authorization: Bearer $WAVESPEED_API_KEY

O acesso à API para desenvolvedores é por solicitação: peça no estúdio, em Chaves de API. A chave é exibida uma única vez. Uma chave de desenvolvedor usa o saldo da API para desenvolvedores, e a mesma chave funciona como cabeçalho Bearer no servidor MCP.

IDs de modelo

Os deles vão na URL; o nosso vai no corpo como model. Um dos nossos IDs cobre texto, um primeiro quadro e referências: os campos que você envia decidem.

IDs de modelo em cada plataforma
NossofalReplicateWaveSpeedObservações
seedance-2.0-fastbytedance/seedance-2.0/fast/text-to-videobytedance/seedance-2.0/fast/image-to-videobytedance/seedance-2.0/fast/reference-to-videobytedance/seedance-2.0-fastbytedance/seedance-2.0-fast/text-to-videobytedance/seedance-2.0-fast/image-to-videoUm ID para texto, um primeiro quadro e imagens de referência.
seedance-2.0-minibytedance/seedance-2.0/mini/text-to-videobytedance/seedance-2.0/mini/image-to-videobytedance/seedance-2.0/mini/reference-to-videobytedance/seedance-2.0-minibytedance/seedance-2.0-mini/text-to-videoUm ID para texto, um primeiro quadro e imagens de referência.
qwen-image-2512fal-ai/qwen-image-2512qwen/qwen-image-2512wavespeed-ai/qwen-image/text-to-image-2512Os mesmos pesos abertos.
qwen-image-2512-lightningfal-ai/qwen-image-2512/loranenhumnenhumNosso nível Lightning de 4 passos. O fal o executa como LoRA no endpoint /lora dele; não encontramos um modelo Lightning pronto no Replicate nem no WaveSpeed.
qwen-image-edit-2511fal-ai/qwen-image-edit-2511qwen/qwen-image-edit-2511wavespeed-ai/qwen-image/edit-2511Os mesmos pesos abertos.
qwen-image-edit-2511-lightningfal-ai/qwen-image-edit-2511/loranenhumnenhumNosso nível Lightning de 4 passos. O fal o executa como LoRA no endpoint /lora dele; não encontramos um modelo Lightning pronto no Replicate nem no WaveSpeed.
Para agentes de IA
Texto simples para agentes de IA: entradas, valores aceitos, cada preço e um exemplo de requisiçãoseedance-2.0-fastseedance-2.0-miniqwen-image-2512-lightningqwen-image-2512qwen-image-edit-2511-lightningqwen-image-edit-2511

Seedance 2.0, campo a campo

Nossos nomes seguem os do fal quando o fal tem o campo, e as observações dizem onde diferem. Os campos ficam no nível superior do corpo JSON; o Replicate os coloca dentro de input.

Campos de requisição do Seedance 2.0 em cada plataforma
NossofalReplicateWaveSpeedObservações
modelna URLna URLna URLUm ID no corpo para texto, um primeiro quadro e referências. O deles fica na URL.
promptpromptpromptpromptO texto continua o mesmo.
durationdurationdurationdurationUm número inteiro, de 4 a 15, padrão 5. O fal envia uma string e oferece auto; o Replicate usa -1 para automático. Aqui não há duração automática.
resolutionresolutionresolutionresolution480p ou 720p, padrão 720p. O WaveSpeed também lista 1080p e 4k; aqui, resoluções maiores são a etapa separada enhance.
aspect_ratioaspect_ratioaspect_ratioaspect_ratio16:9, 9:16 ou 1:1, padrão 16:9. Sem auto, adaptive, 4:3, 3:4 ou 21:9.
generate_audiogenerate_audiogenerate_audiogenerate_audioMesmo significado, ativado por padrão. O preço é o mesmo com o áudio ativado ou desativado.
image_urlimage_urlimageimageO primeiro quadro. Mesmo nome do fal; o Replicate e o WaveSpeed o chamam de image. Não junto com imagens de referência.
reference_image_urlsimage_urlsreference_imagesreference_imagesAté 9 imagens, @image1, @image2 no prompt. Difere do fal, que o chama de image_urls.
seednenhumseednenhumAceita e não usada: o Seedance 2.0 não usa semente. O fal e o WaveSpeed não listam nenhuma.
quote_idnenhumnenhumnenhumNovo: envie exatamente um entre quote_id e max_credits. Uma tarefa nunca custa mais.
max_creditsnenhumnenhumnenhumNovo: envie exatamente um entre quote_id e max_credits. Uma tarefa nunca custa mais.
webhook_urlfal_webhookna query stringwebhookstandard_webhookna query stringNo corpo. Difere do fal, que recebe fal_webhook na query string.
end_user_idend_user_idnenhumnenhumO mesmo nome do fal. Para contas de desenvolvedor aprovadas (o acesso é por solicitação): o seu próprio ID de usuário, exibido nos dados de uso.
project_idnenhumnenhumnenhumSó nosso, opcional: projetos e roteamento de fornecedor.
shot_idnenhumnenhumnenhumSó nosso, opcional: projetos e roteamento de fornecedor.
routing_preferencenenhumnenhumnenhumSó nosso, opcional: projetos e roteamento de fornecedor.
enhancenenhumnenhumnenhumSó nosso, opcional: um aumento de resolução por IA depois da geração, com o selo AI Enhanced.
Idempotency-KeycabeçalhonenhumnenhumnenhumNovo e obrigatório: a mesma chave dentro de 24 horas retorna a mesma tarefa.

Campos do Seedance deles sem equivalente aqui. Enviados como estão, são recusados como campos desconhecidos (400 invalid_request).

fal
end_image_urlvideo_urlsaudio_urlsbitrate_modecodec
Replicate
last_frame_imagereference_videosreference_audios
WaveSpeed
last_imagereference_videosreference_audiosenable_web_search

Qwen-Image, campo a campo

Nosso corpo de imagem é menor que o deles: um tamanho e uma proporção em vez de pixels livres, uma imagem por tarefa e nenhuma configuração de sampler.

Campos de requisição do Qwen-Image em cada plataforma
NossofalReplicateWaveSpeedObservações
modelna URLna URLna URLQuatro IDs no corpo: Image Mini e Image Fast, cada um para gerar e para editar.
promptpromptpromptpromptO texto continua o mesmo.
sizeimage_sizenenhumsize1K ou 2K, padrão 1K. Junto com a proporção, define um tamanho fixo, de no máximo 2048 px por lado. Sem largura e altura livres.
aspect_ratioimage_sizeaspect_ratiosize16:9, 9:16 ou 1:1, padrão 1:1. Não altera o preço.
image_urlimage_urlsimageimagesSó nos modelos de edição: exatamente uma imagem de origem, como URL. Os deles recebem uma lista.
seedseedseedseedMesmo significado.
quote_idnenhumnenhumnenhumNovo: envie exatamente um entre quote_id e max_credits. Uma tarefa nunca custa mais.
max_creditsnenhumnenhumnenhumNovo: envie exatamente um entre quote_id e max_credits. Uma tarefa nunca custa mais.
webhook_urlfal_webhookna query stringwebhookstandard_webhookna query stringNo corpo. Difere do fal, que recebe fal_webhook na query string.
end_user_idnenhumnenhumnenhumSó nosso, opcional, para contas de desenvolvedor aprovadas (o acesso é por solicitação): o seu próprio ID de usuário, exibido nos dados de uso.
project_idnenhumnenhumnenhumSó nosso, opcional: projetos e roteamento de fornecedor.
shot_idnenhumnenhumnenhumSó nosso, opcional: projetos e roteamento de fornecedor.
routing_preferencenenhumnenhumnenhumSó nosso, opcional: projetos e roteamento de fornecedor.
Idempotency-KeycabeçalhonenhumnenhumnenhumNovo e obrigatório: a mesma chave dentro de 24 horas retorna a mesma tarefa.

Campos do Qwen-Image deles sem equivalente aqui. Enviados como estão, são recusados como campos desconhecidos (400 invalid_request).

fal
negative_promptnum_inference_stepsguidance_scalenum_imagesoutput_formataccelerationenable_safety_checkersync_modeloras
Replicate
negative_promptstrengthwidthheightguidancenum_inference_stepsgo_fastoutput_formatoutput_qualitydisable_safety_checkerlora_weightslora_scale
WaveSpeed
widthheightoutput_formatenable_base64_outputenable_sync_mode

Tarefas assíncronas e webhooks

As quatro executam tarefas em segundo plano. Como cada uma chama as etapas:

Tarefas e webhooks em cada plataforma
EtapaPershotfalReplicateWaveSpeed
CriarPOST /v1/videos/generationsPOST /v1/images/generations202 → { id: "job_…" }POST https://queue.fal.run/<endpoint id>→ request_id, status_url, response_urlPOST /v1/models/{owner}/{name}/predictions{ "input": { … } }POST /api/v3/<model id>→ data.id
ConsultarGET /v1/jobs/{id}GET status_urlGET response_urlGET /v1/predictions/{id}GET /api/v3/predictions/{id}/result
StatusqueuedprocessingsucceededfailedcancelledunknownIN_QUEUEIN_PROGRESSCOMPLETEDstartingprocessingsucceededfailedcanceledcreatedcompletedfailedcancelledtimeoutdeleted
Webhookwebhook_url (body)?fal_webhook=…webhook (body)webhook_events_filter?standard_webhook=…?webhook=… (legacy)
AssinaturaX-Signature: t=…,v1=…HMAC-SHA256, whsec_…X-Event-IdX-Fal-Webhook-SignatureED25519, JWKSwebhook-idwebhook-timestampwebhook-signaturewebhook-idwebhook-timestampwebhook-signature
Novas tentativas de entregaApós 1 min, 5 min, 30 min, 2 h e 6 h. Um 2xx em até 10 segundos conta como entregue.Até 31 novas tentativas, enquanto o resultado armazenado não expirar.Pode repetir: trate entregas duplicadas.Até 3 novas tentativas.
Arquivos de saídaLinks assinados válidos por 24 horas; consulte a tarefa de novo para obter um novo. Os arquivos são mantidos por 12 meses.Seguem suas configurações de expiração de mídia.Removidos após uma hora nas predictions criadas pela API.Mantidos por até 7 dias.
Esperar em uma chamadaNão há: toda tarefa é assíncrona. Via MCP, wait_for_job espera até 60 segundos.POST https://fal.run/<endpoint id>Prefer: wait=nenable_sync_mode

O corpo do nosso webhook é a própria tarefa, e a assinatura é nossa: um código que verifica os webhooks deles vai recusar os nossos. Como verificar os nossos

Idempotência

Toda requisição de geração exige um cabeçalho Idempotency-Key, de 1 a 255 caracteres ASCII visíveis. A mesma chave dentro de 24 horas retorna a mesma tarefa com HTTP 200, então uma nova tentativa após um timeout nunca cria nem cobra uma segunda tarefa.

Nenhuma das três documenta uma chave de idempotência para criar uma tarefa (em 2026-10-22): o fal sugere eliminar webhooks duplicados pelo request_id, e o WaveSpeed pede que você envie uma vez e procure a tarefa antes de reenviar. Dê uma chave a cada tarefa e reutilize-a em toda nova tentativa.

O que não é compatível

Enviados como estão, estes itens falham ou são recusados aqui:

  • As bibliotecas de cliente deles (fal_client, replicate, wavespeed) não chamam o /v1. Use HTTP puro, o documento OpenAPI ou o servidor MCP.
  • Os formatos de resposta deles: aqui uma tarefa é um Job com outputs[].url, não um resultado do fal, uma prediction do Replicate nem um wrapper data do WaveSpeed.
  • Últimos quadros: fal end_image_url, Replicate last_frame_image, WaveSpeed last_image.
  • Vídeos e áudios de referência: fal video_urls e audio_urls, Replicate e WaveSpeed reference_videos e reference_audios.
  • Duração ou proporção automática, as proporções 4:3, 3:4 e 21:9 e gerações em 1080p ou 4K. Aqui, resoluções maiores são uma etapa separada, enhance, com o selo AI Enhanced.
  • Um primeiro quadro junto com imagens de referência. O Replicate também recusa isso.
  • Esperar o resultado em uma chamada (fal.run, Prefer: wait do Replicate, enable_sync_mode do WaveSpeed): aqui toda tarefa é assíncrona.
  • Várias imagens por tarefa, saída em PNG ou WebP, largura e altura livres, várias imagens de origem em uma edição, LoRAs e configurações de sampler.
  • A verificação de webhook deles: nossas entregas trazem X-Signature, um HMAC-SHA256 com o seu segredo whsec_, e não a assinatura ED25519 do fal nem o cabeçalho webhook-signature.
  • Pagar depois do uso: os créditos são pré-pagos, toda tarefa tem um limite, e uma tarefa acima de max_credits é recusada, não cobrada.
  • Links de resultado duradouros: os nossos valem por 24 horas. Consulte a tarefa de novo para obter um novo.

Antes e depois

A mesma requisição ao Seedance 2.0 Fast com um primeiro quadro, como cada plataforma a documenta, e depois no /v1. O limite de preço vem do nosso motor de preços.

Antes
curl -X POST https://queue.fal.run/bytedance/seedance-2.0/fast/image-to-video \
  -H "Authorization: Key $FAL_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Slow dolly-in on a ceramic mug on a wooden table, morning window light",
    "image_url": "https://example.com/first-frame.jpg",
    "duration": "5",
    "resolution": "720p",
    "aspect_ratio": "16:9",
    "generate_audio": true
  }'
Depois: /v1
curl https://api.pershot.app/v1/videos/generations \
  -H "Authorization: Bearer $API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.0-fast",
    "prompt": "Slow dolly-in on a ceramic mug on a wooden table, morning window light",
    "image_url": "https://example.com/first-frame.jpg",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "16:9",
    "generate_audio": true,
    "max_credits": 34
  }'

Os preços são nossos

Toda tarefa aqui é cotada em créditos antes de rodar (US$ 1 = 100 créditos) e nunca custa mais que a cotação ou o max_credits.

O que o fal, o Replicate e o WaveSpeed cobram está nas páginas deles. Nossas páginas de comparação listam os preços do Seedance 2.0 publicados por eles, cada um com a data em que foi consultado.

Nossas tarifas de API por segundo cobrado
Modelo480p, por segundo720p, por segundo
Seedance 2.0 Fastseedance-2.0-fastUS$ 0,031US$ 0,067
Seedance 2.0 Miniseedance-2.0-miniUS$ 0,020US$ 0,042
Nossos créditos por imagem
Modelo1K, por imagem2K, por imagem
Qwen-Image-2512 · Lightning 4-stepqwen-image-2512-lightning1 cr3 cr
Qwen-Image-2512qwen-image-25122 cr6 cr
Qwen-Image-Edit-2511 · Lightningqwen-image-edit-2511-lightning2 cr4 cr
Qwen-Image-Edit-2511qwen-image-edit-25113 cr10 cr

Fontes

Os nomes de campo e o comportamento deles conforme as páginas públicas mostravam em 2026-10-22. Confira a documentação deles antes de migrar: