modèles

ByteDance: Seedance 1.0 Pro

Markdown · JSON

ByteDance: Seedance 1.0 Pro

Seedance 1.0 Pro génère une vidéo sans son à partir de texte ou d’une image initiale. Décrivez l’action et la caméra, ou animez une composition existante, avec une durée de 2 à 12 secondes, 24 fps et des réglages explicites de cadrage et de résolution de sortie.

À 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.0 Pro génère une vidéo à partir de texte ou d’une scène guidée par une image. Le sélecteur doubao-seedance-1-0-pro-250528 accepte les deux modes d’entrée : le point de départ peut donc être un concept écrit ou une composition visuelle existante. Utilisez un brief textuel pour créer une nouvelle scène, ou fournissez une image lorsque le sujet, sa disposition et la vue initiale doivent être établis visuellement. Ce profil 1.0 produit une vidéo sans son ; le son synchronisé relève du profil 1.5 Pro décrit séparément.

Pour la génération texte-vers-vidéo, précisez le sujet, l’environnement, le mouvement, le cadrage et la caméra dans une scène cohérente. L’exemple documenté passe progressivement d’un champ de marguerites à une vue rapprochée d’une fleur dont les pétales portent de la rosée. Cette structure convient à d’autres mises en valeur : présentez le décor, rapprochez-vous du sujet et terminez sur le détail important. Pour un concept de produit, décrivez la matière et l’éclairage ainsi que l’action, et donnez à la caméra un trajet réalisable pendant ce plan court.

Pour la génération image-vers-vidéo, placez la référence dans un élément de contenu image_url et expliquez ce qui doit changer par rapport à cette vue initiale. Un portrait préparé peut définir la personne et le cadrage, tandis que le brief décrit une légère rotation, des cheveux en mouvement ou un doux recul de caméra. Une photographie de produit peut établir l’objet et l’arrière-plan, tandis que le prompt demande une mise en valeur contrôlée. Gardez le mouvement demandé compatible avec la composition source ; l’image d’une face d’un objet ne fournit pas une vue exacte de toutes les autres faces non visibles.

Le champ image accepte une URL accessible ou une URL de données contenant des données d’image Base64. Les formats documentés sont JPEG, PNG, WEBP, BMP, TIFF et GIF. Les images doivent peser moins de 30 MB, avec un rapport largeur/hauteur strictement compris entre 0,4 et 2,5 et chaque dimension strictement comprise entre 300 et 6 000 pixels. Préparez une source nette avec le cadrage voulu plutôt que de vous appuyer sur une miniature dont les détails distinctifs manquent déjà. Pour la génération image-vers-vidéo, le guide recommande un cadrage adaptatif qui suit les proportions de la référence.

La durée documentée pour la version 1.0 va de deux à douze secondes, avec une cadence de 24 fps. Les réglages de sortie comprennent les niveaux 480p, 720p et 1080p, avec 1080p comme valeur par défaut de Pro ; le guide exclut 1080p dans le cas d’une image de référence. Les cadrages fixes comprennent 16:9, 4:3, 1:1, 3:4, 9:16 et 21:9. Choisissez une combinaison compatible avec les images pour un plan guidé par une image, au lieu de reprendre tous les réglages texte-vers-vidéo tels quels. Vérifiez le cadrage réellement renvoyé avant d’intégrer le clip dans une mise en page.

Les réglages de graine aléatoire et de filigrane sont documentés avec camerafixed. La consigne de caméra fixe n’est pas prise en charge dans le cas d’une image de référence et, lorsqu’elle s’applique, le guide ne garantit pas une caméra parfaitement immobile. Les instructions de paramètres intégrées au prompt prennent le pas sur les champs facultatifs distincts. Gardez un seul réglage faisant autorité pour la durée, la résolution et le rapport d’aspect, et faites concorder la description de caméra avec celui-ci. Cela évite que le brief de scène remplace silencieusement les réglages sélectionnés pour la requête.

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 processus renvoie d’abord un identifiant de tâche, puis l’emplacement de la vidéo achevée après traitement. Conservez l’identifiant pendant la consultation des états en attente ou en cours ; une tâche réussie fournit content.video_url et les informations d’utilisation. La durée documentée de conservation des fichiers générés est de sept jours. Enregistrez le clip achevé, l’image source et le prompt exact comme historique de révision, puis vérifiez l’apparence du sujet, le mouvement, la continuité de l’image et la composition finale sur l’ensemble du résultat.

