Seedance 2.5 JÁ CHEGOU · Nano Banana 2 E GPT Image 2.5 ILIMITADOS ATÉ 15 de novembroMelhorar
  • Logo Picasso IALogo Picasso IA
  • Início
  • Imagem
  • Vídeo
  • Música
  • Voz
  • Chat
  • 3D
  • Influenciador IANEW
  • AI ToolkitNEW
  • SupercomputerNEW
  • APINEW
  • MCPNEW
  • Gerações
  • Faturamento
  • Suporte
  • Conta
Pular para o Conteúdo
  • Explorar
  • Imagem
  • Vídeo
  • Chat
  • Ilimitados
  • Editar Vídeo
  • Lipsync
  • Melhorar
  • Música
  • Voz
  • Transcrever
  • 3D
  • Ampliar
  • Remover Fundo
Crie GrátisComece Grátis JáNovoCriarComece a CriarPreçosPreços80% OFF
Crea GratisStart Freeابدأ مجانًاCrie GrátisEssai Gratuitमुफ़्त शुरूEmpieza Gratis YaStart Free Nowابدأ مجانًا الآنComece Grátis JáCommencer Gratuitementअभी मुफ़्त शुरू करेंNuevoNewجديدNovoNouveauनयाCrearCreateإنشاءCriarCréerबनाएंEmpieza a CrearStart Creatingابدأ الإنشاءComece a CriarCommencer à Créerबनाना शुरू करेंPreciosPricingالأسعارPreçosTarifsमूल्यPreciosPricingالأسعارPreçosTarifsमूल्य80% OFF
  • ExplorarExploreاستكشافExplorarExplorerएक्सप्लोर
  • Inicio RápidoQuickstartالبدء السريعInício RápidoDémarrage Rapideत्वरित शुरुआत
  • DocumentaciónDocsالوثائقDocumentaçãoDocumentationडॉक्स
  • PreciosPricingالأسعارPreçosTarifsकीमत
  • Claves de APIAPI Keysمفاتيح APIChaves de APIClés APIAPI कुंजियाँ
  • MCPMCPخادم MCPMCPMCPMCP
  1. ExplorarExploreاستكشافExplorarExplorerएक्सप्लोर
  2. VídeoVideoالفيديوVídeoVidéoवीडियो
  3. Seedance 2.5 LiteSeedance 2.5 LiteSeedance 2.5 LiteSeedance 2.5 LiteSeedance 2.5 LiteSeedance 2.5 Lite
  4. Referencia de la APIAPI Referenceمرجع APIReferência da APIRéférence de l'APIAPI संदर्भ
