APIMaster.ai

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.