Ailoot Ultra · Vidéo POST /v1/videos doubao-seedance-1-0-pro-250528

doubao-seedance-1-0-pro-250528

ByteDance /doubao-seedance-1-0-pro-250528

Premiers pas

Seedance 1.0 Pro génère une vidéo sans son à partir de texte ou d’une image initiale. Décrivez l’action et la caméra, ou animez une composition existante, avec une durée de 2 à 12 secondes, 24 fps et des réglages explicites de cadrage et de résolution de sortie.

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
Types d’entrée
text, image
Types de sortie
video
ChampTypeExigenceValeurs et limitesPar défaut
ChampmodelTypestringExigenceObligatoireValeurs et limites
doubao-seedance-1-0-pro-250528
Par défaut—
ChampcontentTypearrayExigenceObligatoireValeurs et limites
Conditions: Objets natifs de texte ou de média ; le tableau externe doit être non vide. Les types des nœuds imbriqués ne sont pas validés par ce constructeur générique Ailoot.
Par défaut—
ChampdurationTypeintegerExigenceFacultatifValeurs et limites
Minimum: 2
Maximum: 12
Conditions: Schéma principal 1.x : 2–12 ; une description commune ultérieure indique 4–12 ou -1 pour 1.5. L’exemple utilise 5, valeur documentée dans les deux cas.
Par défaut5
ChampresolutionTypestringExigenceFacultatifValeurs et limites
Conditions: Les valeurs confirmées pour la génération de vidéo à partir de texte sont 480p et 1080p. L’entrée par image de référence exclut 1080p. L’énumération commune 720p contredit la description propre au modèle ; la prise en charge de 720p reste donc indéterminée dans les deux modes.
Par défaut1080p
ChampratioTypestringExigenceFacultatifValeurs et limites
16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive
Conditions: Valeurs par défaut dépendant de la scène ou du modèle ; la documentation de l’entrée image recommande adaptive.
Par défaut—
Champservice_tierTypestringExigenceFacultatifValeurs et limites
default, flex
Conditions: default=online, flex=offline ; choisissez avant la création.
Par défautdefault
ChampseedTypeintegerExigenceObligatoireValeurs et limites
Minimum: -1
Maximum: 4 294 967 295
Par défaut-1
ChampcamerafixedTypebooleanExigenceObligatoireValeurs et limites
Conditions: Obligatoire pour Ailoot ; le contrôle de la caméra avec une image de référence est documenté comme non pris en charge et son effet n’est pas garanti.
Par défautfalse
ChampwatermarkTypebooleanExigenceObligatoireValeurs et limitesPar défautfalse
Champexecution_expires_afterTypeintegerExigenceObligatoireValeurs et limites
Minimum: 3 600
Maximum: 259 200
Unité: secondes
Par défaut172 800
Combinaisons d’éléments d’entrée