IlimitadoUnlimitedغير محدودIlimitadoIllimitéअसीमितVídeoVideoالفيديوVídeoVidéoवीडियो
$0$0$0$0$0$0
/ ejecución/ run/ تشغيل/ execução/ requête/ रन
desde ~$0.2205/s en otras APIsfrom ~$0.2205/s elsewhereابتداءً من ⁦~$0.2205⁩/ثانية لدى الآخرينa partir de ~$0.2205/s em outros provedoresà partir de ~$0.2205/s ailleursदूसरी जगह ~$0.2205/⁠सेकंड से शुरू
Referencia de la API de Seedance 2.5 LiteSeedance 2.5 Lite API Referenceمرجع واجهة Seedance 2.5 Lite APIReferência da API do Seedance 2.5 LiteRéférence de l'API Seedance 2.5 LiteSeedance 2.5 Lite API संदर्भ
Texto a VídeoText to Videoتحويل النص إلى فيديوTexto para VídeoTexte vers Vidéoटेक्स्ट से वीडियो
Texto e imagen a vídeo con audio, clips de 5, 10 o 15 segundos y salida en 480p o 720p.Text and image to video with audio, clips of 5, 10 or 15 seconds and 480p or 720p output.تحويل النص والصورة إلى فيديو مع الصوت ومقاطع مدتها 5 أو 10 أو 15 ثانية ودقة 480p أو 720p.Texto e imagem para vídeo com áudio, clipes de 5, 10 ou 15 segundos e saída em 480p ou 720p.Texte et image vers vidéo avec audio, des clips de 5, 10 ou 15 secondes et une sortie en 480p ou 720p.टेक्स्ट और इमेज से वीडियो: ऑडियो, 5, 10 या 15 सेकंड की क्लिप और 480p या 720p आउटपुट।
Copiar Prompt para AgenteCopy Agent Promptنسخ موجّه الوكيلCopiar Prompt para AgenteCopier le Prompt pour l'Agentएजेंट प्रॉम्प्ट कॉपी करें
Ver DocumentaciónView Docsعرض الوثائقVer DocumentaçãoVoir la Documentationडॉक्स देखें
cURLcURLcURLcURLcURLcURL
Copiar para AgenteCopy for Agentنسخ للوكيلCopiar para AgenteCopier pour l'Agentएजेंट के लिए कॉपी करें
PlaygroundPlaygroundمساحة التجربةPlaygroundPlaygroundप्लेग्राउंड
APIAPIواجهة APIAPIAPIAPI
En Esta PáginaOn This Pageفي هذه الصفحةNesta PáginaSur cette Pageइस पेज पर
Cómo Llamar a la APICalling the APIاستدعاء APIComo Chamar a APIAppeler l'APIAPI को कॉल करना
En Esta PáginaOn This Pageفي هذه الصفحةNesta PáginaSur cette Pageइस पेज पर
cURLcURLcURLcURLcURLcURL
  • Cómo Llamar a la APICalling the APIاستدعاء APIComo Chamar a APIAppeler l'APIAPI को कॉल करना
  • ConfiguraciónSetupالإعدادConfiguraçãoConfigurationसेटअप
  • Parámetros de la PeticiónRequest Parametersمعاملات الطلبParâmetros da RequisiçãoParamètres de la Requêteरिक्वेस्ट पैरामीटर
  • ModosModesالأوضاعModosModesमोड
  • Petición de EjemploExample Requestمثال على الطلبRequisição de ExemploExemple de Requêteउदाहरण रिक्वेस्ट
  • AutenticaciónAuthenticationالمصادقةAutenticaçãoAuthentificationप्रमाणीकरण
  • Cola y SondeoQueue and Pollingقائمة الانتظار والاستعلام الدوريFila e Consulta PeriódicaFile d'Attente et Interrogationकतार और पोलिंग
  • EnvíoSubmitالإرسالEnviarEnvoiभेजना
  • SondeoPollالاستعلامConsultarInterrogationपोल करना
  • ResultadoResultالنتيجةResultadoRésultatनतीजा
  • CancelaciónCancelالإلغاءCancelarAnnulationरद्द करना
  • SalidaOutputالمخرجاتSaídaSortieआउटपुट
  • Errores y LímitesErrors and Limitsالأخطاء والحدودErros e LimitesErreurs et Limitesत्रुटियाँ और सीमाएँ
  • PreciosPricingالأسعارPreçosTarifsकीमत
  • JSON SchemaJSON Schemaمخطط JSON SchemaJSON SchemaJSON SchemaJSON Schema

Seedance 2.5 Lite usa el ID de modelo picassoia/seedance-2.5-lite. Texto e imagen a vídeo con audio, clips de 5, 10 o 15 segundos y salida en 480p o 720p.

Cómo Llamar a la API

Envía las peticiones a https://api.picassoia.com/v1/models/picassoia/seedance-2.5-lite/predictions con un cuerpo JSON cuyo input coincida con los parámetros de abajo.

Configuración

Guarda tu API key en tu servidor, en una variable de entorno, y envíala en la cabecera Authorization de cada petición.

Shell
1export PICASSOIA_API_KEY="pia_sk_…"

Seedance 2.5 Lite uses the model ID picassoia/seedance-2.5-lite. Text and image to video with audio, clips of 5, 10 or 15 seconds and 480p or 720p output.

Calling the API

Send requests to https://api.picassoia.com/v1/models/picassoia/seedance-2.5-lite/predictions with a JSON body whose input matches the parameters below.

Setup

Keep your API key on your server, in an environment variable, and send it in the Authorization header of every request.

Shell
1export PICASSOIA_API_KEY="pia_sk_…"

