ByteDance: Seedance 2.5
Seedance 2.5 crée une vidéo à partir de texte et de références image, vidéo ou audio, avec des processus documentés de modification et de prolongement. Son exemple propre à 2.5 combine une image de produit avec plusieurs références de mouvement et active le son généré pour une séquence publicitaire coordonnée.
À 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 2.5 crée une vidéo à l’aide d’une scène écrite et de références multimodales. Le sélecteur exact doubao-seedance-2-5-260628 possède sa propre opération documentée et son propre exemple. Cette opération décrit la génération, la modification et le prolongement de vidéos, avec des images, de la vidéo, de l’audio et du texte comme médias d’entrée. Utilisez les références pour communiquer l’apparence du sujet, l’action, le mouvement de caméra, le style et le son, puis expliquez le résultat à créer à partir de ces éléments.
Les combinaisons d’entrée comprennent le texte seul, des images ou une vidéo avec du texte facultatif, des images avec de l’audio, une vidéo avec de l’audio et des images, une vidéo et de l’audio ensemble. Les combinaisons répertoriées associent l’audio à des médias visuels plutôt que de décrire une requête contenant uniquement de l’audio. Organisez chaque élément selon son rôle : une image établit un sujet ou un style visuel, une vidéo montre un mouvement ou une scène existante, et l’audio fournit une référence sonore. Indiquez quel rôle compte pour le plan demandé afin qu’une référence d’arrière-plan ne soit pas confondue avec le personnage principal.
L’exemple propre à 2.5 est une séquence publicitaire de produit. Il fournit une image et plusieurs références vidéo, puis décrit un point d’intérêt initial, des dispositions ordonnées de produits, des plans de détail, une action au ralenti et une composition finale de marque. La requête attribue les rôles reference_image et reference_video et utilise les différentes références pour la composition, le mouvement, le travail de caméra et l’impact. Cela donne une structure pratique pour un concept de campagne : planifiez les temps forts visibles, identifiez la référence de chacun et précisez la disposition finale.
Une séquence écrite peut distinguer ce qui se passe de la manière dont cela est filmé. Décrivez d’abord l’action du produit, puis l’échelle de plan, le trajet de caméra, le rythme et la transition vers la vue suivante. Si une référence définit le produit et une autre montre un mouvement de caméra, nommez ces responsabilités distinctes. Pour une scène avec plusieurs objets, expliquez leurs positions et l’ordre des interactions. Vérifiez la forme, la disposition et le mouvement réels du produit dans le résultat généré plutôt que de supposer que chaque détail de référence apparaît sans changement.
Pour une modification, identifiez la vidéo existante et l’élément à réviser, comme le décor, une action ou le style visuel, tout en indiquant la continuité à conserver. Pour un prolongement, décrivez comment la scène doit continuer à partir de la séquence fournie. Vérifiez la jonction ainsi que le nouveau segment : l’apparence du sujet, la direction du mouvement, la position de caméra et le placement du son dans le temps déterminent tous si le résultat se lit comme une seule scène. Gardez ensemble la vidéo d’origine et la révision achevée pour vérifier le changement par rapport à la continuité voulue.
L’exemple multimodal documenté de 2.5 définit generate_audio=true et demande une séquence de quinze secondes avec un cadrage 16:9. Ces valeurs décrivent cet exemple, et non un plafond universel de durée ou une limite de ressources de référence. Donnez à la scène demandée une intention sonore claire, notamment la relation entre la musique, les effets et l’action visible, puis évaluez la sortie audiovisuelle réelle. Une référence sonore et la bande-son générée doivent être vérifiées ensemble pour le rythme et l’interprétation voulus.
Choisissez la durée, le cadrage et la résolution parmi les réglages proposés pour ce profil exact. Gardez la configuration demandée avec le prompt et comparez-la aux champs réellement renvoyés par la tâche. Utilisez la durée, la résolution et le rapport d’aspect renvoyés pour préparer le clip achevé à sa destination. Préservez l’identifiant exact du profil dans l’historique de révision afin qu’une comparaison ultérieure utilise la même édition sélectionnée.
L’utilisation en tokens vidéo est calculée ainsi : (durée de la vidéo d’entrée + durée de la vidéo de sortie) × largeur de sortie × hauteur de sortie × cadence de sortie / 1024. Les requêtes contenant une vidéo d’entrée et celles sans vidéo d’entrée relèvent de catégories de facturation distinctes. La consultation de tâche rapporte usage.completion_tokens et usage.total_tokens ; conservez ces quantités rapportées avec le clip achevé.
La génération est asynchrone. La soumission renvoie un identifiant, et le processus de tâche configuré fournit l’état, puis content.video_url après réussite. Enregistrez le clip achevé avec les médias sources et le brief de séquence. Vérifiez tous les temps forts prévus, les interactions entre objets, l’apparence des personnages, le cadrage et l’alignement du son sur tout le résultat. Pour une révision, identifiez le détail concret manquant et préservez les parties réussies de la scène au lieu de remplacer tout le brief par des instructions sans rapport.
Ailoot Ultra · Vidéo POST /v1/videos doubao-seedance-2-5-260628
doubao-seedance-2-5-260628Premiers pas
Seedance 2.5 crée une vidéo à partir de texte et de références image, vidéo ou audio, avec des processus documentés de modification et de prolongement. Son exemple propre à 2.5 combine une image de produit avec plusieurs références de mouvement et active le son généré pour une séquence publicitaire coordonnée.
- Entrées acceptées
- Texte · Images · Vidéo · Audio
- Résultats
- Vidéo
Disponible dans Ailoot · entrées et méthodes
Ailoot Ultra · Vidéo POST /v1/videos
- Entrée
text,image,video,audio- Sortie
video
| Champ | Type | Exigence | Valeurs et limites | Par défaut |
|---|---|---|---|---|
Champmodel | Typestring | ExigenceObligatoire | Valeurs et limites doubao-seedance-2-5-260628 | Par défaut— |
Champcontent | Typearray | ExigenceObligatoire | Valeurs et limites Conditions: Objets natifs de texte ou de média ; le tableau externe ne peut pas être vide. Ce constructeur générique Ailoot ne valide pas les types des nœuds imbriqués. | Par défaut— |
Champgenerate_audio | Typeboolean | ExigenceFacultatif | Valeurs et limites Conditions: L’exemple 2.5 définit true, mais la description copiée du sélecteur répertorie uniquement 2.0/fast/1.5 ; aucune garantie plus large concernant le réglage ou sa valeur par défaut. | Par défaut— |
Champduration | Typeinteger | ExigenceFacultatif | Valeurs et limites Conditions: La valeur littérale 15 de l’exemple 2.5 n’est ni un maximum ni une valeur par défaut. | Par défaut— |
Champresolution | Typestring | ExigenceFacultatif | Valeurs et limites Conditions: Aucune valeur par défaut ou énumération propre à 2.5 n’est déduite des descriptions copiées. | Par défaut— |
Champratio | Typestring | ExigenceFacultatif | Valeurs et limites Conditions: Le mode adaptive est explicitement limité à 2.0/fast/1.5 ; l’exemple 2.5 utilise uniquement 16:9. | Par défaut— |
Champwatermark | Typeboolean | ExigenceFacultatif | Valeurs et limites | Par défautfalse |
Champseed | Typeinteger | ExigenceFacultatif | Valeurs et limites Minimum: -1 Maximum: 4 294 967 295 | Par défaut-1 |
Champexecution_expires_after | Typeinteger | ExigenceFacultatif | Valeurs et limites Minimum: 3 600 Maximum: 259 200 Unité: secondes | Par défaut172 800 |
Champservice_tier | Typestring | ExigenceFacultatif | Valeurs et limites Conditions: 2.0/fast excluent le mode flex hors ligne ; le périmètre de 2.5 n’est pas établi. | Par défaut— |
Champsafety_identifier | Typestring | ExigenceFacultatif | Valeurs et limites | Par défaut— |
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 | Contratcontent, model |
Paramètreoptional | Contratgenerate_audio, duration, resolution, ratio, watermark, seed, execution_expires_after, service_tier, safety_identifier |
Paramètrematerial_types | Contrattext, image, video, audio |
Paramètreadditional_properties | Contrattrue |
Paramètrevalidation_scope | ContratAiloot vérifie les types des champs obligatoires ainsi que la présence d’un modèle non vide et d’un tableau de contenus non vide. Les autres champs de la requête sont conservés pour le modèle sélectionné. |
Paramètrematerial_combinations | Contrattext, image, video, image, audio, image, video, video, audio, image, video, audio |
Paramètreoptional_text_with_media | Contrattrue |
Paramètrereference_media_count_and_size_limits | Contratnull |
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.
Interrogez périodiquement la tâche d’origine ; téléchargez le contenu réel content.video_url dont vous êtes propriétaire une fois l’état succeeded atteint.
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 | Unité de facturation | Coût |
|---|---|---|---|---|
| ConfigurationTarifs de base des jetons | Barème tarifaireTarif de base | Quantité prévisionnelle— | 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 |
| ConfigurationL’entrée contient une vidéo. | Barème tarifaire— | Quantité prévisionnelle— | Unité de facturationpar 1K tokens vidéo | Coût Sortie · Estimation à des fins de comparaison uniquement $0.012 par 1K tokens vidéo |
| ConfigurationL’entrée ne contient pas de vidéo. | Barème tarifaire— | Quantité prévisionnelle— | Unité de facturationpar 1K tokens vidéo | Coût Sortie · Estimation à des fins de comparaison uniquement $0.02 par 1K tokens vidéo |
| ConfigurationCoût estimé de la génération | Barème tarifaire— | Quantité prévisionnelleEstimation pour une génération | Unité de facturation— | Coût Sortie · Coût estimé de génération · Estimation à des fins de comparaison uniquement $0.822402 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-2-5-260628","content":[{"type":"text","text":"女孩抱着狐狸,女孩睁开眼,温柔地看向镜头,狐狸友善地抱着,镜头缓缓拉出,女孩的头发被风吹动"}]}
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 id/polling_url publics. Après publication, content.video_url contient une ou plusieurs URL signées appartenant à Ailoot ; avant publication, les URL de sortie sélectionnées 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’id d’origine, puis interrogez périodiquement cette opération ; ne soumettez jamais de nouveau une 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 index 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 et au même groupe. | Étape suivante |
Réponse502 · result_pending_check | ConditionSoumission ou état d’origine incomplet ; conservez l’ID d’origine et ne soumettez pas de nouveau la requête. | Étape suivante |
Réponse503 · result_pending_check | ConditionLe média, la route ou le règlement d’origine fait l’objet d’une vérification ; poursuivez l’opération d’origine. | Étape suivante |
Alias
Alias du modèle
Ailoot Ultra doubao-seedance-2-5-260628
Alias des chemins de méthode
/v1/videos/generations
ID d’appel associés
FAQ · ByteDance: Seedance 2.5
- Quelles entrées et quels résultats sont disponibles ?
POST /v1/videos·doubao-seedance-2-5-260628:text,image,video,audio→video- Quels champs la requête utilise-t-elle ?
POST /v1/videos·doubao-seedance-2-5-260628:model,content,generate_audio,duration,resolution,ratio,watermark,seed,execution_expires_after,service_tier,safety_identifier- Quelles limites s’appliquent ?
POST /v1/videos·doubao-seedance-2-5-260628:seed.minimum:-1;seed.maximum:4294967295;execution_expires_after.minimum:3600;execution_expires_after.maximum:259200