SeeGen AI API
Bienvenue sur l'API SeeGen AI — une seule API pour générer des vidéos cinématographiques et des images haute fidélité avec plusieurs modèles de pointe.
Aperçu
SeeGen AI est une API de génération unifiée : un ensemble cohérent de points de terminaison pour exécuter plusieurs des principaux modèles d'IA vidéo et image. Choisissez un modèle avec le paramètre model — l'authentification, la soumission des tâches, l'interrogation du statut et les webhooks fonctionnent de la même façon pour tous.
Modèles actuellement disponibles :
- Vidéo — 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) - Image — 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 de base : https://seegen.ai/api/v1
Modèle : passez l'un des alias ci-dessus dans le champ model (par ex. sd2, gpt-image-2).
Pourquoi SeeGen AI ?
D'autres raisons de choisir SeeGen AI :
- Plus que Seedance 2.0 : Wan 3.0, Nano Banana, ChatGPT Image, et plus encore.
- Aucun abonnement requis — payez à l'usage
- Accès rapide aux derniers modèles
- Assistance client 24/7
- Assistance pour les questions officielles liées aux modèles
- Accès à la console pour les développeurs
- Ouvert aux entreprises comme aux particuliers
Tarifs
API Pack
125,000 crédits ($0.004/crédit)
~781 vidéos de 5s
API-XL Pack
500,000 crédits ($0.004/crédit)
~3,125 vidéos de 5s
Seedance 2.0 / Fast / Mini / 2.5 : calcul du coût
Soit out = output_seconds et in = la somme des ⌈duration⌉ de chaque vidéo d'entrée (chacune arrondie au supérieur, minimum out × 2/3). Seedance 2.5 suit le même calcul que Seedance 2.0. Le tarif de base de chaque modèle correspondant est multiplié par 1.5 puis arrondi avant l'application de la formule de la tâche (1080P est natif sur sd2.5, soit 2,5× son tarif 720P) ; les suppléments d'upscale indépendants du modèle restent à +30 / +40 crédits par seconde de sortie pour 2K / 4K (+20 pour 1080P uniquement sur sd2-fast / sd2-mini).
| Sans entrée vidéo | Avec entrée vidéo | |
|---|---|---|
| sd2.5: 480P | 30 × out | 23 × (out + in) |
| sd2.5: 720P | 60 × out | 45 × (out + in) |
| sd2.5: 1080P (natif) | 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 (natif) | 100 × out | 75 × (out + in) |
| sd2-pro: 2K | (40 + 30) × out | 30 × (out + in) + 30 × out |
| sd2-pro: 4K (natif) | 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 |
Remarque : sd2-pro en 1080P et 4K est une sortie native officielle (4K = 5× le tarif 720P) ; sd2-pro en 2K et l'ensemble de sd2-fast / sd2-mini en 1080P/2K/4K sont upscalés par SeeGen AI. sd2.5 génère nativement en 480P/720P/1080P (1080P = 2,5× le tarif 720P, sans supplément d'upscale) et utilise l'upscale automatique pour 2K/4K. Demandez n'importe quel niveau via outputResolution: "4k" (par ex. "2k" / "4k" ; la passerelle choisit automatiquement entre natif et upscale — seuls le prix et le libellé Native diffèrent). sd2-mini est facturé à 50 % du prix de sd2-pro, le niveau le moins cher. Seedance 2.5 reprend l'arrondi de durée par vidéo, le plancher de durée d'entrée minimale et le calcul d'upscale de Seedance 2.0. Le tarif de base de chaque modèle correspondant est multiplié par 1.5 puis arrondi avant le calcul de la tâche (par ex. 1080P avec vidéo : 75 × 1.5 → 113). Les suppléments d'upscale 2K / 4K, indépendants du modèle, restent à +30 / +40 crédits par seconde de sortie. En cas d'échec de l'upscale, la tâche terminée renvoie le résultat de repli en 720P sans remboursement partiel de crédits.
- sd2.5 480P, sortie de 4 secondes sans vidéo d'entrée : 120 crédits
- sd2.5 720P, sortie de 5 secondes sans vidéo d'entrée : 300 crédits
- sd2.5 720P, sortie de 5 secondes + vidéo d'entrée de 3 secondes (minimum d'entrée de 4 secondes) : 405 crédits
- sd2.5 1080P natif, sortie de 5 secondes sans vidéo d'entrée : 750 crédits
- sd2.5 1080P natif, sortie de 5 secondes + vidéo d'entrée de 5 secondes : 1,130 crédits
Wan 3.0 Video / Prime — calcul du coût
Soit out = secondes de sortie et in = somme des secondes des vidéos de référence, chaque clip étant arrondi à la seconde supérieure. Sans vidéo de référence : credits = out × rate. Avec vidéo de référence : credits = (out + in) × rate. Utilisez le tarif correspondant à votre modèle et à votre résolution dans le tableau ci-dessous.
| Modèle | Sortie native | Crédits / s | Exemple de 2 s |
|---|---|---|---|
| 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 |
Remarque : 480P, 720P et 1080P sont des sorties natives ; l’upscale 2K/4K n’est pas pris en charge. Les images et l’audio de référence n’ajoutent aucune durée facturable. Désactiver l’audio généré ne change pas le prix. La durée totale des vidéos de référence ajoutée à celle de la sortie ne doit pas dépasser 30 secondes.
- wan3.0-video 480P, sortie de 2 secondes sans vidéo en entrée : 2 × 16 = 32 crédits
- wan3.0-video-prime 480P, sortie de 2 secondes sans vidéo en entrée : 2 × 22 = 44 crédits
- wan3.0-video 720P, sortie de 5 secondes + vidéo de référence de 3 secondes : (5 + 3) × 32 = 256 crédits
- wan3.0-video-prime 720P, sortie de 5 secondes + vidéo de référence de 2.2 secondes (arrondie à 3 secondes) : (5 + 3) × 45 = 360 crédits
🎉 Offre à durée limitée : 33% de réduction sur toute la génération d'images — tous les prix des images ci-dessous sont déjà réduits.
GPT Image 2.5 Flare / Sunburst
| Résolution | Qualité moyenne | Qualité élevée | Qualité XHigh | Qualité Max |
|---|---|---|---|---|
| 1k | 35 | 1320 | 2335 | 5075 |
| 2k (par défaut) | 710 | 2335 | 3755 | 84125 |
| 4k | 1015 | 4060 | 67100 | 154230 |
Chaque tâche produit 1 image. Soumettez N tâches pour obtenir N variantes. Les tâches échouées remboursent automatiquement les crédits.
gpt-image-2 : crédits par image
| Résolution | Qualité moyenne | Qualité élevée |
|---|---|---|
| 1k | 1015 | 4770 |
| 2k (par défaut) | 2335 | 84125 |
| 4k | 4060 | 154230 |
Chaque tâche produit 1 image. Soumettez N tâches pour obtenir N variantes. Les tâches échouées remboursent automatiquement les crédits.
nano-banana-2 et nano-banana-pro : crédits par image
| Résolution | nano-banana-2 | nano-banana-pro |
|---|---|---|
| 1k | 2030 | 4060 |
| 2k (par défaut) | 3045 | 4060 |
| 4k | 4770 | 74110 |
Chaque tâche produit 1 image. Soumettez N tâches pour obtenir N variantes. Les tâches échouées remboursent automatiquement les crédits.
Seedream 5.0 : crédits par image
| Modèle / niveau | Crédits |
|---|---|
| Lite 2k / 4k (tarif forfaitaire) | 710 |
| Pro 1k (par défaut) | 1015 |
| Pro 2k | 2030 |
Chaque tâche produit 1 image. Soumettez N tâches pour obtenir N variantes. Les tâches échouées remboursent automatiquement les crédits. Les images de référence ne sont pas facturées séparément.
Consultez votre solde : GET /api/v1/account/credits
Recharge automatique pour les comptes API
Votre clé API et le tableau de bord SeeGen AI utilisent le même solde de crédits au niveau du compte. La recharge automatique permet de maintenir un solde disponible pour les charges de travail API, mais elle doit être configurée depuis la page Credits ; il n’existe actuellement aucune API de configuration distincte.
Configurez la recharge automatique depuis Credits :
- Ouvrez Credits, choisissez le solde minimum à maintenir et sélectionnez un forfait de recharge.
- Autorisez votre moyen de paiement une seule fois. Cette étape enregistre l’autorisation et ne débite pas la carte.
- Une fois l’autorisation flexible active, vous pouvez modifier le solde minimum ou le forfait depuis Credits sans nouvelle autorisation. Un compte utilisant l’ancienne autorisation à prix fixe peut nécessiter une mise à niveau unique.
Fonctionnement avec les requêtes API
- Lorsqu’une tâche API est envoyée avec succès, déduit des crédits et fait passer le solde d’un niveau supérieur ou égal au seuil à un niveau inférieur, SeeGen AI place une recharge automatique en file d’attente de manière asynchrone. L’envoi de la tâche n’attend pas la recharge.
- Si le compte ne dispose pas d’assez de crédits avant l’envoi, l’API renvoie HTTP 402 et ne crée aucune tâche. Cette requête refusée ne déclenche pas la recharge automatique et n’est pas retentée automatiquement ; réessayez lorsque des crédits sont disponibles.
- Consultez le solde actuel avec
GET /api/v1/account/credits. La progression et les échecs de la recharge automatique apparaissent dans Credits et Payment History, et les résultats importants sont envoyés à l’adresse e-mail de facturation du compte. Il n’existe actuellement aucun webhook ni API de statut de recharge automatique destiné aux clients.
Bonus de recharge automatique pour les forfaits API
- API Pack à $500.00 : 127,500 crédits (125,000 + 2 % de bonus).
- API-XL Pack à $2,000.00 : 525,000 crédits (500,000 + 5 % de bonus).
- L’achat manuel de ces forfaits ajoute toujours respectivement 125,000 et 500,000 crédits.
Authentification
Toutes les requêtes API nécessitent un jeton Bearer dans l'en-tête Authorization. Vous pouvez créer et gérer vos clés API depuis les Paramètres du compte.
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://seegen.ai/api/v1/account/creditsImportant : votre clé API n'est affichée qu'une seule fois, au moment de sa création. Conservez-la en lieu sûr. Vous pouvez créer jusqu'à 10 clés API par compte.
Démarrage rapide
Générez une vidéo en deux étapes : créez une tâche, puis interrogez le résultat.
# 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
donePoints de terminaison
/api/v1/jobs/createTaskCréer une nouvelle tâche de génération vidéo
/api/v1/jobs/queryTaskInterroger le statut et le résultat d'une tâche
/api/v1/account/creditsConsulter votre solde de crédits
/api/v1/assets/uploadImporter une ressource (image/vidéo/audio) pour vérification
/api/v1/assets/statusInterroger le statut de vérification d'une ressource
/api/v1/assets/listLister vos ressources importées
/api/v1/upscale/createSoumettre une tâche d'upscale vidéo autonome (720p / 1080p / 2K / 4K)
/api/v1/upscale/queryInterroger le statut et le résultat d'une tâche d'upscale autonome
Choisir un modèle (vidéo)
Choisissez un modèle vidéo selon le workflow, la résolution native, la vitesse et le prix ; combinez ce tableau avec la section Tarifs pour estimer le coût.
| Modèle | T2V | I2V | First–Last | Multi-Ref | R2V | 1080p natif | 4K natif | Audio | 720p / 5s |
|---|---|---|---|---|---|---|---|---|---|
| sd2.5 | ✓ | ✓ | ✓ | ✓ | — | ✓ | upscale | ✓ | 300 crédits |
| sd2 | ✓ | ✓ | ✓ | ✓ | — | ✓ | ✓ | ✓ | 200 crédits |
| sd2-fast | ✓ | ✓ | ✓ | ✓ | — | upscale | upscale | ✓ | 160 crédits |
| sd2-mini | ✓ | ✓ | ✓ | ✓ | — | upscale | upscale | ✓ | 100 crédits |
| wan3.0-video-prime | ✓ | ✓ | ✓ | ✓ | — | ✓ | — | ✓ | 225 crédits |
| wan3.0-video | ✓ | ✓ | ✓ | ✓ | — | ✓ | — | ✓ | 160 crédits |
T2V = Texte vers vidéo · I2V = Image vers vidéo (première image) · First–Last = première + dernière image clé · Multi-Ref = références mixtes image / vidéo / audio · R2V = 1 à 9 images de référence avec marqueurs de personnage
Seedance 2.0 / 2.0 Fast / 2.0 Mini / Seedance 2.5
Texte vers vidéo
Génère une vidéo à partir d'un prompt textuel. Aucune image requise.
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| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| prompt | string | Oui | Description textuelle de la vidéo à générer. 20000 caractères max. |
| duration | string | Non | Durée de la vidéo : de "4s" à "15s" ; sd2.5 prend en charge jusqu'à "30s" (par défaut : "5s") |
| resolution | string | Non | Format d'image via resolution. Options : auto (par défaut), 720x720, 720x960, 960x720, 1280x720, 720x1280, 1280x540 |
| outputResolution | string | Non | Niveau de résolution de sortie : "480p", "720p" (par défaut), "1080p", "2k" ou "4k". Les résolutions natives varient selon le modèle : Seedance 2.0 Pro : 480p/720p/1080p/4k ; Seedance 2.0 Fast et Mini : 480p/720p ; Seedance 2.5 : 480p/720p/1080p. Les niveaux supérieurs sont automatiquement upscalés. |
| seed | int | Non | Graine de reproductibilité : -1 ou à omettre pour un résultat aléatoire ; 0–2147483647 pour une valeur fixe. |
| generateAudio | boolean | Non | Indique si une piste audio synchronisée doit être synthétisée. Par défaut true ; passez false pour une vidéo muette. |
Image vers vidéo
Anime une image statique pour en faire une vidéo. Fournissez une URL d'image comme image de départ.
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| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| urls | string[] | Oui | Tableau avec une URL d'image (l'image source). Prend en charge les URL HTTP et les références de ressource (par ex. "asset://asset-20260326-abc123") |
| prompt | string | Non | Description textuelle du mouvement souhaité |
| duration | string | Non | Durée de la vidéo : de "4s" à "15s" ; sd2.5 prend en charge jusqu'à "30s" (par défaut : "5s") |
| outputResolution | string | Non | Niveau de résolution de sortie : "480p", "720p" (par défaut), "1080p", "2k" ou "4k". Les résolutions natives varient selon le modèle : Seedance 2.0 Pro : 480p/720p/1080p/4k ; Seedance 2.0 Fast et Mini : 480p/720p ; Seedance 2.5 : 480p/720p/1080p. Les niveaux supérieurs sont automatiquement upscalés. |
| seed | int | Non | Graine de reproductibilité : -1 ou à omettre pour un résultat aléatoire ; 0–2147483647 pour une valeur fixe. |
| generateAudio | boolean | Non | Indique si une piste audio synchronisée doit être synthétisée. Par défaut true ; passez false pour une vidéo muette. |
Première et dernière image
Définissez l'image de départ et l'image finale ; le modèle génère la transition entre les deux. Utilise 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| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| urls | string[] | Oui | Tableau avec exactement 2 URL d'image : [first_frame, last_frame]. Prend en charge les URL HTTP et les références de ressource (par ex. "asset://asset-20260326-abc123") |
| videoInputMode | string | Oui | Doit être "keyframe" |
| prompt | string | Non | Description textuelle guidant la transition |
| duration | string | Non | Durée de la vidéo : de "4s" à "15s" ; sd2.5 prend en charge jusqu'à "30s" (par défaut : "5s") |
| outputResolution | string | Non | Niveau de résolution de sortie : "480p", "720p" (par défaut), "1080p", "2k" ou "4k". Les résolutions natives varient selon le modèle : Seedance 2.0 Pro : 480p/720p/1080p/4k ; Seedance 2.0 Fast et Mini : 480p/720p ; Seedance 2.5 : 480p/720p/1080p. Les niveaux supérieurs sont automatiquement upscalés. |
| seed | int | Non | Graine de reproductibilité : -1 ou à omettre pour un résultat aléatoire ; 0–2147483647 pour une valeur fixe. |
| generateAudio | boolean | Non | Indique si une piste audio synchronisée doit être synthétisée. Par défaut true ; passez false pour une vidéo muette. |
Multi-Référence
Utilisez plusieurs images, vidéos et fichiers audio de référence pour guider la génération. Utilise videoInputMode: "reference". Pour sd2.5, il s'agit de la sous-tâche de référence par défaut ; voir Édition et extension vidéo ci-dessous pour éditer ou poursuivre une vidéo existante.
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| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| urls | string[] | Non | URL d'images de référence (max 9). Prend en charge les URL HTTP et les références de ressource (par ex. "asset://asset-20260326-abc123") |
| videoUrls | string[] | Non | URI asset:// des vidéos de référence — à importer d'abord via /api/v1/assets/upload ; les URL externes sont refusées. sd2 : 3 vidéos max, chacune ≤15s. sd2.5 : jusqu'à 10 vidéos, chacune de 2–30s et ≤200MB, durée totale de référence ≤30s, entrées de 480p à 4K prises en charge. |
| audioUrls | string[] | Non | Entrées audio de référence. sd2 / sd2-fast / sd2-mini : jusqu'à 3 fichiers audio, chacun de 2–15s, total ≤15s — l'audio ne peut pas être l'unique référence sur ces modèles (ajoutez au moins une image ou une vidéo). sd2.5 : jusqu'à 10 fichiers, ≤15MB et 2–30s chacun, total ≤30s, et l'entrée audio seule est prise en charge. |
| videoInputMode | string | Oui | Doit être "reference" |
| prompt | string | Non | Description textuelle |
| duration | string | Non | Durée de la vidéo : de "4s" à "15s" ; sd2.5 prend en charge jusqu'à "30s" (par défaut : "5s") |
| resolution | string | Oui | Obligatoire en mode référence. Options : 720x720, 720x960, 960x720, 1280x720, 720x1280, 1280x540 |
| outputResolution | string | Non | Niveau de résolution de sortie : "480p", "720p" (par défaut), "1080p", "2k" ou "4k". Les résolutions natives varient selon le modèle : Seedance 2.0 Pro : 480p/720p/1080p/4k ; Seedance 2.0 Fast et Mini : 480p/720p ; Seedance 2.5 : 480p/720p/1080p. Les niveaux supérieurs sont automatiquement upscalés. |
| seed | int | Non | Graine de reproductibilité : -1 ou à omettre pour un résultat aléatoire ; 0–2147483647 pour une valeur fixe. |
| generateAudio | boolean | Non | Indique si une piste audio synchronisée doit être synthétisée. Par défaut true ; passez false pour une vidéo muette. |
Contraintes de référence
- Max 9 images, 3 vidéos, 3 fichiers audio
- Max 12 fichiers au total, tous types confondus
- Chaque vidéo/audio doit durer ≤ 15 secondes
- Les images doivent mesurer au moins 400px sur le côté le plus court
- sd2.5 : max 30 images, 10 vidéos, 10 fichiers audio, et 50 au total ; les totaux vidéo et audio sont chacun ≤ 30 secondes
Édition et extension vidéo
sd2.5 divise la génération basée sur des références en trois sous-tâches. Omettez mode pour une génération de référence classique, définissez mode: "edit" pour éditer une vidéo existante, ou mode: "extend" pour la prolonger. Les deux nécessitent au moins une vidéo dans videoUrls et produisent toujours une sortie au format d'image de la vidéo source.
Placez la vidéo que vous souhaitez modifier en premier dans videoUrls et désignez-la comme « Video 1 » dans votre prompt. edit force la durée de sortie à correspondre à cette première vidéo (source), qui doit durer entre 4 et 30s ; tout duration envoyé est donc ignoré. La facturation utilise la durée de la vidéo source comme durée de sortie, plus toutes les vidéos de référence en tant qu'entrée. extend accepte 1 à 3 clips assemblés dans l'ordre, et le duration demandé correspond à la durée de sortie de cette génération (sans rapport avec la durée source) — facturé comme une génération de référence classique.
Les modèles de la famille 2.0 (sd2 / sd2-fast / sd2-mini) acceptent aussi mode: "edit" et mode: "extend" : ils déduisent l'opération de votre prompt (décrivez explicitement l'édition ou la poursuite), le format d'image suit la vidéo source, et duration reste sous votre contrôle avec une facturation classique.
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| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| mode | string | Non | "edit" ou "extend". À omettre pour une génération de référence classique. |
| videoUrls | string[] | Oui | Au moins une vidéo ; la première est la source (« Video 1 ») — la durée de sortie et la facturation de l'édition en dépendent. Les vidéos suivantes sont des références supplémentaires (edit) ou des clips additionnels assemblés dans l'ordre (extend, max 3). |
| urls | string[] | Non | Images d'annotation/référence facultatives. |
| source_frame_timestamps_ms | number[] | Non | Uniquement avec mode "edit". Un horodatage non négatif de la vidéo source, en millisecondes, par image dans urls. |
| outputResolution | string | Non | Niveau de résolution de sortie : "480p", "720p" (par défaut), "1080p", "2k" ou "4k". Les résolutions natives varient selon le modèle : Seedance 2.0 Pro : 480p/720p/1080p/4k ; Seedance 2.0 Fast et Mini : 480p/720p ; Seedance 2.5 : 480p/720p/1080p. Les niveaux supérieurs sont automatiquement upscalés. |
Référence des paramètres Seedance
Référence complète de tous les paramètres inputs pour les modèles sd2 / sd2-fast / sd2-mini / sd2.5.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| prompt | string | Non | Description textuelle (obligatoire pour texte vers vidéo, facultative pour les autres modes). 20000 caractères max. |
| urls | string[] | Non | URL d'images. Prend en charge les URL HTTP et les références de ressource (par ex. "asset://asset-20260326-abc123"). Correspond en interne à uploadedUrls. |
| videoUrls | string[] | Non | URI asset:// de vidéos de référence (mode référence uniquement). Doivent être importées au préalable via /api/v1/assets/upload — les URL externes sont refusées. |
| audioUrls | string[] | Non | URL audio de référence (mode référence uniquement). L'entrée audio seule est prise en charge sur sd2.5 ; sd2 / sd2-fast / sd2-mini exigent au moins une image ou une vidéo en plus de l'audio. |
| duration | string | Non | De "4s" à "15s" normalement ; sd2.5 prend en charge jusqu'à "30s". Par défaut : "5s" |
| resolution | string | Non | Format d'image : auto (par défaut) | 720x720 | 720x960 | 960x720 | 1280x720 | 720x1280 | 1280x540 |
| outputResolution | string | Non | Niveau de résolution de sortie : "480p", "720p" (par défaut), "1080p", "2k" ou "4k". Les résolutions natives varient selon le modèle : Seedance 2.0 Pro : 480p/720p/1080p/4k ; Seedance 2.0 Fast et Mini : 480p/720p ; Seedance 2.5 : 480p/720p/1080p. Les niveaux supérieurs sont automatiquement upscalés. |
| videoInputMode | string | Non | "keyframe" (par défaut) ou "reference" |
| mode | string | Non | Sous-tâche du mode référence (tous modèles Seedance) : à omettre pour une génération de référence classique, "edit" pour éditer la première vidéo de videoUrls, "extend" pour prolonger 1 à 3 clips. Voir Édition et extension vidéo. |
| source_frame_timestamps_ms | number[] | Non | Édition vidéo sd2.5 uniquement : un horodatage en millisecondes, non négatif, par image d'annotation. |
| seed | int | Non | Graine aléatoire pour la reproductibilité. -1 ou à omettre pour un tirage aléatoire côté serveur. Une même graine + mêmes entrées produit un résultat très proche (non identique au bit près, en raison du non-déterminisme du GPU). Plage : -1 à 2147483647. |
| generateAudio | boolean | Non | Indique si une piste audio (voix, effets sonores, musique de fond) synchronisée avec la vidéo doit être synthétisée. Par défaut true. Réglez sur false pour produire une vidéo muette — légèrement plus rapide, utile si vous prévoyez un doublage séparé. |
| bitrateMode | string | Non | Niveau de bitrate de sortie à résolution égale : "standard" (par défaut) ou "high". "high" préserve davantage de détails et réduit le banding/le blocking, pour une taille de fichier ~3-5× plus importante — sans changer la résolution ni le prix. |
| upscaleResolution | string | Non | (Obsolète) Champ scindé hérité, toujours accepté pour la compatibilité ascendante. Les nouvelles intégrations doivent utiliser outputResolution, qui accepte désormais directement "2k" / "4k". Si les deux sont envoyés, upscaleResolution est prioritaire — sauf sur les modèles avec 1080p natif (Seedance2 Pro / Seedance 2.5), où upscaleResolution:"1080p" est résolu en 1080p natif (facturé au tarif natif). |
Champs de niveau supérieur de la requête : model (obligatoire), inputs (obligatoire), callBackUrl (URL de webhook facultative).
Ressources Seedance
Les ressources Seedance sont des fichiers image, vidéo et audio qui passent par le processus de vérification ByteDance Volcano avant de pouvoir être utilisés dans les tâches de génération vidéo Seedance. Importez une ressource, attendez qu’elle passe à ACTIVE, puis utilisez son URL asset:// dans la tâche Seedance.
Remarque : les ressources image et vidéo représentant de vraies personnes nécessitent une vérification officielle, généralement effectuée en quelques secondes. Une fois approuvées, elles peuvent être utilisées directement comme références. Sans vérification, la génération peut échouer.
Importer une ressource
Deux méthodes d'import : envoyer directement un fichier local (multipart/form-data), ou soumettre une URL HTTPS accessible publiquement. Dans les deux cas, la ressource est traitée et vérifiée automatiquement.
Méthode A — import de fichier direct (multipart/form-data)
Envoyez un fichier local sans besoin d'hébergeur d'images. Le type de média est détecté à partir des octets du fichier (l'extension du nom de fichier n'est pas fiable). Autorisés : images (jpg/png/webp/gif/bmp/tiff/heic), vidéos (mp4/mov), audio (wav/mp3). Max 50MB par fichier (image ≤30MB, vidéo ≤50MB, audio ≤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| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| file | file | Oui | Le fichier local (champ de formulaire multipart). Le type de média est détecté à partir du contenu. |
| name | string | Non | Nom de la ressource (64 caractères max) |
Méthode B — par URL (application/json)
Si le fichier est déjà hébergé à une URL HTTPS publique.
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| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| url | string | Oui | URL HTTPS accessible publiquement du fichier à importer |
| type | string | Oui | "IMAGE", "AUDIO" ou "VIDEO" |
| name | string | Non | Nom de la ressource (64 caractères max) |
Réponse d'import
{
"assetId": 123,
"volcAssetId": "asset-20260326-abc123",
"type": "IMAGE",
"status": "PROCESSING",
"failReason": null,
"url": "https://example.com/photo.jpg",
"name": "my-photo",
"createdAt": 1711234567890
}Interroger le statut d'une ressource
Interroge le statut de vérification d'une ressource. Lorsque le statut est PROCESSING, l'endpoint vérifie automatiquement les mises à jour du système de vérification.
# 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"Valeurs de statut de ressource
PROCESSING— en cours de vérification, pas encore utilisableACTIVE— vérification réussie, prête à être utilisée dans des tâchesFAILED— vérification échouée, consultez failReason
Lister les ressources
Liste vos ressources importées, avec filtrage facultatif par type et par statut. Prend en charge la pagination par curseur.
# 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"| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| type | string | Non | Filtrer par type : "IMAGE", "AUDIO" ou "VIDEO" |
| status | string | Non | Filtrer par statut : "NONE", "PROCESSING", "ACTIVE" ou "FAILED" |
| cursor | number | Non | Curseur de pagination (utilisez nextCursor de la réponse précédente) |
| limit | number | Non | Éléments par page, 1-50 (par défaut : 20) |
Réponse de liste
{
"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
}Utiliser des ressources dans les tâches
Une fois qu'une ressource est ACTIVE, utilisez son volcAssetId avec le protocole asset:// dans les URL de votre tâche :
{
"model": "sd2",
"inputs": {
"urls": ["asset://asset-20260326-abc123"],
"prompt": "The person slowly looks up and smiles",
"duration": "5s"
}
}Wan 3.0 Video et Wan 3.0 Video Prime
Wan 3.0 prend en charge la vidéo à partir de texte ou d’une première image, l’interpolation entre première et dernière images, les références mixtes image/vidéo/audio, la modification et la prolongation vidéo. wan3.0-video-prime accepte les mêmes entrées que wan3.0-video et est optimisé pour une génération plus rapide.
Les deux alias utilisent l’API asynchrone de SeeGen : POST /api/v1/jobs/createTask renvoie un taskId ; interrogez GET /api/v1/jobs/queryTask?taskId=... ou fournissez callBackUrl pour obtenir le résultat final.
Sortie prise en charge : durées fixes de 2–30 secondes en 480p, 720p ou 1080p natifs, sans filigrane. La durée automatique (duration: -1), la sortie 2K/4K et le réglage personnalisé de watermark ne sont pas pris en charge. Importez d’abord les médias de référence, puis utilisez l’URL HTTPS renvoyée.
Texte vers vidéo
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/createTaskImage vers vidéo (première image)
Importez les médias Wan via multipart POST /api/v1/assets/upload?model=wan3.0-video (ou l’alias Prime), puis utilisez l’url HTTPS renvoyée qui vous appartient dans les entrées de génération. L’assetId renvoyé est uniquement l’identifiant de l’enregistrement média SeeGen ; ne l’envoyez pas dans les entrées de génération.
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/createTaskPremière et dernière image
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/createTaskRéférences multiples (images, vidéos et audio)
Définissez videoInputMode: "reference", puis fournissez au moins un média pris en charge via urls, videoUrls ou audioUrls ; le prompt est facultatif. Référencez les médias dans l’ordre avec Image1, Image2, Video1 ou Audio1. Importez d’abord chaque référence via l’endpoint multipart de Wan, puis utilisez l’URL HTTPS renvoyée qui vous appartient.
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/createTaskMontage vidéo
Importez d’abord la vidéo source, puis utilisez mode: "edit" avec videoInputMode: "reference". Dans le prompt obligatoire, décrivez comment modifier Video1, la première vidéo de videoUrls. Le format d’image est automatique ; vous choisissez la durée de sortie. Les limites des références et les tarifs ci-dessous s’appliquent à la modification comme à la prolongation.
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/createTaskExtension vidéo
Utilisez mode: "extend" avec une vidéo source et une consigne, comme « Prolonge Video1 vers la suite », suivie de ce qui se passe ensuite. Définissez ratio: "adaptive". La valeur duration est la durée de la vidéo générée, pas la somme de la source et de la prolongation. La génération depuis des fichiers ou des pages web n’est pas prise en charge.
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/createTaskRéférence des paramètres de Wan 3.0
Les deux modèles Wan 3.0 acceptent les mêmes champs inputs. Choisissez une durée de sortie de 2 à 30 secondes, par incréments d’une seconde.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| prompt | string | Non | Description ou instruction vidéo. Maximum 20,000 caractères. Obligatoire pour texte vers vidéo, modification et prolongation ; facultatif pour image vers vidéo, première/dernière image et références multiples. La modification et la prolongation nécessitent aussi une vidéo. Utilisez Image1 / Video1 / Audio1 dans l’ordre des références. |
| mode | string | Non | Omettez ce champ ou utilisez "normal" pour la génération habituelle. Utilisez "edit" ou "extend" avec une vidéo et un prompt d’instructions. Les deux utilisent le mode référence, un format automatique et une durée de sortie fixe de 2–30 secondes. |
| urls | string[] | Non | URL HTTPS d’images vous appartenant et renvoyées par l’endpoint d’import Wan. Omettez-les pour le texte vers vidéo ; fournissez exactement 1 première image, exactement 2 images première/dernière, ou jusqu’à 10 images en mode référence. Les URL externes non détenues et les références au protocole de ressource Seedance sont refusées. |
| videoUrls | string[] | Non | Jusqu’à 5 URL HTTPS de vidéos de référence vous appartenant et renvoyées par l’endpoint d’import Wan. Chaque clip doit durer 1–15 s, l’ensemble des vidéos de référence au maximum 15 s, et leur durée ajoutée à celle de la sortie au maximum 30 s. Les URL externes non détenues et les références au protocole de ressource Seedance sont refusées. |
| audioUrls | string[] | Non | Jusqu’à 5 URL HTTPS d’audios de référence vous appartenant et renvoyées par l’endpoint d’import Wan. WAV ou MP3 ; chaque clip doit durer 1–15 s et l’ensemble des audios de référence au maximum 15 s. Les URL externes non détenues et les références au protocole de ressource Seedance sont refusées. |
| videoInputMode | string | Non | Omettez-le pour le texte vers vidéo ; utilisez "keyframe" pour une première image ou deux images première/dernière ; utilisez "reference" pour des références mixtes d’images, de vidéos et d’audio. |
| duration | string | Non | Chaîne représentant un nombre entier de secondes, de "2s" à "30s". Par défaut : "5s". |
| outputResolution | string | Non | "480p", "720p" (par défaut) ou "1080p" natifs. La sortie 2K/4K n’est pas prise en charge. |
| ratio | string | Non | "auto" ou "adaptive" (cadrage automatique dans les deux cas), "16:9", "9:16", "1:1", "4:3" ou "3:4". Utilisé pour texte vers vidéo et références multiples. Modification et prolongation utilisent toujours Auto ; image vers vidéo et première/dernière image suivent les images clés. |
| generateAudio | boolean | Non | Générez des dialogues synchronisés, des effets sonores et de la musique. Par défaut : true. Définissez false pour une sortie silencieuse ; le tarif reste inchangé. |
| promptExtend | boolean | Non | Laissez le modèle enrichir le prompt avant la génération. Par défaut : true. |
| seed | int | Non | 0–2147483647. Utilisez la même seed et les mêmes entrées pour une nouvelle tentative très similaire. |
Exigences relatives aux médias de référence
- Images : jusqu’à 10 ; JPEG/JPG/PNG (sans transparence)/BMP/WebP ; ≤20 Mo chacune ; chaque côté de 240 à 8000 px ; rapport hauteur/largeur jusqu’à 8:1
- Vidéos : jusqu’à 5 clips MP4/MOV ; ≤100 Mo chacun ; 1–15 s chacun, ≤15 s d’entrée au total, et entrée + sortie demandée ≤30 s ; chaque côté de 240 à 4096 px ; rapport hauteur/largeur jusqu’à 8:1
- Audio : jusqu’à 5 URL HTTPS WAV/MP3 renvoyées par l’endpoint d’import Wan ; ≤15 Mo chacune ; 1–15 s chacune et ≤15 s au total
- Le mode première/dernière image ne peut pas être combiné avec des tableaux de références d’images, de vidéos ou d’audio
Choisir un modèle (image)
Les modèles d'image prennent un prompt (et éventuellement des images de référence) et renvoient une image par tâche. Chaque requête est facturée par image selon le niveau du modèle sélectionné (ou un tarif forfaitaire pour Seedream Lite). Les tâches échouées sont remboursées automatiquement. Il n'y a pas de paramètre de lot — pour générer plusieurs variantes, appelez createTask une fois par image.
| Modèle | T2I | I2I (Édition) | Multi-Ref | Résolution max | 2k / medium |
|---|---|---|---|---|---|
| gpt-image-2.5-flare | ✓ | ✓ | jusqu'à 10 | 4k | voir Tarifs |
| gpt-image-2.5-sunburst | ✓ | ✓ | jusqu'à 10 | 4k | voir Tarifs |
| gpt-image-2 | ✓ | ✓ | jusqu'à 10 | 4k | voir Tarifs |
| nano-banana-2 | ✓ | ✓ | jusqu'à 10 | 4k | voir Tarifs |
| nano-banana-pro | ✓ | ✓ | jusqu'à 10 | 4k | voir Tarifs |
| seedream-v5.0-lite | ✓ | ✓ | jusqu'à 10 | 4k | tarif forfaitaire |
| seedream-v5.0-pro | ✓ | ✓ | jusqu'à 10 | 2k | voir Tarifs |
GPT Image 2.5 Flare / Sunburst
GPT Image 2.5 Flare privilégie la rapidité de génération et de retouche. Sunburst privilégie les images détaillées et les retouches précises. Tous deux acceptent des prompts textuels et des images de référence.
Disponible dans l’espace de travail, Playground et via l’API. Les deux modèles acceptent les paramètres suivants : qualité medium/high/xhigh/max, préréglages 1K/2K/4K et sorties PNG/JPEG/WebP. Les dimensions réelles peuvent différer du préréglage. Les fichiers JPEG et WebP sont convertis à partir du PNG généré, sans redimensionnement. Chaque tâche API génère une image.
Texte vers image
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/createTaskImage vers image (édition)
Passez de 1 à 10 images de référence via urls. Le modèle les utilisera comme contexte visuel pour l'édition décrite dans 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/createTaskRéférence des paramètres GPT Image 2.5
Référence complète de tous les paramètres inputs pour le modèle gpt-image-2.5-flare.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| prompt | string | Oui | Description textuelle de l'image à générer, ou de l'édition à appliquer lorsque urls est fourni. |
| urls | string[] | Non | URL d'images de référence pour le mode image vers image (édition) (1 à 10 images). À omettre pour texte vers image. Les URL HTTPS publiques sont acceptées. |
| quality | string | Non | "medium" / "high" / "xhigh" / "max". Par défaut : "medium". Les crédits varient selon le niveau (voir Tarifs). |
| resolution | string | Non | "1k" / "2k" / "4k". Par défaut : "2k". Les crédits varient selon le niveau (voir Tarifs). |
| aspectRatio | string | Non | "1:1" / "16:9" / "9:16" / "4:3" / "3:4". Par défaut : "1:1". |
| outputFormat | string | Non | "png" / "jpeg" / "webp". Par défaut : "png". |
Exigences relatives à l'image d'entrée (mode image vers image)
- Jusqu'à 10 images de référence par tâche
- Taille de fichier max 50 Mo par image
- Côté le plus court ≥ 256px
- Format d'image entre 1:3 et 3:1
- Formats : JPEG, JPG, PNG, WEBP
Les crédits par image varient selon la résolution et la qualité — consultez le tableau complet dans la section Tarifs.
GPT Image 2
Le modèle GPT Image 2 d'OpenAI pour l'édition texte vers image et image vers image de haute qualité. Un seul workflow gère les deux modes — passez urls pour basculer automatiquement en mode édition. La sortie est livrée via R2 dans le format demandé (PNG / JPEG / WEBP). Nom du modèle : gpt-image-2.
Texte vers image
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/createTaskImage vers image (édition)
Passez de 1 à 10 images de référence via urls. Le modèle les utilisera comme contexte visuel pour l'édition décrite dans 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/createTaskRéférence des paramètres GPT Image 2
Référence complète de tous les paramètres inputs pour le modèle gpt-image-2.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| prompt | string | Oui | Description textuelle de l'image à générer, ou de l'édition à appliquer lorsque urls est fourni. |
| urls | string[] | Non | URL d'images de référence pour le mode image vers image (édition) (1 à 10 images). À omettre pour texte vers image. Les URL HTTPS publiques sont acceptées. |
| quality | string | Non | "medium" / "high". Par défaut : "medium". Les crédits varient selon le niveau (voir Tarifs). |
| resolution | string | Non | "1k" / "2k" / "4k". Par défaut : "2k". Les crédits varient selon le niveau (voir Tarifs). |
| aspectRatio | string | Non | "1:1" / "16:9" / "9:16" / "4:3" / "3:4". Par défaut : "1:1". |
| outputFormat | string | Non | "png" / "jpeg" / "webp". Par défaut : "png". |
Exigences relatives à l'image d'entrée (mode image vers image)
- Jusqu'à 10 images de référence par tâche
- Taille de fichier max 50 Mo par image
- Côté le plus court ≥ 256px
- Format d'image entre 1:3 et 3:1
- Formats : JPEG, JPG, PNG, WEBP
Les crédits par image varient selon la résolution et la qualité — consultez le tableau complet dans la section Tarifs.
Nano Banana 2
Nano Banana 2 est un modèle d'image haute fidélité offrant une couverture de formats plus large que gpt-image-2 — il ajoute des préréglages portrait/paysage (3:2, 2:3, 4:5, 5:4) et le format cinématographique 21:9. Un seul workflow gère les deux modes — passez urls pour basculer automatiquement en mode édition. Nom du modèle : nano-banana-2.
Texte vers image
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/createTaskImage vers image (édition)
Passez de 1 à 10 images de référence via urls. Le modèle les utilisera comme contexte visuel pour l'édition décrite dans 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/createTaskRéférence des paramètres Nano Banana 2
Référence complète de tous les paramètres inputs pour le modèle nano-banana-2.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| prompt | string | Oui | Description textuelle de l'image à générer, ou de l'édition à appliquer lorsque urls est fourni. |
| urls | string[] | Non | URL d'images de référence pour le mode image vers image (édition) (1 à 10 images). À omettre pour texte vers image. Les URL HTTPS publiques sont acceptées. |
| resolution | string | Non | "1k" / "2k" / "4k". Par défaut : "2k". Les crédits varient selon le niveau (voir Tarifs). |
| aspectRatio | string | Non | "1:1" / "16:9" / "9:16" / "4:3" / "3:4" / "3:2" / "2:3" / "4:5" / "5:4" / "21:9". Par défaut : "1:1". |
Exigences relatives à l'image d'entrée (mode image vers image)
- Jusqu'à 10 images de référence par tâche
- Taille de fichier max 50 Mo par image
- Côté le plus court ≥ 256px
- Format d'image entre 1:3 et 3:1
- Formats : JPEG, JPG, PNG, WEBP
Les crédits par image varient selon la résolution — consultez le tableau complet dans la section Tarifs.
Nano Banana Pro
Nano Banana Pro est un modèle d'image haute fidélité offrant une couverture de formats plus large que gpt-image-2 — il ajoute des préréglages portrait/paysage (3:2, 2:3, 4:5, 5:4) et le format cinématographique 21:9. Un seul workflow gère les deux modes — passez urls pour basculer automatiquement en mode édition. Nom du modèle : nano-banana-pro.
Texte vers image
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/createTaskImage vers image (édition)
Passez de 1 à 10 images de référence via urls. Le modèle les utilisera comme contexte visuel pour l'édition décrite dans 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/createTaskRéférence des paramètres Nano Banana Pro
Référence complète de tous les paramètres inputs pour le modèle nano-banana-pro.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| prompt | string | Oui | Description textuelle de l'image à générer, ou de l'édition à appliquer lorsque urls est fourni. |
| urls | string[] | Non | URL d'images de référence pour le mode image vers image (édition) (1 à 10 images). À omettre pour texte vers image. Les URL HTTPS publiques sont acceptées. |
| resolution | string | Non | "1k" / "2k" / "4k". Par défaut : "2k". Les crédits varient selon le niveau (voir Tarifs). |
| aspectRatio | string | Non | "1:1" / "16:9" / "9:16" / "4:3" / "3:4" / "3:2" / "2:3" / "4:5" / "5:4" / "21:9". Par défaut : "1:1". |
Exigences relatives à l'image d'entrée (mode image vers image)
- Jusqu'à 10 images de référence par tâche
- Taille de fichier max 50 Mo par image
- Côté le plus court ≥ 256px
- Format d'image entre 1:3 et 3:1
- Formats : JPEG, JPG, PNG, WEBP
Les crédits par image varient selon la résolution — consultez le tableau complet dans la section Tarifs.
Seedream 5.0 Lite
Génération rapide texte vers image et image vers image en 2K ou 4K avec 15 formats d'image. Nom du modèle : seedream-v5.0-lite.
Texte vers image
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/createTaskImage vers image (édition)
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/createTaskParamètres Seedream 5.0 Lite
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| prompt | string | Oui | Description de l'image ou instruction d'édition. |
| urls | string[] | Non | 1 à 10 URL d'images de référence HTTPS publiques. À omettre pour texte vers image. |
| resolution | string | Non | "2k" ou "4k". Par défaut : "2k". |
| aspectRatio | string | Non | "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
Génération et édition haute fidélité en 1K ou 2K. Nom du modèle : seedream-v5.0-pro.
Texte vers image
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/createTaskImage vers image (édition)
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/createTaskParamètres Seedream 5.0 Pro
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| prompt | string | Oui | Description de l'image ou instruction d'édition. |
| urls | string[] | Non | 1 à 10 URL d'images de référence HTTPS publiques. À omettre pour texte vers image. |
| resolution | string | Non | "1k" ou "2k". Par défaut : "1k". Le 4k n'est pas pris en charge. |
| aspectRatio | string | Non | "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 vidéo
Créer une tâche
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| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| source.type | string | Oui | Utilisez "url" pour toute source. ("uploadId" est un alias hérité conservé pour la compatibilité ascendante.) |
| source.url | string | Non | Avec type="url". N'importe quelle URL vidéo https — votre propre CDN, ou le r2Url renvoyé par /api/v1/assets/upload. Pour les URL externes, http ainsi que les IP privées/internes sont refusées (protection SSRF) ; les URL sur notre propre hébergeur de ressources ignorent cette vérification. |
| source.r2Url | string | Non | Hérité — uniquement avec type="uploadId" (compatibilité ascendante). Les nouvelles intégrations doivent utiliser type="url". |
| targetResolution | string | Oui | "720p", "1080p", "2k" ou "4k". Doit être supérieure à la résolution source. |
| callBackUrl | string | Non | URL de webhook appelée une fois à l'état final (terminé ou échoué). |
Réponse de création
{
"taskId": "n770mo4sh6rpi690ff3gwymx",
"orderId": "ord_2026...",
"status": "validating"
}Interroger le statut
GET /api/v1/upscale/query?taskId=...
Le statut progresse validating → processing → completed / failed.
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/upscale/query?taskId=n770mo4sh6rpi690ff3gwymx"Réponse en cas de succès
{
"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"
}Réponse en cas d'échec
{
"taskId": "n770mo4sh6rpi690ff3gwymx",
"status": "failed",
"creditsConsumed": null,
"result": null,
"error": {
"code": "SOURCE_RESOLUTION_TOO_HIGH",
"message": "Source 3840x2160 is not below target 4k"
}
}Limites
- Source : URL https ou votre URL R2 précédemment importée
- Durée jusqu'à 600 s (les clips de moins de 5 s sont facturés comme 5 s)
- Taille de fichier ≤ 200 Mo
- Format : MP4 / MOV / WebM
- La résolution source doit être inférieure à la cible
Tarifs
- 720P : 17 crédits/s (5s = 85, 30s = 510)
- 1080P : 25 crédits/s (5s = 125, 30s = 750)
- 2K : 38 crédits/s (5s = 190, 30s = 1140)
- 4K : 50 crédits/s (5s = 250, 30s = 1500)
- Minimum 5 secondes ; les échecs remboursent automatiquement les crédits
Codes d'erreur
Erreurs courantes sur lesquelles vous pouvez agir. Les autres échecs renvoient un champ message explicite — lisez-le avant de supposer que le code en fait partie.
| Code | Signification |
|---|---|
| INVALID_URL | L'URL est mal formée ou n'est pas en https |
| URL_NOT_REACHABLE | Impossible de récupérer l'URL — vérifiez qu'elle est publique et accessible |
| UNSUPPORTED_MEDIA_TYPE | Le fichier n'est pas une vidéo, ou n'est pas au format MP4 / MOV / WebM |
| FILE_TOO_LARGE | La source dépasse 200 Mo |
| DURATION_EXCEEDS_LIMIT | La source dépasse 600 s |
| SOURCE_RESOLUTION_TOO_HIGH | La source est déjà à la résolution cible ou au-delà — choisissez une cible plus élevée |
| INSUFFICIENT_CREDITS | Crédits insuffisants — rechargez et réessayez |
| ACCOUNT_FROZEN | Le compte ne peut pas dépenser de crédits — contactez le support |
Callback webhook
Au lieu d'interroger l'API, vous pouvez fournir une callBackUrl pour recevoir automatiquement les résultats lorsqu'une tâche se termine ou échoue.
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 du callback
Une fois la tâche terminée, nous envoyons une requête POST à votre URL avec le même format que la réponse de 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
}Politique de réessai : si votre endpoint renvoie un statut autre que 2xx, nous réessayons jusqu'à 3 fois avec des délais croissants (1s, 5s, 30s).
Format de réponse
Réponse de createTask
// 200 OK
{ "taskId": "task_abc123" }Réponse de 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
}Réponse de credits
{
"credits": 5000,
"availableCredits": 4800
}Gestion des erreurs
| Code de statut | Signification | Action |
|---|---|---|
| 400 | Paramètres invalides | Vérifiez le message d'erreur et corrigez votre requête |
| 401 | Clé API invalide ou manquante | Vérifiez le format de votre en-tête Authorization |
| 402 | Crédits insuffisants | Ouvrez Credits pour acheter des crédits ou activer la recharge automatique, puis réessayez la requête |
| 403 | Accès refusé | Vous ne pouvez interroger que vos propres tâches |
| 404 | Tâche introuvable | Vérifiez que le taskId est correct |
| 500 | Erreur interne du serveur | Réessayez après quelques secondes |
Validation avant soumission (400 avec un code)
Les requêtes Seedance et Wan 3.0 sont vérifiées selon les règles produit de SeeGen avant tout débit de crédits. En cas d’échec, createTask renvoie HTTP 400 avec { "message": "...", "code": "..." } ; les erreurs Wan peuvent aussi contenir un path. Aucune tâche n’est créée ni facturée.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| EMPTY_CONTENT | code | Non | Aucun prompt et aucune image/vidéo/audio de référence. |
| AUDIO_ONLY_NOT_SUPPORTED | code | Non | L'audio est l'unique référence sur sd2 / sd2-fast / sd2-mini. Ajoutez une image ou une vidéo, ou utilisez sd2.5 (audio seul pris en charge). |
| UNSUPPORTED_MODEL | code | Non | L’alias du modèle n’est pas pris en charge. Pour Wan 3.0, utilisez exactement "wan3.0-video-prime" ou "wan3.0-video". |
| UNSUPPORTED_RESOLUTION | code | Non | Le niveau de sortie sélectionné n’est pas disponible. Le lancement de Wan 3.0 prend uniquement en charge les résolutions natives 480p / 720p / 1080p ; 2K/4K et upscaleResolution sont rejetés. |
| DURATION_OUT_OF_RANGE | code | Non | duration n’est pas un entier compris dans la plage du modèle (Wan 3.0 « 2s »–« 30s », famille sd2 « 4s »–« 15s », sd2.5 « 4s »–« 30s »). La durée intelligente de Wan (-1) n’est pas exposée. |
| INVALID_MEDIA_COMBINATION | code | Non | Les médias ne correspondent pas au mode sélectionné (par exemple, nombre incorrect d’images clés, médias en text-to-video, aucun média en multi-reference, ou entrées mixtes d’images clés et de références). |
| EDIT_SOURCE_VIDEO_REQUIRED / EXTEND_SOURCE_VIDEO_REQUIRED | code | Non | mode "edit" / "extend" a été demandé sans vidéo dans videoUrls. |
| EDIT_SOURCE_DURATION_INVALID | code | Non | Édition vidéo sd2.5 : une vidéo de la requête dure moins de 4s ou plus de 30s (ARK applique 4–30s à chaque vidéo d'une tâche d'édition). |
| TOO_MANY_REFERENCES | code | Non | Le nombre d’images, de vidéos ou de clips audio de référence dépasse la limite acceptée par le modèle (Wan 3.0 10 / 5 / 5, famille sd2 9 / 3 / 3, sd2.5 30 / 10 / 10 ; extension ≤3 vidéos). |
| REFERENCE_VIDEO_DURATION_INVALID | code | Non | Une vidéo de référence dépasse la limite par clip, la durée totale des vidéos de référence dépasse la limite du modèle, ou la combinaison des entrées et de la sortie est invalide. Pour Wan 3.0 : chaque clip doit durer 1–15s, la durée totale des entrées doit être ≤15s et la somme des entrées et de la sortie demandée doit être ≤30s (15+15 est valide ; 15+16 est rejeté). |
| REFERENCE_AUDIO_DURATION_INVALID | code | Non | Une durée connue d’audio de référence Wan 3.0 est hors de la plage 1–15 s ou porte l’entrée audio de référence cumulée au-delà de 15 s. |
| REFERENCE_IMAGE_INVALID | code | Non | Une image Wan 3.0 est introuvable, appartient à un autre utilisateur, a un type de média incorrect ou enfreint une exigence connue de taille, format, dimensions, rapport d’aspect ou absence de transparence. |
| REFERENCE_VIDEO_INVALID | code | Non | Une vidéo importée pour Wan 3.0 ne respecte pas les exigences de taille, de format MP4/MOV, de dimensions ou de rapport d’aspect. |
| REFERENCE_AUDIO_INVALID | code | Non | Un fichier audio importé pour Wan 3.0 ne respecte pas les exigences de taille ou de format WAV/MP3. |
| ASSET_NOT_FOUND / EXTERNAL_URL / READ_TIMEOUT / READ_FAILED | code | Non | Une entrée de videoUrls n'a pas pu être résolue vers l'une de vos ressources importées, ou sa durée n'a pas pu être lue. |
Exemples complets
Workflow complet : importez une ressource, attendez la vérification, créez une tâche avec la ressource approuvée, puis interrogez le résultat.
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);Besoin d'aide ? Rejoignez notre Discord ou contactez-nous