يستخدم Seedance 2.5 Lite معرّف النموذج picassoia/seedance-2.5-lite. تحويل النص والصورة إلى فيديو مع الصوت ومقاطع مدتها 5 أو 10 أو 15 ثانية ودقة 480p أو 720p.

استدعاء API

أرسل الطلبات إلى https://api.picassoia.com/v1/models/picassoia/seedance-2.5-lite/predictions بجسم JSON يتوافق فيه الكائن input مع المعاملات أدناه.

الإعداد

احتفظ بمفتاح API على خادمك، في متغير بيئة، وأرسله في ترويسة Authorization مع كل طلب.

Shell
1export PICASSOIA_API_KEY="pia_sk_…"

O Seedance 2.5 Lite usa o ID de modelo picassoia/seedance-2.5-lite. Texto e imagem para vídeo com áudio, clipes de 5, 10 ou 15 segundos e saída em 480p ou 720p.

Como Chamar a API

Envie requisições para https://api.picassoia.com/v1/models/picassoia/seedance-2.5-lite/predictions com um corpo JSON cujo input siga os parâmetros abaixo.

Configuração

Guarde sua API key no seu servidor, em uma variável de ambiente, e envie-a no cabeçalho Authorization de cada requisição.

Shell
1export PICASSOIA_API_KEY="pia_sk_…"

Seedance 2.5 Lite utilise l'identifiant de modèle picassoia/seedance-2.5-lite. Texte et image vers vidéo avec audio, des clips de 5, 10 ou 15 secondes et une sortie en 480p ou 720p.

Appeler l'API

Envoyez vos requêtes à https://api.picassoia.com/v1/models/picassoia/seedance-2.5-lite/predictions avec un corps JSON dont l'objet input correspond aux paramètres ci-dessous.

Configuration

Gardez votre API key sur votre serveur, dans une variable d'environnement, et envoyez-la dans l'en-tête Authorization de chaque requête.

Shell
1export PICASSOIA_API_KEY="pia_sk_…"

Seedance 2.5 Lite का मॉडल ID picassoia/seedance-2.5-lite है। टेक्स्ट और इमेज से वीडियो: ऑडियो, 5, 10 या 15 सेकंड की क्लिप और 480p या 720p आउटपुट।

API को कॉल करना

https://api.picassoia.com/v1/models/picassoia/seedance-2.5-lite/predictions पर ऐसी JSON बॉडी के साथ रिक्वेस्ट भेजें जिसका input नीचे दिए गए पैरामीटर से मेल खाता हो।

सेटअप

अपनी API key अपने सर्वर पर किसी एनवायरनमेंट वेरिएबल में रखें, और उसे हर रिक्वेस्ट के Authorization हेडर में भेजें।

Shell
1export PICASSOIA_API_KEY="pia_sk_…"
  • Início
  • Toolkit
  • Biblioteca
  • Conta
Crie GrátisComece Grátis JáNovoCriarComece a CriarPreçosPreços80% OFF
  • Explorar
  • Início Rápido
  • Documentação
  • Preços
  • Chaves de API
  • MCP
  1. Explorar
  2. Vídeo
  3. Seedance 2.5 Lite
  4. Referência da API
IlimitadoVídeo$0 por requisição no plano Infinite; outros provedores cobram a partir de ~$0.2205/s por um modelo comparável, em 1 de outubro de 2026$0/ execuçãoa partir de ~$0.2205/s em outros provedores

Referência da API do Seedance 2.5 Lite

Texto e imagem para vídeo com áudio, clipes de 5, 10 ou 15 segundos e saída em 480p ou 720p.

Ver Documentação
1
2
3
4curl -s -X POST https://api.picassoia.com/v1/models/picassoia/seedance-2.5-lite/predictions \
  -H "Authorization: Bearer $PICASSOIA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"prompt":"A young skateboarder in a black t-shirt and baggy jeans performs tricks at a brutalist concrete skatepark on a sunny afternoon. The camera alternates between a fisheye lens ground-level POV following his board and wider angles capturing kickflips and grinds. Harsh midday shadows, raw street-skating documentary style, warm golden tones.","duration":15,"aspect_ratio":"16:9"}}'
PlaygroundAPI

