Passer au contenu

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

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.

VersionPublié par ByteDanceCe que ça ajoute
Seedance 1.5 Pro2025Conversion 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.0février 2026Entrées multimodales (texte, image, vidéo, audio), narration multi-caméras, cogénération audio native, clips plus longs.
Seedance 2.52026La 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.

Une image fixe téléchargée à gauche alimentant une séquence d'images vidéo générées à droite
# 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.

POSTER /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"
POSTER /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."
}
OBTENIR /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

  1. Téléchargez une ou deux images de guide avec /seedance/upload/ uniquement si vous avez besoin d'un guidage image vers vidéo.
  2. Appeler /seedance/generate/ avec votre prompt, les paramètres de sortie et en option input_urls.
  3. Conservez le retour generation_id.
  4. Sondage /seedance/status/{generation_id}/ jusqu'à ce que status devient completed.
  5. Utilisez le retour video_url pour 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.

SortieUtilisation typiqueInducteur de coûts
480pBrouillons et itérations rapidesCrédits par seconde les plus bas
720pClips prêts pour les réseaux sociauxCrédits moyens par seconde
1080pLivraison finaleCré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.

Où aller ensuite