Documentation du développeur UlazAI
Documentation Seedance API : génération, statut, 1080p et tarification
Référence Seedance 1.5 Pro
Documents sur Seedance API Documentation Seedance API : génération, statut, 1080p et tarification
Pour utiliser le Semence API, authentifiez-vous avec une clé au porteur, utilisez
POST /seedance/generate/ pour créer des emplois et interroger
GET /seedance/status/{generation_id}/ jusqu'à ce que la vidéo soit prête.
UlazAI prend actuellement en charge la sortie Seedance 1.5 Pro dans 480p, 720p et 1080p avec des durées de 4, 8 ou 12 secondes.
Points de terminaison principaux
POST /seedance/upload/
POST /seedance/generate/
GET /seedance/status/{generation_id}/
Capacités actuelles
Texte en vidéo et image en vidéo
Jusqu'à 2 images guides
Audio natif en option
Astuce
Cette page répond au flux complet des développeurs dans le premier écran : le point de terminaison généré, l'interrogation d'état, la prise en charge 1080p, l'authentification du porteur et la route de tarification.
Utiliser/seedance/upload/ uniquement lorsque vous avez besoin d'une génération vidéo guidée par l'image. Pour les courses en texte uniquement, appelez
/seedance/generate/ directement et ignorez l’étape de téléchargement.
La famille de modèles Seedance : 1.5 Pro, 2.0 et 2.5
Seedance est le modèle texte-vidéo et image-vidéo de ByteDance. ByteDance a lancé le premier Seedance en juin 2025, libéré Semis 2.0 en février 2026, et a depuis montré Semis 2.5. Chacun génération pousse la même idée de base plus loin : mouvement cinématographique, scènes multi-plans plus fortes, suivi de prompt, des références d’images et de vidéos, ainsi que de l’audio natif en option dans un seul rendu. Le guide API couvre les versions actuellement prises en charge Versions Seedance sans que vous ayez besoin de configurer la propre plateforme de ByteDance.
| Version | Publié par ByteDance | Ce que ça ajoute |
|---|---|---|
Seedance 1.5 Pro | 2025 | Conversion de texte et d'images en vidéo, jusqu'à 2 images guides, audio en option, 480p/720p/1080p. Connecté au UlazAI aujourd'hui. |
Seedance 2.0 | février 2026 | Entrées multimodales (texte, image, vidéo, audio), narration multi-caméras, cogénération audio native, clips plus longs. |
Seedance 2.5 | 2026 | La dernière étape présentée par ByteDance vise une génération plus rapide et des gains supplémentaires en matière de qualité et de contrôle. |
Même code, modèle plus récent
Le API public de UlazAI génère avec bytedance/seedance-1.5-pro aujourd'hui. La partie importante pour les développeurs :
lorsqu'une version plus récente de Seedance est activée ici, elle réutilise le pareil Authentification au porteur et pareil
générer et interroger les points de terminaison ci-dessous. Votre intégration ne change pas — seul l'identifiant du modèle change — donc
vous pouvez vous appuyer sur cette référence maintenant et faire évoluer la famille plus tard.
ByteDance et ARK : le modèle officiel, un seul parcours unifié
Les personnes recherchant Documentation officielle de ByteDance Seedance ou le Semis d'arche API recherchent généralement deux choses différentes : le modèle lui-même et une façon de l'appeler réellement. Seedance appartient à ByteDance propre modèle, publié via le moteur Volcano de ByteDance Arche plateforme. Cette route signifie mettre en place un ARK compte, accès à la région et points de terminaison du modèle brut.
UlazAI se trouve devant cela en tant que couche API tierce. Vous obtenez une clé au porteur, un hébergé
téléchargement d'images étape, un portefeuille de crédit partagé et le petit ensemble de points de terminaison sur cette page – pas d'ARK
intégration, pas de solution de contournement régionale et pas de VPN ou de numéro de téléphone chinois pour atteindre le modèle. Si vous avez spécifiquement recherché
ARK API Téléchargement d'images de semis, l'équivalent ici est un seul appel : POST /seedance/upload/
renvoie une URL permanente dans laquelle vous vous déposez input_urls lors de la génération (voir le point de terminaison de téléchargement ci-dessous).
Concepts ARK mappés sur ce API
Si vous avez déjà lu la documentation ARK de ByteDance, le vocabulaire est différent mais le les étapes sont les mêmes. Voici la traduction directe :
| Sur ByteDance ARK | Ici | Ce qui change pour vous |
|---|---|---|
| Configuration du compte ARK, du projet et du point de terminaison | Une clé au porteur | Aucune intégration à la plateforme avant le premier appel. |
| Hébergez vous-même l'image du guide, transmettez une URL publique | POST /seedance/upload/ |
Vous pouvez envoyer le fichier brut ; la réponse vous donne une URL permanente. |
| ID du modèle dans le corps de la demande | model champ |
Même idée ; seul l'identifiant change entre les versions. |
| Interrogez la tâche jusqu'à ce qu'elle soit terminée | GET /seedance/status/{generation_id}/ |
Même forme d'interrogation, un seul point de terminaison. |
Image vers vidéo en deux appels
Il s’agit de tout le flux de téléchargement d’images. Le premier appel stocke l'image et renvoie une URL, le deuxième appel utilise cette URL comme guide visuel pour la vidéo.
# 1. upload the guide image
curl -X POST https://ulazai.com/seedance/upload/ \
-H "Authorization: Bearer $ULAZAI_API_KEY" \
-F "[email protected]"
# -> {"url": "https://cdn.ulazai.com/uploads/<id>.jpg"}
# 2. generate, passing that URL back in input_urls
curl -X POST https://ulazai.com/seedance/generate/ \
-H "Authorization: Bearer $ULAZAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "slow dolly in, warm evening light",
"input_urls": ["https://cdn.ulazai.com/uploads/<id>.jpg"],
"resolution": "1080p"
}'
Vous pouvez transmettre jusqu'à deux URL dans input_urls. Deux images sont lues en guise de départ et
référence de fin, qui est le moyen habituel de garder un personnage ou un produit cohérent à travers le
pince. Pour la génération de texte uniquement, ignorez complètement l’appel de téléchargement.
Résumé d'intégration rapide
| Authentification | Porteur API clé de /dashboard/ -> Clés API |
|---|---|
| ID du modèle | bytedance/seedance-1.5-pro |
| Durées | 4, 8, 12 |
| Résolutions | 480p, 720p, 1080p |
| Rapports d'aspect | 1:1, 21:9, 4:3, 3:4, 16:9, 9:16 |
| Entrées | Prompt uniquement, ou prompt plus jusqu'à 2 URL d'image |
| Flux d'interrogation | Créer un emploi, stocker generation_id, puis interrogez l'état jusqu'à ce que completed |
Résumé du point de terminaison public
| Méthode | Point de terminaison | Quand l'utiliser |
|---|---|---|
| POSTER | /seedance/upload/ |
Téléchargez d'abord une image si vous souhaitez obtenir des conseils d'image en vidéo |
| POSTER | /seedance/generate/ |
Créer une tâche de génération Seedance 1.5 Pro |
| OBTENIR | /seedance/status/{generation_id}/ |
Vérifiez si le travail est toujours en cours de traitement, terminé ou a échoué. |
Authentification
Toutes les requêtes API nécessitent un jeton Bearer :
Authorization: Bearer YOUR_API_KEY
Obtenez une clé API depuis votre tableau de bord sous Clés API. Si vous avez encore besoin de crédits, allez sur forfaits d'abord.
/seedance/upload/
Téléchargez des images d'entrée pour un guidage image vers vidéo
Téléchargez une image guide avant la génération si vous souhaitez que Seedance ancre la composition, le cadrage des personnages ou la configuration de la scène.
La réponse vous donne une URL permanente dans laquelle transmettre input_urls.
En-têtes de requête
Authorization: Bearer YOUR_API_KEY
Content-Type: multipart/form-data
Paramètres de données de formulaire
fichier * (fichier)
JPG, PNG ou WebP, jusqu'à 10 Mo.
Réponse réussie (200)
{
"success": true,
"url": "https://media.ulazai.com/seedance_images/u1_abc123.jpg",
"filename": "seedance_images/u1_abc123.jpg"
}
Exemple d'utilisation (cURL)
curl -X POST https://api.ulazai.com/seedance/upload/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@/path/to/image.jpg"
/seedance/generate/
Créer une tâche de génération Seedance 1.5 Pro
Envoyez soit la charge utile simplifiée ci-dessous, soit la charge explicite model plus input formater.
Utilisez la version simplifiée si vous n'avez besoin que de l'itinéraire public Seedance avec prompt, des images de guide en option et des paramètres de sortie.
Corps de la requête (simple)
{
"prompt": "A cinematic close-up of a chef flipping noodles in slow motion",
"input_urls": ["https://media.ulazai.com/seedance_images/u1_abc123.jpg"],
"aspect_ratio": "16:9",
"resolution": "1080p",
"duration": "4",
"fixed_lens": true,
"generate_audio": false,
"prompt_directory_optin": true
}
Corps de la requête (modèle/style de saisie)
{
"model": "bytedance/seedance-1.5-pro",
"input": {
"prompt": "A cinematic close-up of a chef flipping noodles in slow motion",
"input_urls": ["https://media.ulazai.com/seedance_images/u1_abc123.jpg"],
"aspect_ratio": "16:9",
"resolution": "720p",
"duration": "8",
"fixed_lens": true,
"generate_audio": true
}
}
Paramètres
prompt * (chaîne)
3 à 2 500 caractères décrivant la scène, le mouvement, le cadrage et l'intention audio.
input_urls (tableau)
Facultatif. Jusqu'à 2 URL d'images pour un guidage image-vidéo.
aspect_ratio (chaîne)
L'un des formats suivants : 1:1, 21:9, 4:3, 3:4, 16:9, 9:16.
résolution (chaîne)
L'un des formats suivants : 480p, 720p, 1080p.
durée (chaîne)
4, 8 ou 12 secondes.
fixed_lens (booléen)
Activez pour une vue de caméra plus stable.
generate_audio (booléen)
Activez la génération audio synchronisée. Cela augmente l’utilisation du crédit.
prompt_directory_optin (booléen)
Facultatif. Partagez les prompt éligibles dans le répertoire prompt et appliquez une remise lorsqu'ils sont pris en charge.
Réponse réussie (200)
{
"success": true,
"generation_id": "abc12345-1234-1234-1234-123456789012",
"task_id": "seedance_task_xyz789",
"credits_used": 40,
"directory_discount_applied": true,
"message": "Video generation started. This may take a few minutes."
}
/seedance/status/{generation_id}/
Statut de la tâche d'interrogation
Interroger ce point de terminaison jusqu'à ce que le travail soit terminé processing. En cas de succès, vous recevez une URL de vidéo ; en cas d'échec
vous devez inspecter l'erreur et réessayer avec une charge utile corrigée.
Réponse au traitement
{
"success": true,
"status": "processing",
"message": "Video is being generated..."
}
Réponse réussie (200)
{
"success": true,
"status": "completed",
"video_url": "https://media.ulazai.com/seedance_outputs/video.mp4"
}
Exemples de code : cURL, Python et JavaScript
Le flux complet est soumettre → stocker generation_id → statut du sondage. Voici l'appel de génération dans trois piles communes ; échangez votre propre clé et prompt.
boucle
curl -X POST https://api.ulazai.com/seedance/generate/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A cinematic close-up of a chef flipping noodles in slow motion",
"aspect_ratio": "16:9",
"resolution": "1080p",
"duration": "4"
}'
Python (requêtes)
import time, requests
BASE = "https://api.ulazai.com"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}
# 1. Start the job
job = requests.post(f"{BASE}/seedance/generate/", headers=HEADERS, json={
"prompt": "A cinematic close-up of a chef flipping noodles in slow motion",
"aspect_ratio": "16:9",
"resolution": "1080p",
"duration": "4",
}).json()
generation_id = job["generation_id"]
# 2. Poll until it leaves "processing"
while True:
status = requests.get(f"{BASE}/seedance/status/{generation_id}/", headers=HEADERS).json()
if status.get("status") == "completed":
print("Video:", status["video_url"])
break
if status.get("status") == "failed":
raise RuntimeError(status)
time.sleep(8) # back off; do not hammer generate
JavaScript (récupérer)
const BASE = "https://api.ulazai.com";
const HEADERS = { "Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json" };
const job = await fetch(`${BASE}/seedance/generate/`, {
method: "POST",
headers: HEADERS,
body: JSON.stringify({
prompt: "A cinematic close-up of a chef flipping noodles in slow motion",
aspect_ratio: "16:9",
resolution: "1080p",
duration: "4",
}),
}).then(r => r.json());
const id = job.generation_id;
let video;
while (!video) {
const s = await fetch(`${BASE}/seedance/status/${id}/`, { headers: HEADERS }).then(r => r.json());
if (s.status === "completed") video = s.video_url;
else if (s.status === "failed") throw new Error(JSON.stringify(s));
else await new Promise(r => setTimeout(r, 8000)); // poll every ~8s
}
console.log("Video:", video);
Flux d'utilisation
- Téléchargez une ou deux images de guide avec
/seedance/upload/uniquement si vous avez besoin d'un guidage image vers vidéo. - Appeler
/seedance/generate/avec votre prompt, les paramètres de sortie et en optioninput_urls. - Conservez le retour
generation_id. - Sondage
/seedance/status/{generation_id}/jusqu'à ce questatusdevientcompleted. - Utilisez le retour
video_urlpour télécharger, intégrer ou transmettre l'actif final dans votre propre flux de travail.
Codes d'erreur
400 Paramètres de requête invalides
401 Échec de l'authentification (clé API manquante ou invalide)
402 Crédits insuffisants
429 Limite de débit dépassée
500 Erreur de serveur interne
Limites de prix et de taux
La facturation Seedance sur UlazAI fonctionne avec des crédits, donc le coût évolue en fonction de la résolution et de la durée plutôt qu'en fonction d'un taux fixe par seconde. Utilisez-le comme guide de planification ; le coût du crédit en direct est indiqué dans forfaits et au moment de la demande.
| Sortie | Utilisation typique | Inducteur de coûts |
|---|---|---|
480p | Brouillons et itérations rapides | Crédits par seconde les plus bas |
720p | Clips prêts pour les réseaux sociaux | Crédits moyens par seconde |
1080p | Livraison finale | Crédits par seconde les plus élevés ; les durées plus longues coûtent plus cher |
Limites de débit et gestion 429 : si vous soumettez plusieurs offres en parallèle, vous pourriez recevoir 429 Rate limit exceeded. Traitez le API comme étant basé sur une tâche : soumettez, stockez le generation_id, et sondage /seedance/status/{generation_id}/ toutes les 5 à 10 secondes plutôt que de générer du martelage. Sur un 429, reculez de façon exponentielle (par exemple 2 s, 4 s, 8 s) avant de réessayer.
Seedance 1.5 Pro contre Seedance 2.0 : cette référence couvre bytedance/seedance-1.5-pro, le modèle actuellement connecté à Video Studio. ByteDance a depuis introduit Seedance 2.0 comme prochaine génération ; lorsqu'il est activé ici, il utilise le même flux de génération et d'interrogation et la même authentification, donc le code d'intégration ne change pas — seul l'identifiant du modèle change.
Questions fréquemment posées
Le UlazAI Seedance API prend-il en charge Seedance 2.0 et 2.5 ?
Le API génère avec bytedance/seedance-1.5-pro aujourd'hui. ByteDance a publié Seedance 2.0 en février 2026 et a depuis présenté la version 2.5. Lorsqu'une version plus récente est activée ici, elle utilise la même authentification Bearer et les mêmes points de terminaison de génération et d'interrogation, de sorte que votre code d'intégration ne change pas - seul l'identifiant du modèle le fait.
Quel est le rapport entre UlazAI et l'API officielle Seedance / ARK de ByteDance ?
Seedance est le propre modèle de ByteDance, proposé via la plateforme Volcano Engine ARK de ByteDance. UlazAI est une couche tierce API qui exécute Seedance derrière un itinéraire simplifié avec une seule clé Bearer, un téléchargement d'image hébergé et un portefeuille de crédit partagé — aucun compte ARK ni point de terminaison de modèle brut à gérer.
Comment puis-je télécharger une image pour l'image vers la vidéo Seedance ?
Envoyer l'image sous forme de données multipart/form à POST /seedance/upload/ avec votre clé au porteur. La réponse renvoie une URL permanente ; passez-le (jusqu'à deux) dans le input_urls tableau sur POST /seedance/generate/. Les prompt en texte uniquement ignorent l'étape de téléchargement.
Combien coûte le Seedance API ?
La facturation fonctionne sur les crédits, donc le coût évolue en fonction de la résolution et de la durée. Un court brouillon de 480p coûte le moins de crédits ; un rendu 1080p de 12 secondes avec audio coûte le plus cher. Le coût exact apparaît dans forfaits et encore comme credits_used dans la réponse générée.
Seedance est-il disponible dans le monde entier via le API ?
Oui. Vous appelez les points de terminaison HTTPS hébergés de UlazAI avec une clé Bearer, donc aucun VPN, solution de contournement régionale ou numéro de téléphone chinois n'est nécessaire. Tout serveur capable d'effectuer une requête HTTPS authentifiée peut soumettre des tâches et interroger les résultats.