Nesta Página

  • 1.Como Chamar a API
  • Configuração
  • Parâmetros da Requisição
  • Modos
  • Requisição de Exemplo
  • 2.Autenticação
  • 3.Fila e Consulta Periódica
  • Enviar
  • Consultar
  • Resultado
  • Cancelar
  • 4.Saída
  • 5.Erros e Limites
  • 6.Preços
  • 7.JSON Schema

O Seedance 2.5 Lite usa o ID de modelo picassoia/seedance-2.5-lite. Texto e imagem para vídeo com áudio, clipes de 5, 10 ou 15 segundos e saída em 480p ou 720p.

Como Chamar a API

Envie requisições para https://api.picassoia.com/v1/models/picassoia/seedance-2.5-lite/predictions com um corpo JSON cujo input siga os parâmetros abaixo.

Configuração

Guarde sua API key no seu servidor, em uma variável de ambiente, e envie-a no cabeçalho Authorization de cada requisição.

Shell
1export PICASSOIA_API_KEY="pia_sk_…"

Parâmetros da Requisição

promptstringObrigatório
PadrãoNenhum
O que a saída deve mostrar. Até 4000 caracteres.
imagestring
PadrãoNenhum
O quadro inicial ou a imagem a ser usada como base. Uma imagem PNG, JPEG ou WebP, como URL https pública ou como data URL de até 5 MB.
last_frame_imagestring
PadrãoNenhum
O quadro de encerramento: o clipe termina nele. Requer o campo image. Uma imagem PNG, JPEG ou WebP, como URL https pública ou como data URL de até 5 MB.
resolutionstring
Padrão"480p"
O tamanho da saída. Opções: 480p e 720p.
durationnumber
Padrão5
A duração do clipe, em segundos. Opções: 5, 10 e 15. Até 15 em 480p. Até 10 em 720p.
aspect_ratiostring
Padrão"match_input_image" / "16:9"
O formato da saída. Quando match_input_image é uma das opções, ela mantém as proporções da imagem de entrada, ou da primeira, se houver várias. Opções: match_input_image, 1:1, 16:9, 9:16, 4:3, 3:4, 3:2 e 2:3. Se você não enviar: match_input_image quando image é enviado, 16:9 quando não é.
save_audioboolean
Padrãotrue
Mantém a faixa de áudio gerada.
seedinteger
PadrãoNenhum
Defina-a para reproduzir um resultado; omita-a para usar uma aleatória.
enhance_promptboolean
Padrãotrue
A Picasso IA reescreve seu prompt para obter um resultado melhor. O seu prompt original continua na entrada.
ParâmetroTipoObrigatórioPadrãoDescrição
promptstringSimObrigatórioNenhumO que a saída deve mostrar. Até 4000 caracteres.
imagestringNãoNenhumO quadro inicial ou a imagem a ser usada como base. Uma imagem PNG, JPEG ou WebP, como URL https pública ou como data URL de até 5 MB.
last_frame_imagestringNãoNenhumO quadro de encerramento: o clipe termina nele. Requer o campo image. Uma imagem PNG, JPEG ou WebP, como URL https pública ou como data URL de até 5 MB.
resolutionstringNão"480p"O tamanho da saída. Opções: 480p e 720p.
durationnumberNão5A duração do clipe, em segundos. Opções: 5, 10 e 15. Até 15 em 480p. Até 10 em 720p.
aspect_ratiostringNão"match_input_image" / "16:9"O formato da saída. Quando match_input_image é uma das opções, ela mantém as proporções da imagem de entrada, ou da primeira, se houver várias. Opções: match_input_image, 1:1, 16:9, 9:16, 4:3, 3:4, 3:2 e 2:3. Se você não enviar: match_input_image quando image é enviado, 16:9 quando não é.
save_audiobooleanNãotrueMantém a faixa de áudio gerada.
seedintegerNãoNenhumDefina-a para reproduzir um resultado; omita-a para usar uma aleatória.
enhance_promptbooleanNãotrueA Picasso IA reescreve seu prompt para obter um resultado melhor. O seu prompt original continua na entrada.

Modos

O modo depende dos arquivos que você envia com o prompt, se houver. Todos os modos usam o mesmo endpoint.

