APIMaster.ai

API de Génération Vidéo Seedance 2.0 Fast

Paramètres Seedance 2.0 Fast, médias de référence, tâches asynchrones, téléchargements authentifiés et facturation à la durée sur APIMaster.

Génération vidéo Seedance 2.0 Fast

Utilisez seedance-2.0-fast pour la génération texte-vers-vidéo, image-vers-vidéo, première/dernière image, et les références vidéo ou audio. Fast prend en charge 480p et 720p, avec des durées de sortie de 4 à 15 secondes.

Pour la génération de première/dernière image, définissez explicitement aspect_ratio: "adaptive". L'audio de référence doit accompagner une image ou une vidéo. Conservez votre clé API APIMaster sur votre serveur.

Points de terminaison et authentification

URL de base : https://apimaster.ai/v1. Envoyez Authorization: Bearer YOUR_API_KEY lors de la soumission, de l'interrogation et du téléchargement.

Opération Méthode et chemin
Créer une vidéo POST /v1/videos/generations
Interroger un résultat compatible GET /v1/video/generations/{task_id}
Interroger un résultat de style OpenAI GET /v1/videos/{task_id}
Télécharger la vidéo GET /v1/videos/{task_id}/content
Télécharger la dernière image demandée GET /v1/videos/{task_id}/last-frame

Utilisez le task_id public renvoyé par APIMaster. Les tâches vidéo et les tâches de révision de médias sont des ressources différentes : utilisez les points de terminaison d'interrogation vidéo ci-dessus pour les vidéos. Une requête acceptée crée une tâche asynchrone ; un succès HTTP ne signifie pas que la vidéo est terminée.

Paramètres

Champ Type Requis / par défaut Description
model chaîne Requis seedance-2.0-fast
prompt chaîne Requis Jusqu'à 4000 caractères. Décrivez le sujet, le mouvement, la scène, la caméra et l'audio souhaité ; des prompts concis sont plus faciles à contrôler.
duration entier 5 Longueur de sortie, 4–15 secondes. -1 n'est pas pris en charge.
resolution chaîne 720p 480p ou 720p ; 1080p et 4k ne sont pas pris en charge.
aspect_ratio chaîne 16:9 16:9, 9:16, 1:1, 4:3, 3:4, 21:9, ou adaptive.
ratio chaîne Identique à aspect_ratio Alias APIMaster. Si les deux apparaissent, leurs valeurs doivent correspondre.
size chaîne Identique à aspect_ratio Un ratio tel que 16:9 ou adaptive. Préférez aspect_ratio et resolution pour exprimer les deux dimensions séparément. Des spécifications conflictuelles renvoient 400.
seed entier Omis Contrôle la variation ; des graines identiques ne garantissent pas une sortie identique.
generate_audio booléen true Générer un audio d'accompagnement ; utilisez false pour une sortie silencieuse.
image_urls tableau de chaînes Omis Jusqu'à 9 images de référence. URLs d'images publiques ou IDs asset:// APIMaster approuvés.
image_with_roles tableau d'objets Omis Objets image avec url et role ; ne peuvent pas apparaître avec image_urls. Voir les règles de rôle ci-dessous.
video_urls tableau de chaînes Omis Jusqu'à 3 vidéos de référence, avec une durée d'entrée facturable totale d'au plus 15 secondes. Voir les exigences de matériel.
audio_urls tableau de chaînes Omis Jusqu'à 3 fichiers audio de référence, durée combinée d'au plus 15 secondes. Nécessite des références image ou vidéo.
return_last_frame booléen false En cas de succès, renvoie une URL de téléchargement authentifiée APIMaster pour la dernière image lorsque le résultat inclut une dernière image.
nsfw_check booléen false Demande une modération du contenu texte/image avant la génération. Les vidéos et l'audio ne sont pas inclus dans cette passe de modération.
tools tableau d'objets Omis Déclaration d'outil de recherche : [{"type":"web_search"}].

La génération d'ébauche et les mises à niveau d'ébauche sont exclusives à Seedance 2.5. Ne passez pas draft: true ou draft_task_id à ce modèle.

