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 jetons 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 la description de la 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 toute la consigne par des instructions sans rapport.
Ailoot Ultra · Vidéo POST /v1/videos doubao-seedance-2-5-260628
doubao-seedance-2-5-260628Pour commencer
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 et de média; le tableau externe ne doit 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 indique seulement 2.0/fast/1.5; aucune garantie plus large de réglage ou de 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 ni é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 adaptatif est explicitement limité à 2.0/fast/1.5; l’exemple 2.5 utilise seulement 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 flex hors ligne; la portée pour 2.5 n’est pas établie. | 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 requis ainsi qu’un modèle et un tableau de contenu non vides. Les autres champs de la demande 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 retournées.
Interrogez la tâche d’origine; téléchargez le contenu content.video_url réel appartenant à votre compte après 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 | 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 · Jetons en entrée · Estimation à des fins de comparaison uniquement — / 1K jetons Sortie · Jetons en sortie · Estimation à des fins de comparaison uniquement — / 1K jetons Entrée · Lecture du cache · Estimation à des fins de comparaison uniquement — / 1K jetons Entrée · Écriture dans le cache · Estimation à des fins de comparaison uniquement — / 1K jetons Entrée · Écriture dans le cache, 1 h · Estimation à des fins de comparaison uniquement — / 1K jetons |
| ConfigurationL’entrée contient une vidéo. | Barème tarifaire— | Quantité prévisionnelle— | Unité de facturationpar 1K jetons vidéo | Coût Sortie · Estimation à des fins de comparaison uniquement $0.012 par 1K jetons vidéo |
| ConfigurationL’entrée ne contient pas de vidéo. | Barème tarifaire— | Quantité prévisionnelle— | Unité de facturationpar 1K jetons vidéo | Coût Sortie · Estimation à des fins de comparaison uniquement $0.02 par 1K jetons vidéo |
| ConfigurationCoût de génération estimé | 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 la publication, content.video_url contient les URL signées appartenant à Ailoot; avant la 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 désigner une sortie réelle retournée.
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 cette opération; ne soumettez jamais de nouveau une création dont l’état est inconnu.
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 de champs requis 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 sortie absente, 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 nouvelle soumission. | Étape suivante |
Réponse503 · result_pending_check | ConditionLe média, la route ou le règlement 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-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