ModosArquivos
Texto para VídeoSó o prompt
Imagem para Vídeoimage
Quadro Inicial e Finalimagelast_frame_image

Requisição de Exemplo

Texto para Vídeo

cURL
1
2
3
4curl -s -X POST https://api.picassoia.com/v1/models/picassoia/seedance-2.5-lite/predictions \
  -H "Authorization: Bearer $PICASSOIA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"prompt":"a paper boat sailing down a rainy street"}}'
Node.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25const API = 'https://api.picassoia.com/v1'
const headers = {
  Authorization: `Bearer ${process.env.PICASSOIA_API_KEY}`,
  'Content-Type': 'application/json',
}
const sleep = (s) => new Promise((resolve) => setTimeout(resolve, s * 1000))

const input = {
  prompt: "a paper boat sailing down a rainy street"
}

const created = await fetch(`${API}/models/picassoia/seedance-2.5-lite/predictions`, {
  method: 'POST',
  headers,
  body: JSON.stringify({ input }),
})
let prediction = await created.json()
if (!created.ok) throw new Error(`${prediction.code}: ${prediction.detail}`)

while (!['succeeded', 'failed', 'canceled'].includes(prediction.status)) {
  await sleep(prediction.eta?.next_poll_in_seconds ?? 2)
  prediction = await (await fetch(prediction.urls.get, { headers })).json()
}
if (prediction.status !== 'succeeded') throw new Error(prediction.error ?? prediction.status)
console.log(prediction.output)
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19import os, time, requests

API = "https://api.picassoia.com/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['PICASSOIA_API_KEY']}"}

payload = {"input": {
    "prompt": "a paper boat sailing down a rainy street",
}}

response = requests.post(f"{API}/models/picassoia/seedance-2.5-lite/predictions", json=payload, headers=HEADERS)
prediction = response.json()
if not response.ok:
    raise RuntimeError(f"{prediction['code']}: {prediction['detail']}")
while prediction["status"] not in ("succeeded", "failed", "canceled"):
    time.sleep((prediction.get("eta") or {}).get("next_poll_in_seconds", 2))
    prediction = requests.get(prediction["urls"]["get"], headers=HEADERS).json()
if prediction["status"] != "succeeded":
    raise RuntimeError(prediction["error"] or prediction["status"])
print(prediction["output"])

Imagem para Vídeo

cURL
1
2
3
4curl -s -X POST https://api.picassoia.com/v1/models/picassoia/seedance-2.5-lite/predictions \
  -H "Authorization: Bearer $PICASSOIA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"prompt":"the camera slowly pushes in as she turns and smiles","image":"https://example.com/first-frame.jpg"}}'
Node.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26const API = 'https://api.picassoia.com/v1'
const headers = {
  Authorization: `Bearer ${process.env.PICASSOIA_API_KEY}`,
  'Content-Type': 'application/json',
}
const sleep = (s) => new Promise((resolve) => setTimeout(resolve, s * 1000))

const input = {
  prompt: "the camera slowly pushes in as she turns and smiles",
  image: "https://example.com/first-frame.jpg"
}

const created = await fetch(`${API}/models/picassoia/seedance-2.5-lite/predictions`, {
  method: 'POST',
  headers,
  body: JSON.stringify({ input }),
})
let prediction = await created.json()
if (!created.ok) throw new Error(`${prediction.code}: ${prediction.detail}`)

while (!['succeeded', 'failed', 'canceled'].includes(prediction.status)) {
  await sleep(prediction.eta?.next_poll_in_seconds ?? 2)
  prediction = await (await fetch(prediction.urls.get, { headers })).json()
}
if (prediction.status !== 'succeeded') throw new Error(prediction.error ?? prediction.status)
console.log(prediction.output)
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20import os, time, requests

API = "https://api.picassoia.com/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['PICASSOIA_API_KEY']}"}

payload = {"input": {
    "prompt": "the camera slowly pushes in as she turns and smiles",
    "image": "https://example.com/first-frame.jpg",
}}

response = requests.post(f"{API}/models/picassoia/seedance-2.5-lite/predictions", json=payload, headers=HEADERS)
prediction = response.json()
if not response.ok:
    raise RuntimeError(f"{prediction['code']}: {prediction['detail']}")