Matériaux de référence

Fournissez des URL HTTPS accessibles publiquement, ou des ID approuvés depuis votre bibliothèque média APIMaster. Les fichiers situés derrière des pages de connexion ou nécessitant vos propres en-têtes d'autorisation ne peuvent pas être récupérés. Un téléchargement d'image réussi n'implique pas l'approbation du contenu ou sa conformité à chaque exigence du modèle.

Matériel Exigences
Images de référence Jusqu'à 9 ; utilisez des images JPEG/PNG RVB lisibles. Le point de terminaison de téléchargement d'images d'APIMaster a sa propre limite de 20 MiB et accepte JPEG, PNG, GIF et WebP.
Vidéos de référence Jusqu'à 3 ; vidéo MP4/MOV, H.264/H.265 ; audio AAC/MP3 lorsque présent. Utilisez une vidéo de référence de 480p–720p. La durée combinée de référence doit tenir dans 15 secondes facturables. APIMaster vérifie la durée accessible du MP4/MOV avant de facturer ; les durées des clips d'entrée sont arrondies à la seconde supérieure pour cette vérification et la facturation.
Audio de référence Jusqu'à 3 ; WAV ou MP3, au maximum 20 MB par fichier, durée combinée au maximum 15 secondes. Toujours accompagner une image ou une vidéo de référence.

Utilisez des images claires avec suffisamment de détails, évitez les fichiers corrompus ou incomplets, et gardez le mouvement des vidéos de référence cohérent avec votre prompt. Les médias peuvent échouer à une vérification asynchrone de format ou de contenu même si la soumission est acceptée.

Rôles des images

role Signification
first_frame Image de départ ; au plus une
last_frame Image de fin ; au plus une, et nécessite une première image
reference_image Image de référence, incluant les assets de personnage approuvés

Pour les tâches avec première/dernière image, définissez aspect_ratio sur adaptive et omettez video_urls et audio_urls. Utilisez image_with_roles pour les rôles explicites ; ne passez pas également image_urls.

{
  "model": "seedance-2.0-fast",
  "prompt": "A paper boat drifts gently from the starting composition to the ending composition",
  "duration": 5,
  "resolution": "720p",
  "aspect_ratio": "adaptive",
  "image_with_roles": [
    {"url": "https://your-storage.example/start.png", "role": "first_frame"},
    {"url": "https://your-storage.example/end.png", "role": "last_frame"}
  ],
  "generate_audio": false
}

Téléchargements et bibliothèque média

Téléchargez une image locale avec POST /v1/uploads/images en utilisant le champ multipart file et l'autorisation Bearer. Le url de niveau supérieur retourné peut être utilisé comme entrée d'image publique.

curl "https://apimaster.ai/v1/uploads/images" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@reference.png"

Pour les matériaux réutilisables ou de personnage, créez un groupe avec POST /v1/seedance2/private-avatar/groups, soumettez les matériaux avec POST /v1/seedance2/private-avatar/assets, interrogez l'examen avec GET /v1/tasks/{asset_task_id}, et utilisez uniquement les assets Active comme asset://{asset_id}. Ces ressources appartiennent à votre compte. Spécifiez explicitement model: "seedance-2.0-fast". Les ID d'asset d'une autre plateforme ou compte ne peuvent pas être utilisés ici.

Voir le flux de travail de la bibliothèque média pour la création, la soumission, l'examen, les échecs partiels et la suppression. Les points de terminaison de téléchargement et de gestion des assets sont partagés ; les limites de génération sur cette page s'appliquent à Fast. Un examen échoué peut ne retourner aucune raison détaillée ; utilisez des matériaux clairs et conformes dans un format pris en charge et soumettez un nouvel examen. Ne recréez pas de manière répétée une tâche pendant qu'un examen existant est encore en cours de traitement.

Soumettre une vidéo

