Seedance 2.5 EST ARRIVÉ · Nano Banana 2 ET GPT Image 2.5 ILLIMITÉS JUSQU'AU 15 novembreAméliorer
  • Logo Picasso IALogo Picasso IA
  • Accueil
  • Image
  • Vidéo
  • Musique
  • Voix
  • Chat
  • 3D
  • Influenceur IANEW
  • AI ToolkitNEW
  • SupercomputerNEW
  • APINEW
  • MCPNEW
  • Générations
  • Facturation
  • Support
  • Compte
Aller au Contenu
  • Explorer
  • Image
  • Vidéo
  • Chat
  • Illimités
  • Montage Vidéo
  • Lipsync
  • Améliorer
  • Musique
  • Voix
  • Transcrire
  • 3D
  • Agrandir
  • Supprimer Fond
Essai GratuitCommencer GratuitementNouveauCréerCommencer à CréerTarifsTarifs80% 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_…"
  • Accueil
  • Toolkit
  • Créations
  • Compte
Essai GratuitCommencer GratuitementNouveauCréerCommencer à CréerTarifsTarifs80% OFF
  • Explorer
  • Démarrage Rapide
  • Documentation
  • Tarifs
  • Clés API
  • MCP
  1. Explorer
  2. Vidéo
  3. PicassoIA Reference To Video
  4. Référence de l'API
IllimitéVidéo$0 par requête avec le forfait Infinite$0/ requête

Référence de l'API PicassoIA Reference To Video

Référence vers Vidéo

Référence vers vidéo avec audio, des clips de 1 à 15 secondes et une sortie en 480p ou 720p.

Voir la Documentation
1
2
3
4curl -s -X POST https://api.picassoia.com/v1/models/picassoia/picassoia-reference-to-video/predictions \
  -H "Authorization: Bearer $PICASSOIA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"prompt":"Image 1, the woman with red hair, walks into Image 2, the cafe, and sits by the window. Soft cafe ambience.","images":["https://example.com/woman.jpg","https://example.com/cafe.jpg"],"resolution":"720p"}}'
PlaygroundAPI

Sur cette Page

  • 1.Appeler l'API
  • Configuration
  • Paramètres de la Requête
  • Modes
  • Exemple de Requête
  • 2.Authentification
  • 3.File d'Attente et Interrogation
  • Envoi
  • Interrogation
  • Résultat
  • Annulation
  • 4.Sortie
  • 5.Erreurs et Limites
  • 6.Tarifs
  • 7.JSON Schema

PicassoIA Reference To Video utilise l'identifiant de modèle picassoia/picassoia-reference-to-video. Référence vers vidéo avec audio, des clips de 1 à 15 secondes et une sortie en 480p ou 720p.

Appeler l'API

Envoyez vos requêtes à https://api.picassoia.com/v1/models/picassoia/picassoia-reference-to-video/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_…"

Paramètres de la Requête

promptstringObligatoire
Par DéfautAucun
Ce que la sortie doit montrer. Jusqu'à 8000 caractères.
imagesarray
Par DéfautAucun
Les images à modifier ou à combiner. Désignez-les dans le prompt par image 1, image 2, etc. De 1 à 9 images. Au moins l'un de ces champs est requis : images ou video. Une image PNG, JPEG ou WebP, sous forme d'URL https publique ou d'URL de données de 5 Mo maximum.
videostring
Par DéfautAucun
La vidéo sur laquelle travailler. Au moins l'un de ces champs est requis : images ou video. Une vidéo MP4, MOV ou WebM de 50 Mo maximum, sous forme d'URL https publique.
audiostring
Par DéfautAucun
L'audio sur lequel travailler. Un fichier MP3, WAV, M4A, AAC, OGG ou FLAC de 20 Mo maximum, sous forme d'URL https publique.
resolutionstring
Par Défaut"480p"
La taille de la sortie. Options : 480p et 720p.
durationinteger
Par Défaut5
La durée du clip, en secondes. De 1 à 15.
aspect_ratiostring
Par Défaut"match_input_image" / "16:9"
La forme de la sortie. Quand match_input_image est proposé, il conserve les proportions de l'image d'entrée, ou de la première s'il y en a plusieurs. Options : match_input_image, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3 et 1:1. Si vous ne l'envoyez pas : match_input_image quand video est envoyé, 16:9 sinon.
video_strengthstring
Par Défaut"high"
À quel point le clip suit la vidéo de référence. Options : high, medium et low. Nécessite le champ video.
save_audioboolean
Par Défauttrue
Conserve la piste audio générée.
seedinteger
Par DéfautAucun
Définissez-la pour reproduire un résultat ; omettez-la pour un résultat aléatoire.
enhance_promptboolean
Par Défauttrue
Picasso IA réécrit votre prompt pour un meilleur résultat. Votre prompt d'origine reste dans l'entrée.
ParamètreTypeObligatoirePar DéfautDescription
promptstringOuiObligatoireAucunCe que la sortie doit montrer. Jusqu'à 8000 caractères.
imagesarrayNonAucunLes images à modifier ou à combiner. Désignez-les dans le prompt par image 1, image 2, etc. De 1 à 9 images. Au moins l'un de ces champs est requis : images ou video. Une image PNG, JPEG ou WebP, sous forme d'URL https publique ou d'URL de données de 5 Mo maximum.
videostringNonAucunLa vidéo sur laquelle travailler. Au moins l'un de ces champs est requis : images ou video. Une vidéo MP4, MOV ou WebM de 50 Mo maximum, sous forme d'URL https publique.
audiostringNonAucunL'audio sur lequel travailler. Un fichier MP3, WAV, M4A, AAC, OGG ou FLAC de 20 Mo maximum, sous forme d'URL https publique.
resolutionstringNon"480p"La taille de la sortie. Options : 480p et 720p.
durationintegerNon5La durée du clip, en secondes. De 1 à 15.
aspect_ratiostringNon"match_input_image" / "16:9"La forme de la sortie. Quand match_input_image est proposé, il conserve les proportions de l'image d'entrée, ou de la première s'il y en a plusieurs. Options : match_input_image, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3 et 1:1. Si vous ne l'envoyez pas : match_input_image quand video est envoyé, 16:9 sinon.
video_strengthstringNon"high"À quel point le clip suit la vidéo de référence. Options : high, medium et low. Nécessite le champ video.
save_audiobooleanNontrueConserve la piste audio générée.
seedintegerNonAucunDéfinissez-la pour reproduire un résultat ; omettez-la pour un résultat aléatoire.
enhance_promptbooleanNontruePicasso IA réécrit votre prompt pour un meilleur résultat. Votre prompt d'origine reste dans l'entrée.