while prediction["status"] not in ("succeeded", "failed", "canceled"):
    time.sleep((prediction.get("eta") or {}).get("next_poll_in_seconds", 2))
    prediction = requests.get(prediction["urls"]["get"], headers=HEADERS).json()
if prediction["status"] != "succeeded":
    raise RuntimeError(prediction["error"] or prediction["status"])
print(prediction["output"])

Quadro Inicial e Final

cURL
1
2
3
4curl -s -X POST https://api.picassoia.com/v1/models/picassoia/seedance-2.5-lite/predictions \
  -H "Authorization: Bearer $PICASSOIA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"prompt":"a smooth transition from day to night over the city","image":"https://example.com/first-frame.jpg","last_frame_image":"https://example.com/last-frame.jpg"}}'
Node.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27const API = 'https://api.picassoia.com/v1'
const headers = {
  Authorization: `Bearer ${process.env.PICASSOIA_API_KEY}`,
  'Content-Type': 'application/json',
}
const sleep = (s) => new Promise((resolve) => setTimeout(resolve, s * 1000))

const input = {
  prompt: "a smooth transition from day to night over the city",
  image: "https://example.com/first-frame.jpg",
  last_frame_image: "https://example.com/last-frame.jpg"
}

const created = await fetch(`${API}/models/picassoia/seedance-2.5-lite/predictions`, {
  method: 'POST',
  headers,
  body: JSON.stringify({ input }),
})
let prediction = await created.json()
if (!created.ok) throw new Error(`${prediction.code}: ${prediction.detail}`)

while (!['succeeded', 'failed', 'canceled'].includes(prediction.status)) {
  await sleep(prediction.eta?.next_poll_in_seconds ?? 2)
  prediction = await (await fetch(prediction.urls.get, { headers })).json()
}
if (prediction.status !== 'succeeded') throw new Error(prediction.error ?? prediction.status)
console.log(prediction.output)
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21import os, time, requests

API = "https://api.picassoia.com/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['PICASSOIA_API_KEY']}"}

payload = {"input": {
    "prompt": "a smooth transition from day to night over the city",
    "image": "https://example.com/first-frame.jpg",
    "last_frame_image": "https://example.com/last-frame.jpg",
}}

response = requests.post(f"{API}/models/picassoia/seedance-2.5-lite/predictions", json=payload, headers=HEADERS)
prediction = response.json()
if not response.ok:
    raise RuntimeError(f"{prediction['code']}: {prediction['detail']}")
while prediction["status"] not in ("succeeded", "failed", "canceled"):
    time.sleep((prediction.get("eta") or {}).get("next_poll_in_seconds", 2))
    prediction = requests.get(prediction["urls"]["get"], headers=HEADERS).json()
if prediction["status"] != "succeeded":
    raise RuntimeError(prediction["error"] or prediction["status"])
print(prediction["output"])

Autenticação

Toda requisição precisa de uma API key no cabeçalho Authorization, como token Bearer. Crie chaves na sua conta; a chave completa é exibida uma única vez.

HTTP
1Authorization: Bearer $PICASSOIA_API_KEY

Gerenciar Chaves de API

Fila e Consulta Periódica

Toda previsão passa por três etapas: criá-la, consultá-la até que termine e, depois, ler o resultado.

Enviar

A API responde 201, geralmente em poucos segundos, com a previsão no estado starting, uma estimativa em eta e a URL a consultar em urls.get. Se a previsão falhar imediatamente, por exemplo quando o filtro de segurança recusa a entrada, a resposta continua sendo 201, com a previsão no estado failed e o seu erro.

cURL
1
2
3
4curl -s -X POST https://api.picassoia.com/v1/models/picassoia/seedance-2.5-lite/predictions \
  -H "Authorization: Bearer $PICASSOIA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"prompt":"a paper boat sailing down a rainy street"}}'
Node.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17const API = 'https://api.picassoia.com/v1'
const headers = {
  Authorization: `Bearer ${process.env.PICASSOIA_API_KEY}`,
  'Content-Type': 'application/json',
}