curl "https://apimaster.ai/v1/videos/generations" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model":"seedance-2.0-fast",
    "prompt":"A small paper boat on calm water at sunrise, gentle tracking shot",
    "duration":5,
    "resolution":"720p",
    "aspect_ratio":"16:9",
    "generate_audio":true,
    "return_last_frame":true
  }'

Réponse de création :

{"code":200,"data":[{"status":"submitted","task_id":"task_PUBLIC_VIDEO_ID"}]}

Un délai d'expiration à la soumission est ambigu : la requête peut avoir été acceptée. Vérifiez votre historique de tâches avant de resoumettre ; une autre soumission réussie crée une tâche facturable séparée.

Références vidéo et audio

{
  "model": "seedance-2.0-fast",
  "prompt": "Follow the reference motion and keep the scene consistent with the image",
  "duration": 5,
  "resolution": "720p",
  "aspect_ratio": "adaptive",
  "image_urls": ["https://your-storage.example/reference.png"],
  "video_urls": ["https://your-storage.example/reference.mp4"],
  "audio_urls": ["https://your-storage.example/reference.mp3"],
  "generate_audio": true
}

Interroger et télécharger

Interrogez toutes les 3–5 secondes. Arrêtez quand c'est réussi ou échoué.

curl "https://apimaster.ai/v1/video/generations/task_PUBLIC_VIDEO_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"

Succès de requête compatible :

{
  "code":"success",
  "message":"",
  "data":{
    "error":null,
    "format":"mp4",
    "metadata":null,
    "status":"succeeded",
    "task_id":"task_PUBLIC_VIDEO_ID",
    "url":"https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/content",
    "actual_time":118,
    "last_frame_url":"https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/last-frame"
  }
}

L'exemple inclut des champs de complétion optionnels. actual_time est le temps écoulé entre la soumission et la complétion en secondes, et non la durée facturable de la vidéo. last_frame_url est omis si une dernière image n'a pas été demandée ou n'est pas disponible. Les tâches échouées n'incluent pas les champs de temps écoulé ou de dernière image réservés aux succès.

Requête de style OpenAI :

curl "https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"
Signification data.status compatible status de style OpenAI
En attente queued queued
En génération processing in_progress
Succès succeeded completed
Échec failed failed

L'objet de style OpenAI utilise id pour l'ID public de la tâche et url pour l'URL de téléchargement de la vidéo. Les champs optionnels actual_time et last_frame_url apparaissent au niveau supérieur. En cas d'échec, consultez error.message dans l'objet de résultat correspondant. Les réponses n'incluent pas de champs monétaires.

Téléchargez avec la clé API du même compte. Ouvrir une URL de résultat sans autorisation est insuffisant. Sauvegardez la sortie rapidement.

curl -L "https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/content" \
  -H "Authorization: Bearer YOUR_API_KEY" -o output.mp4
curl -L "https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID/last-frame" \
  -H "Authorization: Bearer YOUR_API_KEY" -o last-frame.jpg

Flux de travail Python complet

import os
import time
import requests

base = "https://apimaster.ai/v1"
headers = {"Authorization": f"Bearer {os.environ['APIMASTER_API_KEY']}"}
response = requests.post(base + "/videos/generations", headers=headers, json={
    "model": "seedance-2.0-fast",
    "prompt": "A small paper boat on calm water at sunrise",
    "duration": 5,
    "resolution": "720p",
    "aspect_ratio": "16:9",
    "generate_audio": True,
    "return_last_frame": True,
}, timeout=90)
response.raise_for_status()
task_id = response.json()["data"][0]["task_id"]
for _ in range(240):
    response = requests.get(base + "/video/generations/" + task_id,
                            headers=headers, timeout=30)
    response.raise_for_status()
    task = response.json()["data"]
    if task["status"] == "failed":
        raise RuntimeError((task.get("error") or {}).get("message", "Video failed"))
    if task["status"] == "succeeded":
        print("Elapsed seconds:", task.get("actual_time"))
        for field, filename in [("url", "output.mp4"), ("last_frame_url", "last-frame.jpg")]:
            if task.get(field):
                with requests.get(task[field], headers=headers, stream=True, timeout=120) as result:
                    result.raise_for_status()
                    with open(filename, "wb") as out:
                        for chunk in result.iter_content(1024 * 1024):
                            out.write(chunk)
        break
    time.sleep(5)
