ByteDance: Seedance 1.5 Pro
Seedance 1.5 Pro génère une vidéo à partir de texte ou d’une image et peut créer des voix, des effets et une musique de fond synchronisés. Le son peut être activé ou désactivé ; le profil documenté propose des scènes de 4 à 12 secondes, un cadrage adaptatif et un traitement en ligne ou flex.
À propos du modèle
Cette description présente les capacités du modèle. Les entrées, sorties et options disponibles dans Ailoot pour la méthode sélectionnée figurent ci-dessous.
Seedance 1.5 Pro génère une vidéo à partir de texte ou d’une image et peut générer le son avec l’image. Le sélecteur exact est doubao-seedance-1-5-pro-251215. Son réglage audio le distingue des profils Seedance 1.0 sans son : generate_audio=true demande un son synchronisé, tandis que false demande une vidéo sans son. Utilisez une scène écrite pour un nouveau concept ou une image pour établir le sujet et la composition initiale.
Décrivez l’action visuelle et le son comme les éléments d’une même scène. Identifiez le sujet, le décor, le mouvement et la caméra, puis expliquez les voix, les effets sonores ou la musique de fond voulus. Une scène de portrait peut montrer une personne ouvrant les yeux tandis que la caméra recule lentement, avec du vent dans l’environnement. Pour une scène de produit, reliez le son à l’événement visible, comme l’ouverture d’un couvercle ou le contact d’un objet avec une surface, plutôt que d’ajouter une liste d’effets sans rapport.
Le modèle peut générer des voix, des effets et une musique de fond à partir du prompt et du contenu visuel. Le guide recommande de placer les dialogues parlés entre guillemets doubles. Gardez des répliques assez courtes pour l’action et les pauses demandées, et distinguez qui parle lorsque plusieurs personnages interviennent. Vérifiez les paroles réelles, l’attribution des voix et la synchronisation avec l’image. Une instruction sonore guide l’interprétation générée ; elle ne constitue pas une entrée distincte de référence vocale téléversée dans la requête documentée de ce profil.
La génération image-vers-vidéo utilise un élément image_url avec le texte. Fournissez une URL d’image accessible ou une URL de données Base64 au format JPEG, PNG, WEBP, BMP, TIFF ou GIF. Les limites documentées pour l’image sont un poids inférieur à 30 MB, les deux dimensions strictement comprises entre 300 et 6 000 pixels et un rapport largeur/hauteur strictement compris entre 0,4 et 2,5. Préparez clairement le cadrage et le sujet voulus, puis décrivez le mouvement à partir de cette composition. L’exemple avec image utilise un rapport d’aspect adaptatif pour suivre la référence.
Le guide de durée propre au profil indique des secondes entières de quatre à douze, ou -1 pour laisser le modèle choisir une durée dans cette plage. La durée par défaut est de cinq secondes. Seedance 1.5 Pro utilise 720p par défaut, et le tableau de profil retenu documente 480p et 720p ; le guide d’utilisation dédié ne propose pas 1080p pour 1.5 Pro. Les rapports d’aspect fixes comprennent 16:9, 4:3, 1:1, 3:4, 9:16 et 21:9, avec adaptive comme valeur par défaut documentée pour 1.5. Vérifiez la durée et les proportions du clip réel plutôt que de considérer les valeurs demandées comme un résultat déjà renvoyé.
La requête propose deux niveaux de traitement. service_tier=default sélectionne le traitement en ligne, tandis que flex sélectionne le traitement hors ligne pour les travaux qui tolèrent un délai plus long. Le niveau ne peut pas être modifié après la soumission de la tâche. Choisissez-le selon les besoins de délai du processus et conservez cette sélection dans l’historique de requête. Le mode audio et le niveau de traitement sont des choix distincts : un clip sans son n’est pas automatiquement une tâche hors ligne, et l’activation du son ne sélectionne pas un niveau de traitement.
Gardez les instructions de graine aléatoire, de filigrane et de caméra cohérentes avec la scène. Les commandes de paramètres intégrées au texte prennent le pas sur les paramètres facultatifs distincts. Le réglage de caméra fixe est exclu dans le cas d’une image de référence et ne garantit pas un verrouillage visuel lorsqu’il s’applique. Pour une animation guidée par une image, expliquez directement le mouvement voulu plutôt que de supposer qu’un réglage de caméra dispense de décrire le plan.
L’utilisation est mesurée en tokens vidéo : largeur de sortie × hauteur de sortie × cadence d’images × durée de sortie / 1024. La tâche achevée rapporte cette quantité dans usage.completion_tokens. Conservez l’utilisation rapportée avec le clip achevé et les réglages demandés. Le son activé ou désactivé et le traitement en ligne ou flex restent des catégories distinctes dans la facturation à l’utilisation.
La soumission renvoie un identifiant de tâche asynchrone. Suivez la tâche jusqu’à son achèvement, puis enregistrez la vidéo fournie dans content.video_url. La durée documentée de conservation des fichiers générés est de sept jours. Le délai d’expiration est mesuré depuis la création, vaut 172 800 secondes par défaut et accepte des valeurs de 3 600 à 259 200 secondes ; une tâche inachevée expire à l’issue du délai configuré. Gardez ensemble le clip final, l’image d’origine et le brief visuel et sonore exact, puis vérifiez tout le résultat pour l’action, l’identité, la continuité de caméra et l’alignement du son.
Ailoot Ultra · Vidéo POST /v1/videos doubao-seedance-1-5-pro-251215
doubao-seedance-1-5-pro-251215
doubao-seedance-1-5-pro-251215Premiers pas
Seedance 1.5 Pro génère une vidéo à partir de texte ou d’une image et peut créer des voix, des effets et une musique de fond synchronisés. Le son peut être activé ou désactivé ; le profil documenté propose des scènes de 4 à 12 secondes, un cadrage adaptatif et un traitement en ligne ou flex.
- Entrées acceptées
- Texte · Images
- Résultats
- Vidéo
Disponible dans Ailoot · entrées et méthodes
Ailoot Ultra · Vidéo POST /v1/videos
- Entrée
text,image- Sortie
video
| Champ | Type | Exigence | Valeurs et limites | Par défaut |
|---|---|---|---|---|
Champmodel | Typestring | ExigenceObligatoire | Valeurs et limites doubao-seedance-1-5-pro-251215 | Par défaut— |
Champcontent | Typearray | ExigenceObligatoire | Valeurs et limites Conditions: Objets natifs de texte ou de médias ; le tableau externe doit être non vide. Ce constructeur générique Ailoot ne valide pas les types des nœuds imbriqués. | Par défaut— |
Champduration | Typeinteger | ExigenceFacultatif | Valeurs et limites Conditions: Le schéma principal 1.x indique 2–12 ; une description partagée ultérieure indique 4–12 ou -1 pour 1.5. L’exemple utilise 5, valeur documentée dans les deux cas. | Par défaut5 |
Champresolution | Typestring | ExigenceFacultatif | Valeurs et limites 480p, 720p Conditions: Seedance 1.5 Pro prend en charge 480p et 720p ; 1080p est exclu. La résolution par défaut documentée est 720p. | Par défaut720p |
Champratio | Typestring | ExigenceFacultatif | Valeurs et limites 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive Conditions: Le rapport par défaut documenté pour Seedance 1.5 Pro est adaptive. Les choix de rapports fixes restent inchangés. | Par défautadaptive |
Champservice_tier | Typestring | ExigenceFacultatif | Valeurs et limites default, flex Conditions: default=online, flex=offline ; choisissez avant la création. | Par défautdefault |
Champseed | Typeinteger | ExigenceObligatoire | Valeurs et limites Minimum: -1 Maximum: 4'294'967'295 | Par défaut-1 |
Champcamerafixed | Typeboolean | ExigenceObligatoire | Valeurs et limites Conditions: Obligatoire pour Ailoot ; la documentation indique que le contrôle de caméra à partir d’une image de référence n’est pas pris en charge et son effet n’est pas garanti. | Par défautfalse |
Champwatermark | Typeboolean | ExigenceObligatoire | Valeurs et limites | Par défautfalse |
Champexecution_expires_after | Typeinteger | ExigenceObligatoire | Valeurs et limites Minimum: 3'600 Maximum: 259'200 Unité: secondes | Par défaut172'800 |
Champgenerate_audio | Typeboolean | ExigenceFacultatif | Valeurs et limites Conditions: Son synchronisé intégré à la vidéo générée, uniquement pour 1.5. | Par défauttrue |
Combinaisons d’éléments d’entrée
Paramètres et cycle de vie de la méthode
| Paramètre | Contrat |
|---|---|
Paramètrecontent_type | Contratapplication/json |
Paramètrerequired | Contratcamerafixed, content, execution_expires_after, model, seed, watermark |
Paramètreoptional | Contratduration, resolution, ratio, service_tier, generate_audio |
Paramètrematerial_types | Contrattext, image |
Paramètreadditional_properties | Contrattrue |
Paramètrevalidation_scope | ContratAiloot vérifie les types des champs obligatoires, ainsi qu’un champ model non vide et un tableau content non vide. Les autres champs de la requête sont conservés pour le modèle sélectionné. |
Paramètreimage_constraints | Contrat{"formats":["jpeg","png","webp","bmp","tiff","gif"],"aspect_ratio_exclusive":[0.4,2.5],"dimensions_px_exclusive":[300,6000],"file_size_mb_exclusive":30,"mb_bytes_definition":null} |
Alias de méthode : /v1/videos/generations
Cycle de vie : submit_once_poll_original
GET /v1/videos/{request_id}
GET /v1/videos/generations/{request_id}
GET /v1/videos/{request_id}/content
GET /v1/videos/generations/{request_id}/content
Créez une seule fois et conservez les valeurs publiques id/polling_url renvoyées.
Consultez périodiquement la tâche d’origine ; téléchargez le contenu réel content.video_url dont vous êtes propriétaire après l’état succeeded.
Tarifs
Calcul du coût final
Les tarifs affichés servent à estimer le coût avant la génération. Le montant final est calculé à partir du coût enregistré pour la génération d’origine. La durée mesurée du résultat et les quantités prévisionnelles ne constituent pas la quantité finale facturable.
Les tarifs n’ajoutent pas d’options de requête. Les paramètres pris en charge figurent dans la méthode sélectionnée.
- Mode rapide
- Non précisé Lorsque le mode rapide est sélectionné
- Mode Flex
- Non précisé Lorsque le mode flex est sélectionné
- Effort de raisonnement maximal
- Non précisé Lorsque l’effort de raisonnement maximal utilise l’ajustement par défaut (default)
Tarifs estimés à des fins de comparaison
Prix par configuration
Associez chaque coût aux conditions indiquées. Utilisez un seul tarif pour chaque ensemble de configurations alternatives.
| Configuration | Barème tarifaire | Quantité prévisionnelle | Générer de l’audio | Niveau de service | Unité de facturation | Coût |
|---|---|---|---|---|---|---|
| ConfigurationTarifs de base des jetons | Barème tarifaireTarif de base | Quantité prévisionnelle— | Générer de l’audio— | Niveau de service— | Unité de facturation— | Coût Entrée · Tokens en entrée · Estimation à des fins de comparaison uniquement — / 1K tokens Sortie · Tokens en sortie · Estimation à des fins de comparaison uniquement — / 1K tokens Entrée · Lecture du cache · Estimation à des fins de comparaison uniquement — / 1K tokens Entrée · Écriture dans le cache · Estimation à des fins de comparaison uniquement — / 1K tokens Entrée · Écriture dans le cache, 1 h · Estimation à des fins de comparaison uniquement — / 1K tokens |
| ConfigurationNiveau de service hors ligne (flex). Sortie avec audio synchronisé. | Barème tarifaire— | Quantité prévisionnelle— | Générer de l’audioAvec audio | Niveau de serviceflex | Unité de facturationpar 1K tokens vidéo | Coût Sortie · Estimation à des fins de comparaison uniquement $0.0024 par 1K tokens vidéo |
| ConfigurationNiveau de service hors ligne (flex). Sortie sans audio synchronisé. | Barème tarifaire— | Quantité prévisionnelle— | Générer de l’audioSans audio | Niveau de serviceflex | Unité de facturationpar 1K tokens vidéo | Coût Sortie · Estimation à des fins de comparaison uniquement $0.0012 par 1K tokens vidéo |
| ConfigurationNiveau de service en ligne (default). Sortie avec audio synchronisé. | Barème tarifaire— | Quantité prévisionnelle— | Générer de l’audioAvec audio | Niveau de servicedefault | Unité de facturationpar 1K tokens vidéo | Coût Sortie · Estimation à des fins de comparaison uniquement $0.0048 par 1K tokens vidéo |
| ConfigurationNiveau de service en ligne (default). Sortie sans audio synchronisé. | Barème tarifaire— | Quantité prévisionnelle— | Générer de l’audioSans audio | Niveau de servicedefault | Unité de facturationpar 1K tokens vidéo | Coût Sortie · Estimation à des fins de comparaison uniquement $0.0024 par 1K tokens vidéo |
| ConfigurationCoût estimé de la génération | Barème tarifaire— | Quantité prévisionnelleEstimation pour une génération | Générer de l’audio— | Niveau de service— | Unité de facturation— | Coût Sortie · Coût estimé de génération · Estimation à des fins de comparaison uniquement $0.1152 estimation avant génération Cette estimation ne constitue ni des frais supplémentaires ni un tarif fixe pour la génération terminée. |
Ailoot réserve un montant estimé avant une requête. Après le résultat, le montant final est débité selon l’utilisation mesurée. Pour le streaming, le montant final à débiter est calculé à partir du relevé final d’utilisation. Fonctionnement de la réservation et du débit →
Exemples de requêtes
Ailoot Ultra · Vidéo
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON_REQUEST'
{"model":"doubao-seedance-1-5-pro-251215","content":[{"type":"text","text":"女孩抱着狐狸,女孩睁开眼,温柔地看向镜头,狐狸友善地抱着,镜头缓缓拉出,女孩的头发被风吹动"}],"resolution":"480p","ratio":"1:1","duration":5,"service_tier":"default","seed":-1,"camerafixed":false,"watermark":false,"execution_expires_after":172800,"generate_audio":false}
JSON_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_POLL'
import json
from pathlib import Path
from urllib.parse import quote,urljoin,urlsplit
r=json.loads(Path("result.json").read_text())
i=r.get("id")
if not isinstance(i,str) or not i.startswith("native302_"):raise SystemExit("Keep original response/headers/id; do not resubmit creation.")
u=urljoin("https://api.ailoot.ai",r.get("polling_url") or "/v1/videos/"+quote(i,safe=""))
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/videos/"):raise SystemExit("Use actual Ailoot lookup path.")
Path("poll-url.txt").write_text(u)
PY_POLL
curl --fail-with-body --silent --show-error "$(cat poll-url.txt)" -H "Authorization: Bearer $AILOOT_API_KEY" -D status-headers.txt -o status.json
set -eu
python3 - <<'PY_ASSETS'
import json
from pathlib import Path
from urllib.parse import urlsplit
r=json.loads(Path("status.json").read_text())
if r.get("status")!="succeeded":raise SystemExit("Poll same original job until an owned result is returned.")
u=r.get("content",{}).get("video_url")
urls=[u] if isinstance(u,str) else u
if not isinstance(urls,list) or not urls:raise SystemExit("No completed video URL.")
for u in urls:
if not isinstance(u,str):raise SystemExit("Invalid returned URL.")
p=urlsplit(u)
if p.scheme!="https" or p.netloc!="api.ailoot.ai" or not p.path.startswith("/v1/media/assets/") or not p.path.endswith("/content") or not p.query:raise SystemExit("Wait for actual Ailoot-owned signed result.")
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_ASSETS
index=0
while IFS= read -r asset_url; do
curl --fail-with-body --silent --show-error "$asset_url" -o "video-${index}.bin"
index=$((index + 1))
done < asset-urls.txt
Recevoir et enregistrer les résultats
Ailoot Ultra · Vidéo
JSON natif avec les valeurs publiques id/polling_url. Après publication, content.video_url contient les URL signées appartenant à Ailoot ; avant publication, les URL des résultats sélectionnés sont vidées.
GET /v1/videos/{request_id}GET /v1/videos/generations/{request_id}GET /v1/videos/{request_id}/contentGET /v1/videos/generations/{request_id}/content
Conserver tous les résultats terminés
Enregistrez chaque vidéo terminée ou fichier renvoyé ; récupérez chaque URL de ressource effectivement renvoyée.
Conservez chaque URL réelle dans content.video_url ; index doit identifier un résultat réellement renvoyé.
Si la réponse d’origine doit être vérifiée
Conservez la réponse, les en-têtes et l’identifiant d’origine et consultez périodiquement cette opération ; ne renvoyez jamais une demande de création dont l’issue est inconnue.
Champs de la réponse
| Champ | Type |
|---|---|
Champid | Typestring |
Champprovider_task_id | Typestring |
Champpolling_url | Typestring |
Champstatus | Typestring when supplied |
Champcontent.video_url | Typestring|string[] |
Champusage | Typeobject when supplied |
Erreurs et étapes suivantes
| Réponse | Condition | Étape suivante |
|---|---|---|
Réponse400 · invalid_request_error | ConditionJSON, modèle, types des champs obligatoires ou indice de contenu invalides. | Étape suivante |
Réponse401 · authentication_error | ConditionClé API Ailoot invalide. | Étape suivante |
Réponse404 · not_found_error | ConditionTâche ou résultat absent, ou n’appartenant pas au même utilisateur, à la même clé API ou au même groupe. | Étape suivante |
Réponse502 · result_pending_check | ConditionEnvoi ou état d’origine incomplet ; conservez l’identifiant d’origine, sans renvoyer la demande. | Étape suivante |
Réponse503 · result_pending_check | ConditionLe média, la route ou la facturation définitive d’origine est en cours de vérification ; poursuivez l’opération d’origine. | Étape suivante |
Alias
Alias du modèle
Ailoot Ultra doubao-seedance-1-5-pro-251215
Alias des chemins de méthode
/v1/videos/generations
ID d’appel associés
FAQ · ByteDance: Seedance 1.5 Pro
- Quelles entrées et quels résultats sont disponibles ?
POST /v1/videos·doubao-seedance-1-5-pro-251215:text,image→video- Quels champs la requête utilise-t-elle ?
POST /v1/videos·doubao-seedance-1-5-pro-251215:model,content,duration,resolution,ratio,service_tier,seed,camerafixed,watermark,execution_expires_after,generate_audio- Quelles limites s’appliquent ?
POST /v1/videos·doubao-seedance-1-5-pro-251215:seed.minimum:-1;seed.maximum:4294967295;execution_expires_after.minimum:3600;execution_expires_after.maximum:259200