const input = {
  prompt: "a paper boat sailing down a rainy street"
}
const created = await fetch(`${API}/models/picassoia/seedance-2.5-lite/predictions`, {
  method: 'POST',
  headers,
  body: JSON.stringify({ input }),
})
let prediction = await created.json()
if (!created.ok) throw new Error(`${prediction.code}: ${prediction.detail}`)
console.log(prediction.id, prediction.status) // api_…, starting
Python
1
2
3
4
5
6
7
8
9
10
11
12
13import os, requests

API = "https://api.picassoia.com/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['PICASSOIA_API_KEY']}"}

payload = {"input": {
    "prompt": "a paper boat sailing down a rainy street",
}}
response = requests.post(f"{API}/models/picassoia/seedance-2.5-lite/predictions", json=payload, headers=HEADERS)
prediction = response.json()
if not response.ok:
    raise RuntimeError(f"{prediction['code']}: {prediction['detail']}")
print(prediction["id"], prediction["status"])  # api_…, starting
Resposta · 201 Created
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29{
  "id": "api_3f9c2b7e8d1a4c6f9e0b1a2c3d4e5f60",
  "model": "picassoia/seedance-2.5-lite",
  "input": {
    "prompt": "a paper boat sailing down a rainy street",
    "resolution": "480p",
    "duration": 5,
    "aspect_ratio": "16:9",
    "save_audio": true,
    "enhance_prompt": true
  },
  "output": null,
  "error": null,
  "status": "starting",
  "created_at": "2026-10-01T09:30:00.000Z",
  "started_at": null,
  "completed_at": null,
  "metrics": {
    "predict_time": null
  },
  "urls": {
    "get": "https://api.picassoia.com/v1/predictions/api_3f9c2b7e8d1a4c6f9e0b1a2c3d4e5f60",
    "cancel": "https://api.picassoia.com/v1/predictions/api_3f9c2b7e8d1a4c6f9e0b1a2c3d4e5f60/cancel"
  },
  "eta": {
    "seconds": 60,
    "next_poll_in_seconds": 30
  }
}

Consultar

Consulte urls.get de novo após eta.next_poll_in_seconds: na metade do tempo estimado, quando a estimativa é atingida e, depois, a cada 2 segundos.

cURL
1
2
3
4# Repeat after eta.next_poll_in_seconds until status is
# succeeded, failed or canceled.
curl -s https://api.picassoia.com/v1/predictions/api_3f9c2b7e8d1a4c6f9e0b1a2c3d4e5f60 \
  -H "Authorization: Bearer $PICASSOIA_API_KEY"
Node.js
1
2
3
4
5
6const sleep = (s) => new Promise((resolve) => setTimeout(resolve, s * 1000))

while (!['succeeded', 'failed', 'canceled'].includes(prediction.status)) {
  await sleep(prediction.eta?.next_poll_in_seconds ?? 2)
  prediction = await (await fetch(prediction.urls.get, { headers })).json()
}
Python
1
2
3
4
5import time

while prediction["status"] not in ("succeeded", "failed", "canceled"):
    time.sleep((prediction.get("eta") or {}).get("next_poll_in_seconds", 2))
    prediction = requests.get(prediction["urls"]["get"], headers=HEADERS).json()
Resposta · 200 OK · em andamento
1
2
3
4
5
6
7
8
9{
  "id": "api_3f9c2b7e8d1a4c6f9e0b1a2c3d4e5f60",
  "status": "processing",
  "output": null,
  "eta": {
    "seconds": 30,
    "next_poll_in_seconds": 30
  }
}

Resultado

Quando status é succeeded, output contém o resultado. Uma previsão failed traz o motivo em error, e uma canceled foi interrompida antes de terminar. Os três estados são finais.

cURL
1
2
3
4# The last poll holds the result: "output" when "status" is succeeded,
# "error" when it is failed. With jq, just those three fields:
curl -s https://api.picassoia.com/v1/predictions/api_3f9c2b7e8d1a4c6f9e0b1a2c3d4e5f60 \
  -H "Authorization: Bearer $PICASSOIA_API_KEY" | jq '.status, .output, .error'
Node.js
1
2if (prediction.status !== 'succeeded') throw new Error(prediction.error ?? prediction.status)
console.log(prediction.output)
Python
1
2
3if prediction["status"] != "succeeded":
    raise RuntimeError(prediction["error"] or prediction["status"])