else:
    raise TimeoutError("Task still processing; query the same task_id later")

Facturation à la durée

Il existe quatre paliers : 480P, 720P, 480P-input et 720P-input. Un palier étiqueté "vidéos téléchargées" signifie que la requête contient une entrée vidéo de référence. Sélectionnez le palier d'entrée pour la résolution de sortie demandée, même si des références image/audio sont également présentes.

  • Sans vidéo de référence : secondes de vidéo générées × le prix unitaire correspondant à la résolution.
  • Avec vidéo de référence : (secondes totales de vidéo de référence + secondes de vidéo générées) × le prix unitaire correspondant au palier d'entrée.
  • Le prix unitaire de base configuré est multiplié par les coefficients applicables du canal et du compte/groupe pour obtenir votre prix unitaire final. Consultez la fiche de votre modèle et les relevés de consommation de votre portefeuille pour connaître le prix applicable.

Par exemple, une vidéo de référence de 4 secondes et une sortie de 5 secondes utilisent 9 secondes facturables au palier d'entrée. Le prix unitaire du palier d'entrée peut différer du palier standard ; ne calculez pas uniquement la durée de sortie et n'appliquez pas le palier standard aux références vidéo. Les images et l'audio n'ajoutent pas de secondes de vidéo de référence. L'audio généré n'introduit pas de palier son/silence séparé pour ces quatre prix configurés.

La soumission réserve la durée de sortie demandée, plus la durée vérifiée de la vidéo d'entrée lorsqu'elle est présente. Une durée de sortie omise réserve 5 secondes de sortie. La tâche conserve son tarif au moment de la soumission ; l'achèvement réconcilie la durée réelle. Un échec de génération rembourse le coût de la tâche vidéo.

Erreurs et dépannage

Les requêtes invalides renvoient une erreur HTTP. Lisez le message d'erreur JSON ainsi que le code de statut. La validation des paramètres utilise l'encapsuleur d'erreur d'APIMaster, par exemple :

{"code":"invalid_request","message":"First/last-frame tasks require adaptive aspect_ratio","data":null}
Problème Action
Résolution / durée non prise en charge Choisissez 480p ou 720p, et une durée entière de 4 à 15.
Ratio ou taille en conflit Utilisez des valeurs cohérentes pour aspect_ratio, ratio, size et resolution ; de préférence, conservez uniquement la paire ratio/résolution explicite.
Contraintes sur la première/dernière image Utilisez adaptive, au plus un de chaque rôle, et omettez les références vidéo/audio.
La vidéo de référence ne peut pas être inspectée Fournissez un fichier MP4/MOV complet et accessible avec une durée valide.
Audio de référence sans image/vidéo Ajoutez des références image/vidéo ou supprimez la référence audio.
Rejet par modération de contenu Modifiez le texte ou l'image et soumettez une nouvelle requête. Un échec du service de modération peut permettre à la génération de continuer ; ce n'est pas une garantie de sécurité absolue.
FormatUnsupported / Rejet asynchrone de format/contenu Lisez le error.message de la tâche échouée, vérifiez les formats et les exigences matérielles, et remplacez la source.
401 Fournissez une clé API Bearer valide.
Solde insuffisant Rechargez ou utilisez une clé avec un quota suffisant.
429 / erreur temporaire du service Attendez et réessayez avec un délai d'attente progressif ; évitez les soumissions en double après un délai d'expiration ambigu.

Les requêtes synchrones avec paramètres invalides ne créent pas de tâches vidéo ni ne facturent la génération. Les tâches acceptées peuvent toujours échouer de manière asynchrone ; vérifiez le statut final de la tâche avant d'utiliser un résultat.

Voir aussi : Vue d'ensemble de la génération vidéo, Seedance 2.0, Seedance 2.0 Mini et Seedance 2.5.