Paramètres et cycle de vie de la méthode
ParamètreContrat
Paramètrecontent_typeContratapplication/json
ParamètrerequiredContratcamerafixed, content, execution_expires_after, model, seed, watermark
ParamètreoptionalContratduration, resolution, ratio, service_tier
Paramètrematerial_typesContrattext, image
Paramètreadditional_propertiesContrattrue
Paramètrevalidation_scopeContratAiloot vérifie les types des champs obligatoires ainsi qu’un champ model et un tableau content non vides. Les autres champs de requête sont conservés pour le modèle sélectionné.
Paramètreimage_constraintsContrat{"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.

Interrogez la tâche d’origine ; téléchargez le contenu réel content.video_url vous appartenant 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.

ConfigurationBarème tarifaireQuantité prévisionnelleUnité de facturationCoût
ConfigurationTarifs de base par jetonBarème tarifaireTarif de baseQuantité 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
ConfigurationUltraBarème tarifaire—Quantité prévisionnelle—Unité de facturationpar 1K tokens vidéoCoût
Sortie · Estimation à des fins de comparaison uniquement $0.0044 par 1K tokens vidéo
ConfigurationCoût de génération estiméBarème tarifaire—Quantité prévisionnelleEstimation pour une générationUnité de facturation—Coût
Sortie · Coût estimé de génération · Estimation à des fins de comparaison uniquement $0.2112 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

curl · créer une vidéocurl · lire la tâche d’originecurl · télécharger votre vidéo
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
cat > request.json <<'JSON_REQUEST'
{"model":"doubao-seedance-1-0-pro-250528","content":[{"type":"text","text":"女孩抱着狐狸,女孩睁开眼,温柔地看向镜头,狐狸友善地抱着,镜头缓缓拉出,女孩的头发被风吹动"}],"resolution":"480p","ratio":"1:1","duration":5,"service_tier":"default","seed":-1,"camerafixed":false,"watermark":false,"execution_expires_after":172800}
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}/content
  • GET /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 une sortie réelle renvoyé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 à nouveau une création dont l’issue est inconnue.

Champs de la réponse
ChampType
ChampidTypestring
Champprovider_task_idTypestring
Champpolling_urlTypestring
ChampstatusTypestring when supplied
Champcontent.video_urlTypestring|string[]
ChampusageTypeobject when supplied
Erreurs et étapes suivantes
RéponseConditionÉtape suivante
Réponse400 · invalid_request_errorConditionJSON/model, types des champs obligatoires ou index de contenu non valides.Étape suivante
Réponse401 · authentication_errorConditionClé API Ailoot non valide.Étape suivante
Réponse404 · not_found_errorConditionTâ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_checkConditionSoumission ou statut d’origine incomplet ; conservez l’identifiant d’origine, sans soumettre à nouveau.Étape suivante
Réponse503 · result_pending_checkConditionLe 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-1-0-pro-250528

Alias des chemins de méthode

/v1/videos/generations

ID d’appel associés

doubao-seedance-1-0-pro-250528

FAQ · ByteDance: Seedance 1.0 Pro
Quelles entrées et quels résultats sont disponibles ?

POST /v1/videos · doubao-seedance-1-0-pro-250528: text, image → video

Quels champs la requête utilise-t-elle ?

POST /v1/videos · doubao-seedance-1-0-pro-250528: model, content, duration, resolution, ratio, service_tier, seed, camerafixed, watermark, execution_expires_after

Quelles limites s’appliquent ?

POST /v1/videos · doubao-seedance-1-0-pro-250528: duration.minimum: 2; duration.maximum: 12; seed.minimum: -1; seed.maximum: 4294967295; execution_expires_after.minimum: 3600; execution_expires_after.maximum: 259200

Plus de détails

Connectez Ailoot à Claude Code, OpenCode, Hermes ou à votre application.

L’entreprise et son portefeuille de projets

L’entreprise et son portefeuille de projets : des millions de clients ; des ventes qui se chiffrent en milliards chaque mois.

Achetez des tokens à prix réduit.

Une remise d’abonnement pour le travail régulier. Des codes promo jusqu’à 50% sur l’achat de tokens.

Abonnement
Choisissez une offre à tarif réduit pour vos requêtes régulières.
Code promo jusqu’à 50%
Saisissez le code à l’achat. Le prix est recalculé selon la promotion en cours.
Dépenses dans l’historique
Modèle, tokens et montant sont enregistrés pour chaque requête.

Choisir un abonnement · Voir les prix des modèles

Connectez l’API au produit que vous vendez.

SaaS, applications et bots selon l’offre officielle et le contrat de licence Ailoot. Pour la revente, demandez une licence revendeur.

Application commerciale
Intégrez la génération de texte, d’images, de vidéo et de son aux fonctions payantes de votre service.
Licence revendeur
Envoyez la description du projet et le mode d’accès. Demandez des conditions écrites d’utilisation et de revente.
Documents sur le site
L’offre officielle, le contrat de licence et la politique de traitement des données sont accessibles avant connexion.

Demander une licence revendeur · Offre officielle et contrat de licence