API de Generación de Video Seedance 2.0 Mini
Parámetros de Seedance 2.0 Mini, medios de referencia, tareas asíncronas, descargas autenticadas y facturación por duración en APIMaster.
Generación de video Seedance 2.0 Mini
Utiliza seedance-2.0-mini para texto-a-video, imagen-a-video, generación de primer/último fotograma, y referencias de video o audio. Mini 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 |
Utiliza 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-mini |
prompt |
string | Requerido | APIMaster no impone un límite de longitud de prompt específico del modelo. Describe el sujeto, movimiento, escena, cámara y audio deseado; los prompts concisos son más fáciles de controlar. |
duration |
integer | 5 |
Longitud 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:// aprobados por APIMaster. |
image_with_roles |
object[] | Omitido | Objetos de imagen con url y role; no pueden aparecer junto con image_urls. Ver 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. Ver 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 lo incluya. |
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 mejoras 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 pueden ser obtenidos. Una carga de imagen exitosa no implica aprobación del contenido o cumplimiento con 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 indicación. 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 activos 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-mini",
"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 multiparte 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 activos con estado Active como asset://{asset_id}. Estos recursos pertenecen a tu cuenta. Especifica model: "seedance-2.0-mini" explícitamente. Los IDs de activos de otra plataforma o cuenta no pueden usarse 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 activos son compartidos; los límites de generación en esta página aplican a Mini. 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-mini",
"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. Verifica 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-mini",
"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
Sondea 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 compatible exitosa:
{
"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":138,
"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-mini",
"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
Existen cuatro niveles: 480P, 720P, 480P-input y 720P-input. Un nivel etiquetado como "vídeos subidos" significa que la solicitud contiene una entrada de vídeo de referencia. Seleccione el nivel de entrada para la resolución de salida solicitada, incluso si también están presentes referencias de imagen/audio.
- Sin vídeo de referencia: segundos de vídeo generado × el precio unitario de la resolución correspondiente.
- Con vídeo de referencia: (total de segundos del vídeo de referencia + segundos de vídeo generado) × el precio unitario del nivel de entrada correspondiente.
- El precio unitario base configurado se multiplica por los coeficientes de canal y cuenta/grupo aplicables 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 vídeo 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 salida ni aplique el nivel regular a las referencias de vídeo. Las imágenes y el audio no añaden segundos de vídeo 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 vídeo 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 vídeo.
Errores y resolució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 conflictivo | Use aspect_ratio, ratio, size y resolution consistentes; preferiblemente mantenga solo el par explícito proporción/resolución. |
| Restricciones de primer/último fotograma | Use adaptive, como máximo uno de cada función, y omita referencias de vídeo/audio. |
| No se puede inspeccionar el vídeo de referencia | Proporcione un MP4/MOV completo accesible con una duración válida. |
| Audio de referencia sin imagen/vídeo | Añada referencias de imagen/vídeo o elimine la referencia de audio. |
| Rechazo por moderación de contenido | Modifique el texto o la imagen y envíe una nueva solicitud. Un fallo del servicio de moderación puede permitir que la generación continúe; esto no es una garantía absoluta de seguridad. |
FormatUnsupported / Rechazo de formato/contenido asíncrono |
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 cupo suficiente. |
429 / error temporal del servicio |
Espere y vuelva a intentarlo 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 vídeo ni cobran por la generación. Las tareas aceptadas aún pueden fallar de forma asíncrona; verifique el estado final de la tarea antes de utilizar un resultado.
Consulte también: Descripción general de la generación de vídeo, Seedance 2.0, Seedance 2.0 Fast y Seedance 2.5.