print(prediction["output"])
Resposta · 200 OK · concluída
1
2
3
4
5
6
7
8
9
10
11{
  "id": "api_3f9c2b7e8d1a4c6f9e0b1a2c3d4e5f60",
  "status": "succeeded",
  "output": "https://…/output.mp4",
  "error": null,
  "completed_at": "2026-10-01T09:30:54.000Z",
  "metrics": {
    "predict_time": 52.8
  },
  "eta": null
}

Cancelar

POST urls.cancel interrompe uma previsão que ainda está na fila (qualquer modelo) ou uma imagem que ainda está sendo gerada; um vídeo que já está em geração retorna 409 not_cancelable.

Os IDs, horários e URLs destas respostas são exemplos: os seus terão valores próprios.

Saída

Quando a previsão termina com sucesso, output é a URL de um vídeo MP4.

Saídas Reais

  • Seedance 2.5 Lite
  • Seedance 2.5 Lite
  • Seedance 2.5 Lite
  • Seedance 2.5 Lite
  • Seedance 2.5 Lite
  • Seedance 2.5 Lite

Erros e Limites

Os erros são respostas JSON no formato problem details, com um code estável, e um 422 indica todos os campos com problema.

Resposta · 422 Unprocessable Entity
1
2
3
4
5
6
7
8
9
10
11
12
13{
  "title": "Input validation failed",
  "status": 422,
  "code": "invalid_input",
  "detail": "input.duration: At 720p the longest clip is 10 seconds.",
  "invalid_fields": [
    {
      "type": "invalid_value",
      "field": "input.duration",
      "description": "At 720p the longest clip is 10 seconds."
    }
  ]
}

Limites

  • 5 previsões na fila ou em execução ao mesmo tempo por conta
  • Corpo da requisição de até 10 MB; imagens como data URLs de até 5 MB cada
  • Prompt de até 4000 caracteres
  • Campos desconhecidos são recusados com 422 invalid_input
Todos os Códigos de Erro

Preços

$0 por requisição com um plano Infinite ativo: as previsões da API não consomem créditos, sejam quais forem as configurações.

Outros provedores cobram a partir de ~$0.2205/s por um modelo comparável (em 1 de outubro de 2026).

Preços da API

JSON Schema

O mesmo esquema que a API disponibiliza em GET /v1/models/picassoia/seedance-2.5-lite.

JSON Schema
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81{
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "prompt": {
        "type": "string",
        "minLength": 1,
        "maxLength": 4000,
        "description": "What happens in the video."
      },
      "image": {
        "type": "string",
        "description": "Opening frame (image-to-video): an https URL or a data URL."
      },
      "last_frame_image": {
        "type": "string",
        "description": "Closing frame: an https URL or a data URL. Needs image as well."
      },
      "resolution": {
        "default": "480p",
        "description": "480p (up to 15 s) or 720p (up to 10 s).",
        "type": "string",
        "enum": [
          "480p",
          "720p"
        ]
      },
      "duration": {
        "default": 5,
        "description": "Length in seconds: 5, 10 or 15.",
        "type": "number",
        "enum": [
          5,
          10,
          15
        ]
      },
      "aspect_ratio": {
        "description": "Default: match_input_image when there is an image, 16:9 without one.",
        "type": "string",
        "enum": [
          "match_input_image",
          "1:1",
          "16:9",
          "9:16",
          "4:3",
          "3:4",
          "3:2",
          "2:3"
        ]
      },
      "save_audio": {
        "default": true,
        "description": "Keep the generated audio track.",
        "type": "boolean"
      },
      "seed": {
        "description": "Random seed. Set it to reproduce a result.",
        "type": "integer",
        "minimum": -9007199254740991,
        "maximum": 9007199254740991
      },
      "enhance_prompt": {
        "default": true,
        "description": "Let PicassoIA rewrite the prompt for a better video before generating it.",
        "type": "boolean"
      }
    },
    "required": [
      "prompt"
    ],
    "additionalProperties": false
  },
  "output_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "string",
    "format": "uri",
    "description": "URL of the generated video (MP4)."
  }
}