API de Generación de Video Seedance 2.0 Fast
Parámetros de Seedance 2.0 Fast, medios de referencia, tareas asíncronas, descargas autenticadas y facturación por duración en APIMaster.
Generación de video Seedance 2.0 Fast
Utiliza seedance-2.0-fast para generación de texto a video, imagen a video, primer/último fotograma, y referencias de video o audio. Fast admite 480p y 720p, con duraciones de salida desde 4 hasta 15 segundos.
Para la generación de primer/último fotograma, establece explícitamente
aspect_ratio: "adaptive". El audio de referencia debe acompañar a una imagen o video. Mantén tu clave API de APIMaster en tu servidor.
Endpoints y autenticación
URL base: https://apimaster.ai/v1. Envía Authorization: Bearer YOUR_API_KEY al enviar, consultar y descargar.
| Operación | Método y ruta |
|---|---|
| Crear video | POST /v1/videos/generations |
| Consultar resultado compatible | GET /v1/video/generations/{task_id} |
| Consultar resultado estilo OpenAI | GET /v1/videos/{task_id} |
| Descargar video | GET /v1/videos/{task_id}/content |
| Descargar último fotograma solicitado | GET /v1/videos/{task_id}/last-frame |
Usa el task_id público devuelto por APIMaster. Las tareas de video y las tareas de revisión de medios son recursos diferentes: usa los endpoints de consulta de video anteriores para videos. Una solicitud aceptada crea una tarea asíncrona; el éxito HTTP no significa que el video haya terminado.
Parámetros
| Campo | Tipo | Requerido / predeterminado | Descripción |
|---|---|---|---|
model |
string | Requerido | seedance-2.0-fast |
prompt |
string | Requerido | Hasta 4000 caracteres. Describe el sujeto, movimiento, escena, cámara y audio deseado; los prompts concisos son más fáciles de controlar. |
duration |
integer | 5 |
Duración de salida, 4–15 segundos. -1 no es compatible. |
resolution |
string | 720p |
480p o 720p; 1080p y 4k no son compatibles. |
aspect_ratio |
string | 16:9 |
16:9, 9:16, 1:1, 4:3, 3:4, 21:9, o adaptive. |
ratio |
string | Igual que aspect_ratio |
Alias de APIMaster. Si ambos aparecen, sus valores deben coincidir. |
size |
string | Igual que aspect_ratio |
Una proporción como 16:9 o adaptive. Prefiere aspect_ratio y resolution para expresar las dos dimensiones por separado. Especificaciones conflictivas devuelven 400. |
seed |
integer | Omitido | Controla la variación; semillas coincidentes no garantizan una salida idéntica. |
generate_audio |
boolean | true |
Generar audio acompañante; usa false para salida silenciosa. |
image_urls |
string[] | Omitido | Hasta 9 imágenes de referencia. URLs públicas de imágenes o IDs de asset:// de APIMaster aprobados. |
image_with_roles |
object[] | Omitido | Objetos de imagen con url y role; no pueden aparecer junto con image_urls. Consulta las reglas de roles a continuación. |
video_urls |
string[] | Omitido | Hasta 3 videos de referencia, con una duración total facturable de entrada de como máximo 15 segundos. Consulta los requisitos del material. |
audio_urls |
string[] | Omitido | Hasta 3 archivos de audio de referencia, duración combinada como máximo 15 segundos. Requiere referencias de imagen o video. |
return_last_frame |
boolean | false |
Al completarse con éxito, devuelve una URL de descarga autenticada de APIMaster para el último fotograma cuando el resultado incluya un último fotograma. |
nsfw_check |
boolean | false |
Solicitar moderación de contenido de texto/imagen antes de la generación. Los videos y el audio no se incluyen en esta pasada de moderación. |
tools |
object[] | Omitido | Declaración de herramienta de búsqueda: [{"type":"web_search"}]. |
La generación de borradores y las actualizaciones de borradores son exclusivas de Seedance 2.5. No pases draft: true o draft_task_id a este modelo.
Materiales de referencia
Proporciona URLs HTTPS accesibles públicamente, o IDs aprobados de tu biblioteca de medios de APIMaster. Los archivos detrás de páginas de inicio de sesión o que requieran tus propios encabezados de autorización no se pueden recuperar. Una carga exitosa de imagen no implica aprobación del contenido o cumplimiento de cada requisito del modelo.
| Material | Requisitos |
|---|---|
| Imágenes de referencia | Hasta 9; usar imágenes JPEG/PNG RGB legibles. El endpoint de carga de imágenes de APIMaster tiene su propio límite de 20 MiB y acepta JPEG, PNG, GIF y WebP. |
| Videos de referencia | Hasta 3; MP4/MOV, video H.264/H.265; audio AAC/MP3 cuando esté presente. Usar 480p–720p de video de referencia. La duración combinada de referencia debe caber dentro de 15 segundos facturables. APIMaster verifica la duración accesible del MP4/MOV antes de cobrar; las duraciones de los clips de entrada se redondean hacia arriba a segundos completos para esta verificación y facturación. |
| Audio de referencia | Hasta 3; WAV o MP3, como máximo 20 MB por archivo, duración combinada como máximo 15 segundos. Siempre debe acompañar a una imagen o video de referencia. |
Usa imágenes claras con suficiente detalle, evita archivos corruptos o incompletos, y mantén el movimiento del video de referencia consistente con tu prompt. Los medios pueden fallar la revisión asíncrona de formato o contenido incluso cuando el envío es aceptado.
Roles de imagen
role |
Significado |
|---|---|
first_frame |
Fotograma inicial; como máximo uno |
last_frame |
Fotograma final; como máximo uno, y requiere un primer fotograma |
reference_image |
Imagen de referencia, incluyendo recursos de personajes aprobados |
Para tareas de primer/último fotograma, establece aspect_ratio en adaptive y omite video_urls y audio_urls. Usa image_with_roles para roles explícitos; no pases también 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
}
Cargas y biblioteca de medios
Carga una imagen local con POST /v1/uploads/images usando el campo multipart file y autorización Bearer. El url de nivel superior devuelto puede usarse como una entrada de imagen pública.
curl "https://apimaster.ai/v1/uploads/images" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@reference.png"
Para materiales reutilizables o de personajes, crea un grupo con POST /v1/seedance2/private-avatar/groups, envía materiales con POST /v1/seedance2/private-avatar/assets, consulta la revisión con GET /v1/tasks/{asset_task_id}, y usa solo los recursos con estado Active como asset://{asset_id}. Estos recursos pertenecen a tu cuenta. Especifica model: "seedance-2.0-fast" explícitamente. Los IDs de recursos de otra plataforma o cuenta no se pueden usar aquí.
Consulta el flujo de trabajo de la biblioteca de medios para creación, envío, revisión, fallos parciales y eliminación. Los endpoints de carga y gestión de recursos son compartidos; los límites de generación en esta página se aplican a Fast. Una revisión fallida puede no devolver una razón detallada; usa material claro y conforme en un formato soportado y envía una nueva revisión. No recrees repetidamente una tarea mientras una revisión existente aún se está procesando.
Enviar un video
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
}'
Respuesta de creación:
{"code":200,"data":[{"status":"submitted","task_id":"task_PUBLIC_VIDEO_ID"}]}
Un tiempo de espera de envío es ambiguo: la solicitud puede haber sido aceptada. Revisa tu historial de tareas antes de reenviar; otro envío exitoso crea una tarea facturable separada.
Referencias de video y 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
}
Consultar y descargar
Consulta cada 3 a 5 segundos. Detente cuando sea exitoso o falle.
curl "https://apimaster.ai/v1/video/generations/task_PUBLIC_VIDEO_ID" \
-H "Authorization: Bearer YOUR_API_KEY"
Consulta exitosa 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"
}
}
El ejemplo incluye campos de finalización opcionales. actual_time es el tiempo transcurrido desde el envío hasta la finalización en segundos, no la duración facturable del video. last_frame_url se omite si no se solicitó un último fotograma o no está disponible. Las tareas fallidas no incluyen los campos de tiempo transcurrido o último fotograma, que son solo para éxitos.
Consulta estilo OpenAI:
curl "https://apimaster.ai/v1/videos/task_PUBLIC_VIDEO_ID" \
-H "Authorization: Bearer YOUR_API_KEY"
| Significado | data.status compatible |
status estilo OpenAI |
|---|---|---|
| En espera | queued |
queued |
| Generando | processing |
in_progress |
| Éxito | succeeded |
completed |
| Falla | failed |
failed |
El objeto estilo OpenAI utiliza id para el ID público de la tarea y url para la URL de descarga del video. Los campos opcionales actual_time y last_frame_url aparecen en el nivel superior. En caso de fallo, lea error.message en el objeto de resultado correspondiente. Las respuestas no incluyen campos monetarios.
Descarga con la clave API de la misma cuenta. Abrir una URL de resultado sin autorización es insuficiente. Guarda la salida prontamente.
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
Flujo de trabajo completo en Python
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")
Facturación por duración
Hay cuatro niveles: 480P, 720P, 480P-input y 720P-input. Un nivel etiquetado como "videos subidos" significa que la solicitud contiene una entrada de video de referencia. Seleccione el nivel de entrada para la resolución de salida solicitada incluso si también hay referencias de imagen/audio presentes.
- Sin video de referencia: segundos de video generado × el precio unitario de la resolución correspondiente.
- Con video de referencia: (segundos totales del video de referencia + segundos de video generado) × el precio unitario del nivel de entrada correspondiente.
- El precio unitario base configurado se multiplica por los coeficientes aplicables del canal y de la cuenta/grupo para obtener su precio unitario final. Consulte la tarjeta de su modelo y los registros de consumo de su cartera para ver el precio aplicable.
Por ejemplo, un video de referencia de 4 segundos y una salida de 5 segundos utilizan 9 segundos facturables en el nivel de entrada. El precio unitario del nivel de entrada puede diferir del nivel regular; no calcule solo la duración de la salida ni aplique el nivel regular a las referencias de video. Las imágenes y el audio no añaden segundos de video de referencia. El audio generado no introduce un nivel separado de sonido/silencio para estos cuatro precios configurados.
El envío reserva la duración de salida solicitada, más la duración verificada del video de entrada cuando está presente. Si se omite la duración de salida, se reservan 5 segundos de salida. La tarea conserva su tarifa del momento del envío; la finalización concilia la duración real. Una generación fallida reembolsa el cargo de la tarea de video.
Errores y solución de problemas
Las solicitudes no válidas devuelven un error HTTP. Lea el mensaje de error JSON así como el código de estado. La validación de parámetros utiliza el envoltorio de error de APIMaster, por ejemplo:
{"code":"invalid_request","message":"First/last-frame tasks require adaptive aspect_ratio","data":null}
| Problema | Acción |
|---|---|
| Resolución / duración no admitida | Elija 480p o 720p, y una duración entera desde 4 hasta 15. |
| Proporción o tamaño conflictivos | Use aspect_ratio, ratio, size y resolution de manera consistente; preferiblemente mantenga solo el par explícito de proporción/resolución. |
| Restricciones del primer/último fotograma | Use adaptive, como máximo uno de cada función, y omita las referencias de video/audio. |
| No se puede inspeccionar el video de referencia | Proporcione un MP4/MOV completo y accesible con una duración válida. |
| Audio de referencia sin imagen/video | Añada referencias de imagen/video o elimine la referencia de audio. |
| Rechazo por moderación de contenido | Modifique el texto o la imagen y envíe una nueva solicitud. Una falla del servicio de moderación puede permitir que la generación continúe; esto no es una garantía absoluta de seguridad. |
FormatUnsupported / Rechazo asíncrono de formato/contenido |
Lea el error.message de la tarea fallida, verifique los formatos y los requisitos del material, y reemplace la fuente. |
401 |
Proporcione una clave API Bearer válida. |
| Saldo insuficiente | Recargue o use una clave con cuota suficiente. |
429 / error temporal del servicio |
Espere y reintente con retroceso; evite envíos duplicados después de un tiempo de espera ambiguo. |
Las solicitudes síncronas con parámetros no válidos no crean tareas de video ni cobran por la generación. Las tareas aceptadas aún pueden fallar de manera asíncrona; verifique el estado final de la tarea antes de usar un resultado.
Consulte también: Descripción general de la generación de video, Seedance 2.0, Seedance 2.0 Mini y Seedance 2.5.