Modes

Le mode dépend des fichiers que vous envoyez avec le prompt, le cas échéant. Tous les modes utilisent le même point de terminaison.

ModesFichiers
Référence vers Vidéoimagesvideoaudio

Exemple de Requête

Référence vers Vidéo

cURL
1
2
3
4curl -s -X POST https://api.picassoia.com/v1/models/picassoia/picassoia-reference-to-video/predictions \
  -H "Authorization: Bearer $PICASSOIA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"prompt":"Image 1, the woman with red hair, walks into Image 2, the cafe, and sits by the window. Soft cafe ambience.","images":["https://example.com/woman.jpg","https://example.com/cafe.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
27
28
29const 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: "Image 1, the woman with red hair, walks into Image 2, the cafe, and sits by the window. Soft cafe ambience.",
  images: [
    "https://example.com/woman.jpg",
    "https://example.com/cafe.jpg"
  ]
}

const created = await fetch(`${API}/models/picassoia/picassoia-reference-to-video/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
21
22
23import os, time, requests

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

payload = {"input": {
    "prompt": "Image 1, the woman with red hair, walks into Image 2, the cafe, and sits by the window. Soft cafe ambience.",
    "images": [
        "https://example.com/woman.jpg",
        "https://example.com/cafe.jpg",
    ],
}}

response = requests.post(f"{API}/models/picassoia/picassoia-reference-to-video/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"])

Authentification

Chaque requête doit comporter une API key dans l'en-tête Authorization, sous forme de jeton Bearer. Créez vos clés dans votre compte ; la clé complète n'est affichée qu'une seule fois.

HTTP
1Authorization: Bearer $PICASSOIA_API_KEY

Gérer les Clés API

File d'Attente et Interrogation

Chaque prédiction se déroule en trois étapes : la créer, l'interroger jusqu'à ce qu'elle soit terminée, puis lire le résultat.

Envoi

L'API répond 201, généralement en quelques secondes, avec la prédiction à l'état starting, une estimation dans eta et l'URL à interroger dans urls.get. Si la prédiction échoue immédiatement, par exemple quand le filtre de sécurité refuse l'entrée, la réponse reste 201, avec la prédiction à l'état failed et son champ error.

cURL
1
2
3
4curl -s -X POST https://api.picassoia.com/v1/models/picassoia/picassoia-reference-to-video/predictions \
  -H "Authorization: Bearer $PICASSOIA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"prompt":"Image 1, the woman with red hair, walks into Image 2, the cafe, and sits by the window. Soft cafe ambience.","images":["https://example.com/woman.jpg","https://example.com/cafe.jpg"]}}'
Node.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21const API = 'https://api.picassoia.com/v1'
const headers = {
  Authorization: `Bearer ${process.env.PICASSOIA_API_KEY}`,
  'Content-Type': 'application/json',
}

const input = {
  prompt: "Image 1, the woman with red hair, walks into Image 2, the cafe, and sits by the window. Soft cafe ambience.",
  images: [
    "https://example.com/woman.jpg",
    "https://example.com/cafe.jpg"
  ]
}
const created = await fetch(`${API}/models/picassoia/picassoia-reference-to-video/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
13
14
15
16
17import os, requests

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

payload = {"input": {
    "prompt": "Image 1, the woman with red hair, walks into Image 2, the cafe, and sits by the window. Soft cafe ambience.",
    "images": [
        "https://example.com/woman.jpg",
        "https://example.com/cafe.jpg",
    ],
}}
response = requests.post(f"{API}/models/picassoia/picassoia-reference-to-video/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
Réponse · 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
30
31
32
33{
  "id": "api_3f9c2b7e8d1a4c6f9e0b1a2c3d4e5f60",
  "model": "picassoia/picassoia-reference-to-video",
  "input": {
    "prompt": "Image 1, the woman with red hair, walks into Image 2, the cafe, and sits by the window. Soft cafe ambience.",
    "images": [
      "https://example.com/woman.jpg",
      "https://example.com/cafe.jpg"
    ],
    "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
  }
}

Interrogation

Interrogez de nouveau urls.get après eta.next_poll_in_seconds : à la moitié du temps estimé, lorsque le temps estimé est atteint, puis toutes les 2 secondes.

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()
Réponse · 200 OK · en cours
1
2
3
4
5
6
7
8
9{
  "id": "api_3f9c2b7e8d1a4c6f9e0b1a2c3d4e5f60",
  "status": "processing",
  "output": null,
  "eta": {
    "seconds": 30,
    "next_poll_in_seconds": 30
  }
}

Résultat

Quand status vaut succeeded, output contient le résultat. Une prédiction échouée indique sa raison dans error, et une prédiction annulée a été arrêtée avant la fin. Ces trois états sont définitifs.

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"])
Réponse · 200 OK · terminée
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
}

Annulation

POST urls.cancel arrête une prédiction encore en file d'attente (tout modèle) ou une image encore en cours de génération ; pour une vidéo déjà en cours de génération, la réponse est 409 not_cancelable.

Les identifiants, horodatages et URL de ces réponses sont des exemples : les vôtres auront leurs propres valeurs.

Sortie

Quand la prédiction réussit, output est l'URL d'une vidéo MP4.

Erreurs et Limites

Les erreurs sont des « problem details » JSON avec un code stable, et une erreur 422 nomme chaque champ en cause.

Limites

  • 5 prédictions en file d'attente ou en cours d'exécution à la fois par compte
  • Corps de requête jusqu'à 10 Mo ; images en URL de données jusqu'à 5 Mo chacune
  • Prompt jusqu'à 8000 caractères
  • Les champs inconnus sont refusés avec 422 invalid_input
Tous les Codes d'Erreur

Tarifs

$0 par requête avec un forfait Infinite actif : les prédictions de l'API ne consomment aucun crédit, quels que soient les paramètres.

Tarifs de l'API

JSON Schema

Le même schéma que celui que l'API renvoie via GET /v1/models/picassoia/picassoia-reference-to-video.

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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96{
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "prompt": {
        "type": "string",
        "minLength": 1,
        "maxLength": 8000,
        "description": "What happens in the video and what is heard. Name the references: \"Image 1\", \"Video 1\", \"Audio 1\"."
      },
      "images": {
        "description": "Up to 9 reference images (characters, objects, places), in the order of \"Image 1\", \"Image 2\"… At least one image or a video is required.",
        "maxItems": 9,
        "type": "array",
        "items": {
          "type": "string",
          "description": "A reference image: an https URL or a data URL."
        }
      },
      "video": {
        "type": "string",
        "description": "Reference video: an https URL (MP4, MOV or WebM, up to 50 MB; its first 15 s are used). The clip follows its movement, camera and timing, keeps its sound unless an audio is sent, and lasts as long as the video, or duration if that is shorter. To put your own character in it, say who replaces whom (\"Image 1 replaces the woman in Video 1\") and what they do."
      },
      "audio": {
        "type": "string",
        "description": "Reference audio: an https URL (MP3, WAV, M4A, AAC, OGG or FLAC, up to 20 MB). A voice a character says with lip sync (\"Image 1 says Audio 1\"), or music. It is heard as it is. Lip sync is most exact in clips of up to 5 s."
      },
      "resolution": {
        "default": "480p",
        "description": "480p or 720p, both up to 15 s.",
        "type": "string",
        "enum": [
          "480p",
          "720p"
        ]
      },
      "duration": {
        "default": 5,
        "description": "Length in seconds.",
        "type": "integer",
        "minimum": 1,
        "maximum": 15
      },
      "aspect_ratio": {
        "description": "Default: 16:9, or the reference video's when there is one. match_input_image follows the video if there is one, otherwise the first image.",
        "type": "string",
        "enum": [
          "match_input_image",
          "16:9",
          "9:16",
          "4:3",
          "3:4",
          "3:2",
          "2:3",
          "1:1"
        ]
      },
      "video_strength": {
        "description": "Only with a video: how closely the clip follows it. high (the default) follows its camera, composition and timing most closely; medium and low follow it more loosely and render faster.",
        "type": "string",
        "enum": [
          "high",
          "medium",
          "low"
        ]
      },
      "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)."
  }
}