SeeGen AI API
Bienvenido a la API de SeeGen AI: una sola API para generar vídeo cinematográfico e imágenes de alta fidelidad con múltiples modelos líderes.
Descripción general
SeeGen AI es una API de generación unificada: un conjunto consistente de endpoints para ejecutar varios de los principales modelos de IA de vídeo e imagen. Elige un modelo con el parámetro model — la autenticación, el envío de tareas, el sondeo de estado y los webhooks funcionan igual en todos ellos.
Modelos disponibles actualmente:
- Video — Seedance 2.5 (
sd2.5), Seedance 2.0 Pro (sd2), Fast (sd2-fast), Mini (sd2-mini), Wan 3.0 Video Prime (wan3.0-video-prime), Wan 3.0 Video (wan3.0-video) - Imagen — GPT Image 2 (
gpt-image-2), Nano Banana 2 (nano-banana-2), Nano Banana Pro (nano-banana-pro), Seedream 5.0 Lite (seedream-v5.0-lite), Seedream 5.0 Pro (seedream-v5.0-pro)
URL base: https://seegen.ai/api/v1
Modelo: pasa cualquiera de los alias anteriores en el campo model (por ejemplo, sd2, gpt-image-2).
¿Por qué SeeGen AI?
Más razones para elegir SeeGen AI:
- Más que Seedance 2.0: Wan 3.0, Nano Banana, ChatGPT Image y más.
- Sin suscripción — paga solo por lo que uses
- Acceso rápido a los modelos más recientes
- Soporte al cliente 24/7
- Soporte para consultas oficiales relacionadas con los modelos
- Acceso a la consola para desarrolladores
- Abierto tanto a empresas como a usuarios individuales
Precios
API Pack
125,000 créditos ($0.004/crédito)
~781 vídeos de 5s
API-XL Pack
500,000 créditos ($0.004/crédito)
~3,125 vídeos de 5s
Seedance 2.0 / Fast / Mini / 2.5: cálculo del coste
Sea out = output_seconds e in = la suma de ⌈duration⌉ de cada vídeo de entrada (cada uno redondeado hacia arriba, con un mínimo de out × 2/3). Seedance 2.5 sigue el mismo cálculo que Seedance 2.0. La tarifa base de cada modelo correspondiente se multiplica por 1.5 y se redondea antes de aplicar la fórmula de la tarea (1080P es nativo en sd2.5, 2.5× su tarifa de 720P); los complementos de escalado independientes del modelo se mantienen en +30 / +40 créditos por segundo de salida para 2K / 4K (+20 para 1080P solo en sd2-fast / sd2-mini).
| Sin entrada de vídeo | Con entrada de vídeo | |
|---|---|---|
| sd2.5: 480P | 30 × out | 23 × (out + in) |
| sd2.5: 720P | 60 × out | 45 × (out + in) |
| sd2.5: 1080P (nativo) | 150 × out | 113 × (out + in) |
| sd2.5: 2K | (60 + 30) × out | 45 × (out + in) + 30 × out |
| sd2.5: 4K | (60 + 40) × out | 45 × (out + in) + 40 × out |
| sd2-pro: 480P | 20 × out | 15 × (out + in) |
| sd2-pro: 720P | 40 × out | 30 × (out + in) |
| sd2-pro: 1080P (nativo) | 100 × out | 75 × (out + in) |
| sd2-pro: 2K | (40 + 30) × out | 30 × (out + in) + 30 × out |
| sd2-pro: 4K (nativo) | 200 × out | 150 × (out + in) |
| sd2-fast: 480P | 16 × out | 12 × (out + in) |
| sd2-fast: 720P | 32 × out | 24 × (out + in) |
| sd2-fast: 1080P | (32 + 20) × out | 24 × (out + in) + 20 × out |
| sd2-fast: 2K | (32 + 30) × out | 24 × (out + in) + 30 × out |
| sd2-fast: 4K | (32 + 40) × out | 24 × (out + in) + 40 × out |
| sd2-mini: 480P | 10 × out | 7.5 × (out + in) |
| sd2-mini: 720P | 20 × out | 15 × (out + in) |
| sd2-mini: 1080P | (20 + 20) × out | 15 × (out + in) + 20 × out |
| sd2-mini: 2K | (20 + 30) × out | 15 × (out + in) + 30 × out |
| sd2-mini: 4K | (20 + 40) × out | 15 × (out + in) + 40 × out |
Nota: sd2-pro en 1080P y 4K es salida nativa oficial (4K = 5× la tarifa de 720P); sd2-pro en 2K y todo sd2-fast / sd2-mini en 1080P/2K/4K son escalados por SeeGen AI. sd2.5 genera de forma nativa en 480P/720P/1080P (1080P = 2.5× la tarifa de 720P, sin recargo de escalado) y usa escalado automático para 2K/4K. Solicita cualquier nivel con outputResolution: "4k" (por ejemplo, "2k" / "4k"; el gateway elige automáticamente entre nativo y escalado — solo cambian el precio y la etiqueta Native). sd2-mini cuesta el 50% de sd2-pro, el nivel más económico. Seedance 2.5 usa el mismo redondeo de duración por vídeo, el mínimo de duración de entrada y el cálculo de escalado que Seedance 2.0. La tarifa base de cada modelo correspondiente se multiplica por 1.5 y se redondea antes del cálculo de la tarea (por ejemplo, 1080P con vídeo: 75 × 1.5 → 113). Los complementos de escalado 2K / 4K, independientes del modelo, se mantienen en +30 / +40 créditos por segundo de salida. Si el escalado falla, la tarea completada devuelve el resultado de reserva en 720P sin reembolso parcial de créditos.
- sd2.5 480P, salida de 4 segundos sin vídeo de entrada: 120 créditos
- sd2.5 720P, salida de 5 segundos sin vídeo de entrada: 300 créditos
- sd2.5 720P, salida de 5 segundos + vídeo de entrada de 3 segundos (mínimo de entrada de 4 segundos): 405 créditos
- sd2.5 1080P nativo, salida de 5 segundos sin vídeo de entrada: 750 créditos
- sd2.5 1080P nativo, salida de 5 segundos + vídeo de entrada de 5 segundos: 1,130 créditos
Wan 3.0 Video / Prime — cálculo del coste
Sea out = segundos de salida e in = suma de los segundos de los vídeos de referencia, redondeando cada clip hacia arriba al segundo entero. Sin vídeo de referencia: credits = out × rate. Con vídeo de referencia: credits = (out + in) × rate. Usa la tarifa de tu modelo y resolución en la tabla siguiente.
| Modelo | Salida nativa | Créditos / s | Ejemplo de 2 s |
|---|---|---|---|
| wan3.0-video-prime | 480P | 22 | 44 |
| 720P | 45 | 90 | |
| 1080P | 90 | 180 | |
| wan3.0-video | 480P | 16 | 32 |
| 720P | 32 | 64 | |
| 1080P | 64 | 128 |
Nota: 480P, 720P y 1080P son salidas nativas; no se admite escalado a 2K/4K. Las imágenes y el audio de referencia no añaden duración facturable. Desactivar el audio generado no cambia el precio. La duración total de los vídeos de referencia más la de salida no debe superar los 30 segundos.
- wan3.0-video 480P, salida de 2 segundos sin vídeo de entrada: 2 × 16 = 32 créditos
- wan3.0-video-prime 480P, salida de 2 segundos sin vídeo de entrada: 2 × 22 = 44 créditos
- wan3.0-video 720P, salida de 5 segundos + vídeo de referencia de 3 segundos: (5 + 3) × 32 = 256 créditos
- wan3.0-video-prime 720P, salida de 5 segundos + vídeo de referencia de 2.2 segundos (redondeado a 3 segundos): (5 + 3) × 45 = 360 créditos
🎉 Oferta por tiempo limitado: 33% de descuento en toda la generación de imágenes — todos los precios de imagen que aparecen abajo ya incluyen el descuento.
GPT Image 2.5 Flare / Sunburst
| Resolución | Calidad media | Calidad alta | Calidad XHigh | Calidad Max |
|---|---|---|---|---|
| 1k | 35 | 1320 | 2335 | 5075 |
| 2k (predeterminado) | 710 | 2335 | 3755 | 84125 |
| 4k | 1015 | 4060 | 67100 | 154230 |
Cada tarea genera 1 imagen. Envía N tareas para obtener N variantes. Las tareas fallidas reembolsan los créditos automáticamente.
gpt-image-2: créditos por imagen
| Resolución | Calidad media | Calidad alta |
|---|---|---|
| 1k | 1015 | 4770 |
| 2k (predeterminado) | 2335 | 84125 |
| 4k | 4060 | 154230 |
Cada tarea genera 1 imagen. Envía N tareas para obtener N variantes. Las tareas fallidas reembolsan los créditos automáticamente.
nano-banana-2 y nano-banana-pro: créditos por imagen
| Resolución | nano-banana-2 | nano-banana-pro |
|---|---|---|
| 1k | 2030 | 4060 |
| 2k (predeterminado) | 3045 | 4060 |
| 4k | 4770 | 74110 |
Cada tarea genera 1 imagen. Envía N tareas para obtener N variantes. Las tareas fallidas reembolsan los créditos automáticamente.
Seedream 5.0: créditos por imagen
| Modelo / nivel | Créditos |
|---|---|
| Lite 2k / 4k (tarifa plana) | 710 |
| Pro 1k (predeterminado) | 1015 |
| Pro 2k | 2030 |
Cada tarea genera 1 imagen. Envía N tareas para obtener N variantes. Las tareas fallidas reembolsan los créditos automáticamente. Las imágenes de referencia no se facturan por separado.
Consulta tu saldo: GET /api/v1/account/credits
Recarga automática para cuentas API
Tu clave API y el panel de SeeGen AI usan el mismo saldo de créditos de la cuenta. La recarga automática puede mantener saldo disponible para las cargas de trabajo de API, pero debe configurarse desde la página Credits; actualmente no existe una API de configuración independiente.
Configura la recarga automática desde Credits:
- Abre Credits, elige el saldo mínimo que quieres mantener y selecciona un paquete de recarga.
- Autoriza tu método de pago una sola vez. Este paso guarda la autorización y no realiza ningún cargo en la tarjeta.
- Cuando la autorización flexible esté activa, podrás cambiar el saldo mínimo o el paquete desde Credits sin volver a autorizar. Las cuentas con la autorización anterior de precio fijo podrían necesitar una actualización única.
Cómo funciona con las solicitudes API
- Cuando una tarea API se envía correctamente, descuenta créditos y hace que el saldo pase de estar en el umbral o por encima a quedar por debajo, SeeGen AI pone en cola una recarga automática de forma asíncrona. El envío de la tarea no espera a que termine la recarga.
- Si la cuenta no tiene créditos suficientes antes del envío, la API devuelve HTTP 402 y no crea ninguna tarea. La solicitud rechazada no activa la recarga automática ni se reintenta de forma automática; vuelve a intentarlo cuando haya créditos disponibles.
- Consulta el saldo actual con
GET /api/v1/account/credits. El progreso y los fallos de la recarga automática aparecen en Credits y Payment History, y los resultados importantes se envían al correo de facturación de la cuenta. Actualmente no hay un webhook ni una API de estado de recarga automática para clientes.
Bonificaciones de recarga automática para paquetes API
- API Pack de $500.00: 127,500 créditos (125,000 + 2% de bonificación).
- API-XL Pack de $2,000.00: 525,000 créditos (500,000 + 5% de bonificación).
- Las compras manuales de estos paquetes siguen añadiendo 125,000 y 500,000 créditos, respectivamente.
Autenticación
Todas las solicitudes a la API requieren un token Bearer en la cabecera Authorization. Puedes crear y gestionar tus claves de API desde Configuración de la cuenta.
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://seegen.ai/api/v1/account/creditsImportante: tu clave de API solo se muestra una vez, en el momento de crearla. Guárdala de forma segura. Puedes crear hasta 10 claves de API por cuenta.
Guía rápida
Genera un vídeo en dos pasos: crea una tarea y luego consulta el resultado.
# 1. Create a text-to-video task
TASK_ID=$(curl -s -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"inputs": {
"prompt": "A golden retriever running on the beach at sunset",
"duration": "5s",
"resolution": "1280x720"
}
}' \
https://seegen.ai/api/v1/jobs/createTask | jq -r '.taskId')
echo "Task created: $TASK_ID"
# 2. Poll for result
while true; do
RESULT=$(curl -s -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/jobs/queryTask?taskId=$TASK_ID")
STATUS=$(echo $RESULT | jq -r '.status')
echo "Status: $STATUS"
if [ "$STATUS" = "COMPLETED" ] || [ "$STATUS" = "FAILED" ]; then
echo $RESULT | jq .
break
fi
sleep 5
doneEndpoints
/api/v1/jobs/createTaskCrea una nueva tarea de generación de vídeo
/api/v1/jobs/queryTaskConsulta el estado y el resultado de una tarea
/api/v1/account/creditsConsulta tu saldo de créditos
/api/v1/assets/uploadSube un recurso (imagen/vídeo/audio) para su revisión
/api/v1/assets/statusConsulta el estado de revisión de un recurso
/api/v1/assets/listEnumera tus recursos subidos
/api/v1/upscale/createEnvía una tarea independiente de escalado de vídeo (720p / 1080p / 2K / 4K)
/api/v1/upscale/queryConsulta el estado y el resultado de una tarea de escalado independiente
Elegir un modelo (vídeo)
Elige un modelo de video según el flujo de trabajo, la resolución nativa, la velocidad y el precio; combina esta tabla con la sección Precios para estimar el coste.
| Modelo | T2V | I2V | First–Last | Multi-Ref | R2V | 1080p nativo | 4K nativo | Audio | 720p / 5s |
|---|---|---|---|---|---|---|---|---|---|
| sd2.5 | ✓ | ✓ | ✓ | ✓ | — | ✓ | escalado | ✓ | 300 créditos |
| sd2 | ✓ | ✓ | ✓ | ✓ | — | ✓ | ✓ | ✓ | 200 créditos |
| sd2-fast | ✓ | ✓ | ✓ | ✓ | — | escalado | escalado | ✓ | 160 créditos |
| sd2-mini | ✓ | ✓ | ✓ | ✓ | — | escalado | escalado | ✓ | 100 créditos |
| wan3.0-video-prime | ✓ | ✓ | ✓ | ✓ | — | ✓ | — | ✓ | 225 créditos |
| wan3.0-video | ✓ | ✓ | ✓ | ✓ | — | ✓ | — | ✓ | 160 créditos |
T2V = Texto a vídeo · I2V = Imagen a vídeo (primer fotograma) · First–Last = primer + último fotograma clave · Multi-Ref = referencias mixtas de imagen / vídeo / audio · R2V = 1–9 imágenes de referencia con marcadores de personaje
Seedance 2.0 / 2.0 Fast / 2.0 Mini / Seedance 2.5
Texto a vídeo
Genera un vídeo a partir de un prompt de texto. No se requieren imágenes.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"inputs": {
"prompt": "A futuristic city with flying cars at night, neon lights reflecting on wet streets",
"duration": "5s",
"resolution": "1280x720"
}
}' \
https://seegen.ai/api/v1/jobs/createTask| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| prompt | string | Sí | Descripción de texto del vídeo que se va a generar. Máximo 20000 caracteres. |
| duration | string | No | Duración del vídeo: de "4s" a "15s"; sd2.5 admite hasta "30s" (por defecto: "5s") |
| resolution | string | No | Relación de aspecto mediante resolution. Opciones: auto (por defecto), 720x720, 720x960, 960x720, 1280x720, 720x1280, 1280x540 |
| outputResolution | string | No | Nivel de resolución de salida: "480p", "720p" (por defecto), "1080p", "2k" o "4k". Las resoluciones nativas varían según el modelo: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast y Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. Los niveles superiores se escalan automáticamente. |
| seed | int | No | Semilla de reproducibilidad: -1 u omitir para aleatorio; 0–2147483647 para un valor fijo. |
| generateAudio | boolean | No | Si se debe sintetizar una pista de audio sincronizada. Por defecto es true; pasa false para un vídeo sin sonido. |
Imagen a vídeo
Anima una imagen estática convirtiéndola en un vídeo. Proporciona una URL de imagen como fotograma inicial.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"inputs": {
"urls": ["https://example.com/photo.jpg"], // or "asset://asset-20260326-abc123"
"prompt": "The woman slowly turns her head and smiles",
"duration": "5s"
}
}' \
https://seegen.ai/api/v1/jobs/createTask| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| urls | string[] | Sí | Array con una URL de imagen (el fotograma de origen). Admite tanto URLs HTTP como referencias de recursos (por ejemplo, "asset://asset-20260326-abc123") |
| prompt | string | No | Descripción de texto del movimiento deseado |
| duration | string | No | Duración del vídeo: de "4s" a "15s"; sd2.5 admite hasta "30s" (por defecto: "5s") |
| outputResolution | string | No | Nivel de resolución de salida: "480p", "720p" (por defecto), "1080p", "2k" o "4k". Las resoluciones nativas varían según el modelo: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast y Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. Los niveles superiores se escalan automáticamente. |
| seed | int | No | Semilla de reproducibilidad: -1 u omitir para aleatorio; 0–2147483647 para un valor fijo. |
| generateAudio | boolean | No | Si se debe sintetizar una pista de audio sincronizada. Por defecto es true; pasa false para un vídeo sin sonido. |
Primer y último fotograma
Define el fotograma inicial y el final, y el modelo genera la transición entre ambos. Usa videoInputMode: "keyframe".
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"inputs": {
"urls": [
"https://example.com/first-frame.jpg",
"https://example.com/last-frame.jpg"
],
"prompt": "Smooth camera transition from day to night",
"duration": "5s",
"videoInputMode": "keyframe"
}
}' \
https://seegen.ai/api/v1/jobs/createTask| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| urls | string[] | Sí | Array con exactamente 2 URLs de imagen: [first_frame, last_frame]. Admite tanto URLs HTTP como referencias de recursos (por ejemplo, "asset://asset-20260326-abc123") |
| videoInputMode | string | Sí | Debe ser "keyframe" |
| prompt | string | No | Descripción de texto que guía la transición |
| duration | string | No | Duración del vídeo: de "4s" a "15s"; sd2.5 admite hasta "30s" (por defecto: "5s") |
| outputResolution | string | No | Nivel de resolución de salida: "480p", "720p" (por defecto), "1080p", "2k" o "4k". Las resoluciones nativas varían según el modelo: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast y Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. Los niveles superiores se escalan automáticamente. |
| seed | int | No | Semilla de reproducibilidad: -1 u omitir para aleatorio; 0–2147483647 para un valor fijo. |
| generateAudio | boolean | No | Si se debe sintetizar una pista de audio sincronizada. Por defecto es true; pasa false para un vídeo sin sonido. |
Multi-Referencia
Usa varias imágenes, vídeos y archivos de audio de referencia para guiar la generación. Usa videoInputMode: "reference". En sd2.5 esta es la subtarea de referencia por defecto; consulta Edición y extensión de vídeo más abajo para editar o continuar un vídeo existente.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"inputs": {
"urls": [
"https://example.com/ref1.jpg",
"https://example.com/ref2.jpg"
],
"videoUrls": ["asset://asset-motion-video"],
"audioUrls": ["https://example.com/audio.mp3"],
"prompt": "Character walks through a garden",
"duration": "5s",
"videoInputMode": "reference",
"resolution": "1280x720"
}
}' \
https://seegen.ai/api/v1/jobs/createTask| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| urls | string[] | No | URLs de imágenes de referencia (máx. 9). Admite tanto URLs HTTP como referencias de recursos (por ejemplo, "asset://asset-20260326-abc123") |
| videoUrls | string[] | No | URIs asset:// de vídeos de referencia — primero súbelos con /api/v1/assets/upload; las URLs externas se rechazan. sd2: máx. 3 vídeos, cada uno ≤15s. sd2.5: hasta 10 vídeos, cada uno de 2–30s y ≤200MB, duración total de referencia ≤30s, admite entradas de 480p a 4K. |
| audioUrls | string[] | No | Entradas de audio de referencia. sd2 / sd2-fast / sd2-mini: hasta 3 archivos de audio, cada uno de 2–15s, total ≤15s — el audio no puede ser la única referencia en estos modelos (añade al menos una imagen o un vídeo). sd2.5: hasta 10 archivos, ≤15MB y 2–30s cada uno, total ≤30s, y se admite la entrada solo de audio. |
| videoInputMode | string | Sí | Debe ser "reference" |
| prompt | string | No | Descripción de texto |
| duration | string | No | Duración del vídeo: de "4s" a "15s"; sd2.5 admite hasta "30s" (por defecto: "5s") |
| resolution | string | Sí | Obligatorio en modo de referencia. Opciones: 720x720, 720x960, 960x720, 1280x720, 720x1280, 1280x540 |
| outputResolution | string | No | Nivel de resolución de salida: "480p", "720p" (por defecto), "1080p", "2k" o "4k". Las resoluciones nativas varían según el modelo: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast y Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. Los niveles superiores se escalan automáticamente. |
| seed | int | No | Semilla de reproducibilidad: -1 u omitir para aleatorio; 0–2147483647 para un valor fijo. |
| generateAudio | boolean | No | Si se debe sintetizar una pista de audio sincronizada. Por defecto es true; pasa false para un vídeo sin sonido. |
Restricciones de referencia
- Máximo 9 imágenes, 3 vídeos, 3 archivos de audio
- Máximo 12 archivos en total entre todos los tipos
- Cada vídeo/audio debe durar ≤ 15 segundos
- Las imágenes deben tener al menos 400px en el lado más corto
- sd2.5: máx. 30 imágenes, 10 vídeos, 10 archivos de audio, y 50 en total; los totales de vídeo y audio son cada uno ≤ 30 segundos
Edición y extensión de vídeo
sd2.5 divide la generación basada en referencias en tres subtareas. Omite mode para la generación de referencia habitual, define mode: "edit" para editar un vídeo existente, o mode: "extend" para continuarlo. Ambas requieren al menos un vídeo en videoUrls y siempre generan la salida con la relación de aspecto del vídeo de origen.
Coloca el vídeo que quieres modificar en primer lugar dentro de videoUrls y refiérete a él como "Video 1" en tu prompt. edit obliga a que la duración de salida coincida con ese primer vídeo (de origen), que debe durar entre 4 y 30s, por lo que se ignora cualquier duration que envíes; la facturación usa la duración del vídeo de origen como duración de salida, más todos los vídeos de referencia como entrada. extend acepta de 1 a 3 clips unidos en orden, y el duration que solicites es la duración de salida de esta generación (sin relación con la duración de origen), facturado como una generación de referencia normal.
Los modelos de la familia 2.0 (sd2 / sd2-fast / sd2-mini) también admiten mode: "edit" y mode: "extend": infieren la operación a partir de tu prompt (describe explícitamente la edición o continuación), la relación de aspecto sigue al vídeo de origen, y duration sigue bajo tu control con la facturación habitual.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2.5",
"inputs": {
"mode": "edit",
"videoInputMode": "reference",
"videoUrls": ["asset://asset-source-video"],
"urls": ["https://example.com/annotation-at-1.2s.png"],
"source_frame_timestamps_ms": [1200],
"prompt": "Replace the marked object with a red umbrella",
"outputResolution": "720p"
}
}' \
https://seegen.ai/api/v1/jobs/createTask| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| mode | string | No | "edit" o "extend". Omite para la generación de referencia habitual. |
| videoUrls | string[] | Sí | Al menos un vídeo; el primero es el de origen ("Video 1") — la duración de salida y la facturación de la edición dependen de él. Los vídeos posteriores son referencias adicionales (edit) o clips adicionales unidos en orden (extend, máx. 3). |
| urls | string[] | No | Imágenes opcionales de anotación/referencia. |
| source_frame_timestamps_ms | number[] | No | Solo con mode "edit". Una marca de tiempo no negativa del vídeo de origen, en milisegundos, por cada imagen en urls. |
| outputResolution | string | No | Nivel de resolución de salida: "480p", "720p" (por defecto), "1080p", "2k" o "4k". Las resoluciones nativas varían según el modelo: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast y Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. Los niveles superiores se escalan automáticamente. |
Referencia de parámetros de Seedance
Referencia completa de todos los parámetros de inputs para los modelos sd2 / sd2-fast / sd2-mini / sd2.5.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| prompt | string | No | Descripción de texto (obligatoria para texto a vídeo, opcional en otros modos). Máximo 20000 caracteres. |
| urls | string[] | No | URLs de imagen. Admite tanto URLs HTTP como referencias de recursos (por ejemplo, "asset://asset-20260326-abc123"). Se asigna internamente a uploadedUrls. |
| videoUrls | string[] | No | URIs asset:// de vídeos de referencia (solo modo de referencia). Deben subirse primero con /api/v1/assets/upload — las URLs externas se rechazan. |
| audioUrls | string[] | No | URLs de audio de referencia (solo modo de referencia). La entrada solo de audio se admite en sd2.5; sd2 / sd2-fast / sd2-mini requieren al menos una imagen o un vídeo junto con el audio. |
| duration | string | No | De "4s" a "15s" normalmente; sd2.5 admite hasta "30s". Por defecto: "5s" |
| resolution | string | No | Relación de aspecto: auto (por defecto) | 720x720 | 720x960 | 960x720 | 1280x720 | 720x1280 | 1280x540 |
| outputResolution | string | No | Nivel de resolución de salida: "480p", "720p" (por defecto), "1080p", "2k" o "4k". Las resoluciones nativas varían según el modelo: Seedance 2.0 Pro: 480p/720p/1080p/4k; Seedance 2.0 Fast y Mini: 480p/720p; Seedance 2.5: 480p/720p/1080p. Los niveles superiores se escalan automáticamente. |
| videoInputMode | string | No | "keyframe" (por defecto) o "reference" |
| mode | string | No | Subtarea de modo de referencia (todos los modelos Seedance): omite para la generación de referencia habitual, "edit" para editar el primer vídeo en videoUrls, "extend" para continuar de 1 a 3 clips. Consulta Edición y extensión de vídeo. |
| source_frame_timestamps_ms | number[] | No | Solo para la edición de vídeo de sd2.5: una marca de tiempo en milisegundos, no negativa, por cada imagen de anotación. |
| seed | int | No | Semilla aleatoria para reproducibilidad. -1 u omitir para aleatoria en el servidor. La misma semilla + las mismas entradas producen un resultado muy similar (no idéntico a nivel de bits, debido a la no determinación de la GPU). Rango: -1 a 2147483647. |
| generateAudio | boolean | No | Si se debe sintetizar una pista de audio (voz, efectos de sonido, música de fondo) sincronizada con el vídeo. Por defecto es true. Ponlo en false para producir un vídeo sin sonido — ligeramente más rápido, útil si planeas doblarlo por separado. |
| bitrateMode | string | No | Nivel de bitrate de salida a la misma resolución: "standard" (por defecto) o "high". "high" conserva más detalle y reduce el banding/bloqueo a costa de un tamaño de archivo ~3-5× mayor — no cambia la resolución ni el precio. |
| upscaleResolution | string | No | (Obsoleto) Campo dividido heredado, aceptado por compatibilidad con versiones anteriores. Las integraciones nuevas deben usar outputResolution, que ahora acepta "2k" / "4k" directamente. Si se envían ambos, upscaleResolution tiene prioridad — excepto en modelos con 1080p nativo (Seedance2 Pro / Seedance 2.5), donde upscaleResolution:"1080p" se resuelve como 1080p nativo (facturado a la tarifa nativa). |
Campos de nivel superior de la solicitud: model (obligatorio), inputs (obligatorio), callBackUrl (URL de webhook opcional).
Recursos de Seedance
Los recursos de Seedance son archivos de imagen, vídeo y audio que pasan por el proceso de revisión de ByteDance Volcano antes de usarse en tareas de generación de vídeo de Seedance. Sube un recurso, espera a que pase a ACTIVE y luego usa su URL asset:// en la tarea de Seedance.
Nota: los recursos de imagen y vídeo con personas reales requieren revisión oficial, que normalmente se completa en cuestión de segundos. Una vez aprobados, pueden usarse directamente como referencias. Sin revisión, la generación puede fallar.
Subir recurso
Hay dos formas de subir: enviar un archivo local directamente (multipart/form-data) o enviar una URL HTTPS de acceso público. En ambos casos, el recurso se procesa y revisa automáticamente.
Método A: subida de archivo directa (multipart/form-data)
Envía un archivo local sin necesidad de alojar la imagen en otro sitio. El tipo de medio se detecta a partir de los bytes del archivo (no se confía en la extensión del nombre). Permitidos: imágenes (jpg/png/webp/gif/bmp/tiff/heic), vídeos (mp4/mov), audio (wav/mp3). Máximo 50MB por archivo (imagen ≤30MB, vídeo ≤50MB, audio ≤15MB).
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-F "file=@/path/to/photo.jpg" \
-F "name=my-photo" \
https://seegen.ai/api/v1/assets/upload| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| file | file | Sí | El archivo local (campo del formulario multipart). El tipo de medio se detecta a partir del contenido. |
| name | string | No | Nombre del recurso (máx. 64 caracteres) |
Método B: por URL (application/json)
Si el archivo ya está alojado en una URL HTTPS pública.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/photo.jpg",
"type": "IMAGE",
"name": "my-photo"
}' \
https://seegen.ai/api/v1/assets/upload| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| url | string | Sí | URL HTTPS de acceso público del archivo que se va a subir |
| type | string | Sí | "IMAGE", "AUDIO" o "VIDEO" |
| name | string | No | Nombre del recurso (máx. 64 caracteres) |
Respuesta de subida
{
"assetId": 123,
"volcAssetId": "asset-20260326-abc123",
"type": "IMAGE",
"status": "PROCESSING",
"failReason": null,
"url": "https://example.com/photo.jpg",
"name": "my-photo",
"createdAt": 1711234567890
}Consultar estado del recurso
Consulta el estado de revisión de un recurso. Cuando el estado es PROCESSING, el endpoint comprueba automáticamente si hay actualizaciones del sistema de revisión.
# Query by asset ID (numeric)
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/assets/status?assetId=123"
# Query by volcAssetId (string)
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/assets/status?assetId=asset-20260326-abc123"Valores de estado del recurso
PROCESSING— en revisión, aún no utilizableACTIVE— revisión aprobada, listo para usarse en tareasFAILED— revisión fallida, consulta failReason
Listar recursos
Enumera tus recursos subidos, con filtrado opcional por tipo y estado. Admite paginación basada en cursor.
# List all assets
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/assets/list"
# Filter by type and status
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/assets/list?type=IMAGE&status=ACTIVE&limit=10"
# Paginate with cursor
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/assets/list?cursor=100&limit=20"| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| type | string | No | Filtrar por tipo: "IMAGE", "AUDIO" o "VIDEO" |
| status | string | No | Filtrar por estado: "NONE", "PROCESSING", "ACTIVE" o "FAILED" |
| cursor | number | No | Cursor para paginación (usa nextCursor de la respuesta anterior) |
| limit | number | No | Elementos por página, 1-50 (por defecto: 20) |
Respuesta de listado
{
"items": [
{
"assetId": 123,
"volcAssetId": "asset-20260326-abc123",
"type": "IMAGE",
"status": "ACTIVE",
"failReason": null,
"url": "https://example.com/photo.jpg",
"name": "my-photo",
"width": 1920,
"height": 1080,
"size": 245000,
"duration": null,
"createdAt": 1711234567890
}
],
"nextCursor": 122
}Uso de recursos en tareas
Una vez que un recurso está ACTIVE, usa su volcAssetId con el protocolo asset:// en las URLs de tu tarea:
{
"model": "sd2",
"inputs": {
"urls": ["asset://asset-20260326-abc123"],
"prompt": "The person slowly looks up and smiles",
"duration": "5s"
}
}Wan 3.0 Video y Wan 3.0 Video Prime
Wan 3.0 permite generar vídeo desde texto o un fotograma inicial, interpolar entre el primer y último fotograma, combinar referencias de imagen/vídeo/audio, editar vídeos y extenderlos. wan3.0-video-prime acepta las mismas entradas que wan3.0-video y está optimizado para generar más rápido.
Ambos alias usan la API asíncrona de SeeGen: POST /api/v1/jobs/createTask devuelve un taskId; consulta periódicamente GET /api/v1/jobs/queryTask?taskId=... o proporciona callBackUrl para obtener el resultado final.
Salida admitida: duraciones fijas de 2–30 segundos en 480p, 720p o 1080p nativos, sin marca de agua. No se admiten la duración automática (duration: -1), la salida 2K/4K ni un ajuste personalizado de watermark. Primero sube los medios de referencia y luego usa la URL HTTPS devuelta.
Texto a video
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video-prime",
"inputs": {
"prompt": "A red paper boat glides across a calm pond at sunrise, locked camera, no text.",
"duration": "5s",
"outputResolution": "720p",
"ratio": "16:9",
"generateAudio": true,
"promptExtend": true,
"seed": 12345
}
}' \
https://seegen.ai/api/v1/jobs/createTaskImagen a video (primer fotograma)
Sube los medios de Wan mediante multipart POST /api/v1/assets/upload?model=wan3.0-video (o el alias Prime) y usa la url HTTPS propia devuelta en las entradas de generación. El assetId devuelto es solo el ID del registro de medios de SeeGen; no lo envíes en las entradas de generación.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-F "file=@/path/to/first-frame.webp" \
"https://seegen.ai/api/v1/assets/upload?model=wan3.0-video"{
"assetId": 123,
"type": "IMAGE",
"status": "ACTIVE",
"url": "https://static.seegen.ai/materials/api/.../first-frame.webp"
}curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video",
"inputs": {
"urls": ["https://static.seegen.ai/materials/api/.../first-frame.webp"],
"videoInputMode": "keyframe",
"prompt": "The subject looks toward the camera as morning mist drifts past.",
"duration": "5s",
"outputResolution": "1080p",
"generateAudio": true
}
}' \
https://seegen.ai/api/v1/jobs/createTaskPrimer y último fotograma
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video",
"inputs": {
"urls": [
"https://static.seegen.ai/materials/api/.../first-frame.webp",
"https://static.seegen.ai/materials/api/.../last-frame.webp"
],
"videoInputMode": "keyframe",
"prompt": "A smooth continuous transition from sunrise to night.",
"duration": "8s",
"outputResolution": "720p"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskMultirreferencia (imágenes, videos y audio)
Establece videoInputMode: "reference" y envía al menos un medio admitido mediante urls, videoUrls o audioUrls; el prompt es opcional. Referencia los medios por orden como Image1, Image2, Video1 o Audio1. Sube primero cada referencia mediante el endpoint multipart de Wan y usa la URL HTTPS propia devuelta.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video-prime",
"inputs": {
"videoInputMode": "reference",
"urls": ["https://static.seegen.ai/materials/api/.../reference-image.webp"],
"videoUrls": ["https://static.seegen.ai/materials/api/.../source-video.mp4"],
"audioUrls": ["https://static.seegen.ai/materials/api/.../reference-audio.mp3"],
"prompt": "Use Image1 for identity, Video1 for motion, and Audio1 for timing.",
"duration": "10s",
"outputResolution": "720p",
"ratio": "16:9",
"generateAudio": true,
"promptExtend": true
}
}' \
https://seegen.ai/api/v1/jobs/createTaskEdición de vídeo
Sube primero el vídeo original y usa mode: "edit" con videoInputMode: "reference". En el prompt obligatorio, describe cómo editar Video1, el primer vídeo de videoUrls. La relación de aspecto es automática y tú eliges la duración de salida. Los límites de referencias y precios indicados abajo se aplican tanto a la edición como a la extensión.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video",
"inputs": {
"mode": "edit",
"videoInputMode": "reference",
"videoUrls": ["https://static.seegen.ai/materials/api/.../source-video.mp4"],
"prompt": "Transform Video1 into clay animation, keeping the characters and camera movement.",
"duration": "5s",
"outputResolution": "720p",
"ratio": "adaptive"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskExtensión de vídeo
Usa mode: "extend" con un vídeo original y una instrucción, como "Extiende Video1 hacia adelante", seguida de lo que ocurre después. Establece ratio: "adaptive". El duration seleccionado es la duración del vídeo generado, no la suma del original y la extensión. No se admite generar vídeos desde archivos ni páginas web.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video-prime",
"inputs": {
"mode": "extend",
"videoInputMode": "reference",
"videoUrls": ["https://static.seegen.ai/materials/api/.../source-video.mp4"],
"prompt": "Extend Video1 forward, continuing the motion of the character and keeping the scene consistent.",
"duration": "5s",
"outputResolution": "720p",
"ratio": "adaptive"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskReferencia de parámetros de Wan 3.0
Ambos modelos Wan 3.0 aceptan los mismos campos inputs. Elige una duración de salida de 2 a 30 segundos en incrementos de un segundo.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| prompt | string | No | Descripción o instrucción del vídeo. Máximo 20,000 caracteres. Obligatorio para texto a vídeo, edición y extensión; opcional para imagen a vídeo, primer/último fotograma y múltiples referencias. La edición y extensión también requieren un vídeo. Usa Image1 / Video1 / Audio1 según el orden de las referencias. |
| mode | string | No | Omítelo o usa "normal" para la generación habitual. Usa "edit" o "extend" con un vídeo y un prompt de instrucciones. Ambos usan el modo de referencia, relación de aspecto automática y una duración de salida fija de 2–30 segundos. |
| urls | string[] | No | URL HTTPS propias de imágenes devueltas por el endpoint de carga de Wan. Omite este campo para texto a vídeo; envía exactamente 1 primer fotograma, exactamente 2 fotogramas inicial/final o hasta 10 imágenes de referencia. Se rechazan las URL externas ajenas y las referencias del protocolo de recursos de Seedance. |
| videoUrls | string[] | No | Hasta 5 URL HTTPS propias de vídeos de referencia devueltas por el endpoint de carga de Wan. Cada clip debe durar 1–15 s, los vídeos de referencia deben sumar como máximo 15 s y su duración más la de salida no debe superar 30 s. Se rechazan las URL externas ajenas y las referencias del protocolo de recursos de Seedance. |
| audioUrls | string[] | No | Hasta 5 URL HTTPS propias de audios de referencia devueltas por el endpoint de carga de Wan. WAV o MP3; cada clip debe durar 1–15 s y los audios de referencia deben sumar como máximo 15 s. Se rechazan las URL externas ajenas y las referencias del protocolo de recursos de Seedance. |
| videoInputMode | string | No | Omítelo para texto a video; usa "keyframe" para un primer fotograma o dos primeros/últimos fotogramas; usa "reference" para referencias mixtas de imagen/video/audio. |
| duration | string | No | Cadena de segundos enteros de "2s" a "30s". Predeterminado: "5s". |
| outputResolution | string | No | "480p", "720p" (predeterminado) o "1080p" nativos. No se admite salida 2K/4K. |
| ratio | string | No | "auto" o "adaptive" (ambos eligen el encuadre automático), "16:9", "9:16", "1:1", "4:3" o "3:4". Se usa en texto a vídeo y múltiples referencias. La edición y extensión siempre usan Auto; imagen a vídeo y primer/último fotograma siguen las imágenes clave. |
| generateAudio | boolean | No | Genera voz sincronizada, efectos de sonido y música. Predeterminado: true. Establece false para una salida silenciosa; el precio no cambia. |
| promptExtend | boolean | No | Permite que el modelo enriquezca el prompt antes de la generación. Predeterminado: true. |
| seed | int | No | 0–2147483647. Usa la misma semilla y las mismas entradas para un reintento muy similar. |
Requisitos de los archivos multimedia de referencia
- Imágenes: hasta 10; JPEG/JPG/PNG (sin transparencia)/BMP/WebP; ≤20 MB cada una; cada lado de 240–8000 px; relación de aspecto de hasta 8:1
- Videos: hasta 5 clips MP4/MOV; ≤100 MB cada uno; 1–15 s cada uno, ≤15 s de entrada total y entrada + salida solicitada ≤30 s; cada lado de 240–4096 px; relación de aspecto de hasta 8:1
- Audio: hasta 5 URL HTTPS WAV/MP3 devueltas por el endpoint de carga de Wan; ≤15 MB cada una; 1–15 s cada una y ≤15 s en total
- El modo de primer/último fotograma no se puede combinar con matrices de imágenes, videos o audio de referencia
Elegir un modelo (imagen)
Los modelos de imagen toman un prompt (y opcionalmente imágenes de referencia) y devuelven una imagen por tarea. Cada solicitud se factura por imagen según el nivel del modelo seleccionado (o una tarifa fija para Seedream Lite). Las tareas fallidas se reembolsan automáticamente. No hay parámetro de lote — para generar varias variantes, llama a createTask una vez por imagen.
| Modelo | T2I | I2I (Edición) | Multi-Ref | Resolución máxima | 2k / medium |
|---|---|---|---|---|---|
| gpt-image-2.5-flare | ✓ | ✓ | hasta 10 | 4k | ver Precios |
| gpt-image-2.5-sunburst | ✓ | ✓ | hasta 10 | 4k | ver Precios |
| gpt-image-2 | ✓ | ✓ | hasta 10 | 4k | ver Precios |
| nano-banana-2 | ✓ | ✓ | hasta 10 | 4k | ver Precios |
| nano-banana-pro | ✓ | ✓ | hasta 10 | 4k | ver Precios |
| seedream-v5.0-lite | ✓ | ✓ | hasta 10 | 4k | tarifa plana |
| seedream-v5.0-pro | ✓ | ✓ | hasta 10 | 2k | ver Precios |
GPT Image 2.5 Flare / Sunburst
GPT Image 2.5 Flare se centra en la generación y edición rápidas. Sunburst prioriza los detalles y la precisión de las ediciones. Ambos admiten prompts de texto e imágenes de referencia.
Disponible en el espacio de trabajo, Playground y la API. Ambos modelos admiten los siguientes parámetros: calidad medium/high/xhigh/max, ajustes 1K/2K/4K y salida PNG/JPEG/WebP. Las dimensiones reales pueden diferir del ajuste seleccionado. JPEG y WebP se convierten a partir del PNG generado sin cambiar el tamaño. Cada tarea de la API genera una imagen.
Texto a imagen
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.5-flare",
"inputs": {
"prompt": "A neon-lit cyberpunk alley at midnight, photoreal",
"quality": "medium",
"resolution": "2k",
"aspectRatio": "16:9"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskImagen a imagen (edición)
Pasa de 1 a 10 imágenes de referencia mediante urls. El modelo las usará como contexto visual para la edición descrita en prompt.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.5-sunburst",
"inputs": {
"urls": ["https://example.com/portrait.jpg"],
"prompt": "Restyle as oil painting",
"quality": "medium",
"resolution": "1k",
"aspectRatio": "1:1"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskReferencia de parámetros de GPT Image 2.5
Referencia completa de todos los parámetros de inputs para el modelo gpt-image-2.5-flare.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| prompt | string | Sí | Descripción de texto de la imagen a generar, o la edición a aplicar cuando se proporciona urls. |
| urls | string[] | No | URLs de imágenes de referencia para el modo imagen a imagen (edición) (1–10 imágenes). Omite para texto a imagen. Se aceptan URLs HTTPS públicas. |
| quality | string | No | "medium" / "high" / "xhigh" / "max". Por defecto: "medium". Los créditos varían según el nivel (ver Precios). |
| resolution | string | No | "1k" / "2k" / "4k". Por defecto: "2k". Los créditos varían según el nivel (ver Precios). |
| aspectRatio | string | No | "1:1" / "16:9" / "9:16" / "4:3" / "3:4". Por defecto: "1:1". |
| outputFormat | string | No | "png" / "jpeg" / "webp". Por defecto: "png". |
Requisitos de la imagen de entrada (modo imagen a imagen)
- Hasta 10 imágenes de referencia por tarea
- Tamaño máximo de archivo 50 MB por imagen
- Lado más corto ≥ 256px
- Relación de aspecto entre 1:3 y 3:1
- Formatos: JPEG, JPG, PNG, WEBP
Los créditos por imagen varían según la resolución y la calidad — consulta la tabla completa en la sección Precios.
GPT Image 2
El modelo GPT Image 2 de OpenAI para edición de texto a imagen e imagen a imagen de alta calidad. Un único flujo de trabajo gestiona ambos modos — pasa urls para cambiar automáticamente al modo de edición. La salida se entrega mediante R2 en el formato que solicites (PNG / JPEG / WEBP). Nombre del modelo: gpt-image-2.
Texto a imagen
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"inputs": {
"prompt": "A neon-lit cyberpunk alley at midnight, photoreal",
"quality": "medium",
"resolution": "2k",
"aspectRatio": "16:9"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskImagen a imagen (edición)
Pasa de 1 a 10 imágenes de referencia mediante urls. El modelo las usará como contexto visual para la edición descrita en prompt.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"inputs": {
"urls": ["https://example.com/portrait.jpg"],
"prompt": "Restyle as oil painting",
"quality": "medium",
"resolution": "1k",
"aspectRatio": "1:1"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskReferencia de parámetros de GPT Image 2
Referencia completa de todos los parámetros de inputs para el modelo gpt-image-2.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| prompt | string | Sí | Descripción de texto de la imagen a generar, o la edición a aplicar cuando se proporciona urls. |
| urls | string[] | No | URLs de imágenes de referencia para el modo imagen a imagen (edición) (1–10 imágenes). Omite para texto a imagen. Se aceptan URLs HTTPS públicas. |
| quality | string | No | "medium" / "high". Por defecto: "medium". Los créditos varían según el nivel (ver Precios). |
| resolution | string | No | "1k" / "2k" / "4k". Por defecto: "2k". Los créditos varían según el nivel (ver Precios). |
| aspectRatio | string | No | "1:1" / "16:9" / "9:16" / "4:3" / "3:4". Por defecto: "1:1". |
| outputFormat | string | No | "png" / "jpeg" / "webp". Por defecto: "png". |
Requisitos de la imagen de entrada (modo imagen a imagen)
- Hasta 10 imágenes de referencia por tarea
- Tamaño máximo de archivo 50 MB por imagen
- Lado más corto ≥ 256px
- Relación de aspecto entre 1:3 y 3:1
- Formatos: JPEG, JPG, PNG, WEBP
Los créditos por imagen varían según la resolución y la calidad — consulta la tabla completa en la sección Precios.
Nano Banana 2
Nano Banana 2 es un modelo de imagen de alta fidelidad con mayor cobertura de relaciones de aspecto que gpt-image-2 — añade preajustes vertical/horizontal (3:2, 2:3, 4:5, 5:4) y el formato cinematográfico 21:9. Un único flujo de trabajo gestiona ambos modos — pasa urls para cambiar automáticamente al modo de edición. Nombre del modelo: nano-banana-2.
Texto a imagen
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-2",
"inputs": {
"prompt": "A neon-lit cyberpunk alley at midnight, photoreal",
"resolution": "2k",
"aspectRatio": "16:9"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskImagen a imagen (edición)
Pasa de 1 a 10 imágenes de referencia mediante urls. El modelo las usará como contexto visual para la edición descrita en prompt.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-2",
"inputs": {
"urls": ["https://example.com/portrait.jpg"],
"prompt": "Restyle as oil painting",
"resolution": "2k",
"aspectRatio": "1:1"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskReferencia de parámetros de Nano Banana 2
Referencia completa de todos los parámetros de inputs para el modelo nano-banana-2.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| prompt | string | Sí | Descripción de texto de la imagen a generar, o la edición a aplicar cuando se proporciona urls. |
| urls | string[] | No | URLs de imágenes de referencia para el modo imagen a imagen (edición) (1–10 imágenes). Omite para texto a imagen. Se aceptan URLs HTTPS públicas. |
| resolution | string | No | "1k" / "2k" / "4k". Por defecto: "2k". Los créditos varían según el nivel (ver Precios). |
| aspectRatio | string | No | "1:1" / "16:9" / "9:16" / "4:3" / "3:4" / "3:2" / "2:3" / "4:5" / "5:4" / "21:9". Por defecto: "1:1". |
Requisitos de la imagen de entrada (modo imagen a imagen)
- Hasta 10 imágenes de referencia por tarea
- Tamaño máximo de archivo 50 MB por imagen
- Lado más corto ≥ 256px
- Relación de aspecto entre 1:3 y 3:1
- Formatos: JPEG, JPG, PNG, WEBP
Los créditos por imagen varían según la resolución — consulta la tabla completa en la sección Precios.
Nano Banana Pro
Nano Banana Pro es un modelo de imagen de alta fidelidad con mayor cobertura de relaciones de aspecto que gpt-image-2 — añade preajustes vertical/horizontal (3:2, 2:3, 4:5, 5:4) y el formato cinematográfico 21:9. Un único flujo de trabajo gestiona ambos modos — pasa urls para cambiar automáticamente al modo de edición. Nombre del modelo: nano-banana-pro.
Texto a imagen
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-pro",
"inputs": {
"prompt": "A neon-lit cyberpunk alley at midnight, photoreal",
"resolution": "2k",
"aspectRatio": "16:9"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskImagen a imagen (edición)
Pasa de 1 a 10 imágenes de referencia mediante urls. El modelo las usará como contexto visual para la edición descrita en prompt.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-pro",
"inputs": {
"urls": ["https://example.com/portrait.jpg"],
"prompt": "Restyle as oil painting",
"resolution": "2k",
"aspectRatio": "1:1"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskReferencia de parámetros de Nano Banana Pro
Referencia completa de todos los parámetros de inputs para el modelo nano-banana-pro.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| prompt | string | Sí | Descripción de texto de la imagen a generar, o la edición a aplicar cuando se proporciona urls. |
| urls | string[] | No | URLs de imágenes de referencia para el modo imagen a imagen (edición) (1–10 imágenes). Omite para texto a imagen. Se aceptan URLs HTTPS públicas. |
| resolution | string | No | "1k" / "2k" / "4k". Por defecto: "2k". Los créditos varían según el nivel (ver Precios). |
| aspectRatio | string | No | "1:1" / "16:9" / "9:16" / "4:3" / "3:4" / "3:2" / "2:3" / "4:5" / "5:4" / "21:9". Por defecto: "1:1". |
Requisitos de la imagen de entrada (modo imagen a imagen)
- Hasta 10 imágenes de referencia por tarea
- Tamaño máximo de archivo 50 MB por imagen
- Lado más corto ≥ 256px
- Relación de aspecto entre 1:3 y 3:1
- Formatos: JPEG, JPG, PNG, WEBP
Los créditos por imagen varían según la resolución — consulta la tabla completa en la sección Precios.
Seedream 5.0 Lite
Generación rápida de texto a imagen e imagen a imagen en 2K o 4K con 15 relaciones de aspecto. Nombre del modelo: seedream-v5.0-lite.
Texto a imagen
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-v5.0-lite",
"inputs": {
"prompt": "A cinematic product photograph, soft studio light",
"resolution": "2k",
"aspectRatio": "1:1"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskImagen a imagen (edición)
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-v5.0-lite",
"inputs": {
"prompt": "Restyle the references as a premium fashion campaign",
"urls": ["https://example.com/reference.png"],
"resolution": "4k",
"aspectRatio": "3:4"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskParámetros de Seedream 5.0 Lite
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| prompt | string | Sí | Descripción de la imagen o instrucción de edición. |
| urls | string[] | No | 1–10 URLs HTTPS públicas de imágenes de referencia. Omite para texto a imagen. |
| resolution | string | No | "2k" o "4k". Por defecto: "2k". |
| aspectRatio | string | No | "1:1", "1:2", "2:1", "1:3", "3:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "9:21", o "21:9". |
Seedream 5.0 Pro
Generación y edición de alta fidelidad en 1K o 2K. Nombre del modelo: seedream-v5.0-pro.
Texto a imagen
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-v5.0-pro",
"inputs": {
"prompt": "Editorial portrait with dramatic rim lighting",
"resolution": "2k",
"aspectRatio": "3:4"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskImagen a imagen (edición)
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedream-v5.0-pro",
"inputs": {
"prompt": "Turn the reference into a cinematic poster",
"urls": ["https://example.com/reference.png"],
"resolution": "2k",
"aspectRatio": "1:2"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskParámetros de Seedream 5.0 Pro
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| prompt | string | Sí | Descripción de la imagen o instrucción de edición. |
| urls | string[] | No | 1–10 URLs HTTPS públicas de imágenes de referencia. Omite para texto a imagen. |
| resolution | string | No | "1k" o "2k". Por defecto: "1k". 4k no se admite. |
| aspectRatio | string | No | "1:1", "1:2", "2:1", "1:3", "3:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "9:21", o "21:9". |
Escalador de vídeo
Crear tarea
POST /api/v1/upscale/create
# source.url accepts ANY https video URL — your own CDN, OR a file you first
# uploaded to us via /api/v1/assets/upload (pass the r2Url it returns). No need
# to declare which: we detect it. External URLs are validated; our own are trusted.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"source": { "type": "url", "url": "https://your-cdn.com/video.mp4" },
"targetResolution": "2k",
"callBackUrl": "https://your-server.com/webhook"
}' \
https://seegen.ai/api/v1/upscale/create| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| source.type | string | Sí | Usa "url" para cualquier fuente. ("uploadId" es un alias heredado que se mantiene por compatibilidad con versiones anteriores.) |
| source.url | string | No | Con type="url". Cualquier URL de vídeo https — tu propia CDN, o el r2Url devuelto por /api/v1/assets/upload. En el caso de URLs externas, se rechazan http y las IPs privadas/internas (protección SSRF); las URLs de nuestro propio host de recursos omiten esa comprobación. |
| source.r2Url | string | No | Heredado — solo con type="uploadId" (compatibilidad con versiones anteriores). Las integraciones nuevas deben usar type="url". |
| targetResolution | string | Sí | "720p", "1080p", "2k" o "4k". Debe ser superior a la resolución de origen. |
| callBackUrl | string | No | URL de webhook invocada una vez al alcanzar el estado final (completado o fallido). |
Respuesta de creación
{
"taskId": "n770mo4sh6rpi690ff3gwymx",
"orderId": "ord_2026...",
"status": "validating"
}Consultar estado
GET /api/v1/upscale/query?taskId=...
El estado avanza validating → processing → completed / failed.
curl -H "Authorization: Bearer $API_KEY" \
"https://seegen.ai/api/v1/upscale/query?taskId=n770mo4sh6rpi690ff3gwymx"Respuesta de finalización
{
"taskId": "n770mo4sh6rpi690ff3gwymx",
"status": "completed",
"targetResolution": "2k",
"creditsConsumed": 900,
"result": {
"url": "https://static.seegen.ai/standalone-upscale/results/...mp4",
"probedDurationSeconds": 30,
"probedSourceResolution": "1280x720"
},
"error": null,
"createdAt": "2026-04-29T01:23:45.000Z",
"finishedAt": "2026-04-29T01:35:01.000Z"
}Respuesta de fallo
{
"taskId": "n770mo4sh6rpi690ff3gwymx",
"status": "failed",
"creditsConsumed": null,
"result": null,
"error": {
"code": "SOURCE_RESOLUTION_TOO_HIGH",
"message": "Source 3840x2160 is not below target 4k"
}
}Límites
- Fuente: URL https o tu URL R2 subida anteriormente
- Duración de hasta 600 s (los clips de menos de 5 s se facturan como 5 s)
- Tamaño de archivo ≤ 200 MB
- Formato: MP4 / MOV / WebM
- La resolución de origen debe ser inferior a la de destino
Precios
- 720P: 17 créditos/seg (5s = 85, 30s = 510)
- 1080P: 25 créditos/seg (5s = 125, 30s = 750)
- 2K: 38 créditos/seg (5s = 190, 30s = 1140)
- 4K: 50 créditos/seg (5s = 250, 30s = 1500)
- Mínimo de 5 segundos; los fallos reembolsan los créditos automáticamente
Códigos de error
Errores comunes sobre los que puedes actuar. Otros fallos devuelven un campo message autoexplicativo — léelo antes de asumir que el código es uno de estos.
| Código | Significado |
|---|---|
| INVALID_URL | La URL tiene un formato incorrecto o no es https |
| URL_NOT_REACHABLE | No se pudo obtener la URL — comprueba que sea pública y accesible |
| UNSUPPORTED_MEDIA_TYPE | El archivo no es un vídeo, o no está en formato MP4 / MOV / WebM |
| FILE_TOO_LARGE | La fuente supera los 200 MB |
| DURATION_EXCEEDS_LIMIT | La fuente dura más de 600 s |
| SOURCE_RESOLUTION_TOO_HIGH | La fuente ya está en o por encima del destino — elige un destino más alto |
| INSUFFICIENT_CREDITS | Créditos insuficientes — recarga y vuelve a intentarlo |
| ACCOUNT_FROZEN | La cuenta no puede gastar créditos: contacta con soporte |
Callback de webhook
En lugar de hacer polling, puedes proporcionar una callBackUrl para recibir los resultados automáticamente cuando una tarea se completa o falla.
curl -X POST \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sd2",
"callBackUrl": "https://your-server.com/webhook/callback",
"inputs": {
"prompt": "A cat playing piano",
"duration": "5s"
}
}' \
https://seegen.ai/api/v1/jobs/createTaskPayload del callback
Cuando la tarea finaliza, enviamos una solicitud POST a tu URL con el mismo formato que la respuesta de queryTask:
// POST to your callBackUrl
{
"taskId": "task_abc123",
"model": "sd2",
"status": "COMPLETED",
"creditsUsed": 200,
"output": [
{
"url": "https://static.seegen.ai/videos/result.mp4",
"width": 1280,
"height": 720
}
],
"error": null,
"createTime": 1711234567890,
"completeTime": 1711234612345
}Política de reintentos: si tu endpoint devuelve un estado que no sea 2xx, reintentamos hasta 3 veces con retrasos crecientes (1s, 5s, 30s).
Formato de respuesta
Respuesta de createTask
// 200 OK
{ "taskId": "task_abc123" }Respuesta de queryTask
{
"taskId": "task_abc123",
"model": "sd2",
"status": "COMPLETED", // "PENDING" | "PROCESSING" | "COMPLETED" | "FAILED"
"creditsUsed": 200,
"output": [ // null when status is not "COMPLETED"
{
"url": "https://static.seegen.ai/videos/result.mp4",
"width": 1280,
"height": 720
}
],
"error": null, // error message when status is "FAILED"
"createTime": 1711234567890,
"completeTime": 1711234612345
}Respuesta de credits
{
"credits": 5000,
"availableCredits": 4800
}Manejo de errores
| Código de estado | Significado | Acción |
|---|---|---|
| 400 | Parámetros no válidos | Revisa el mensaje de error y corrige tu solicitud |
| 401 | Clave de API no válida o ausente | Revisa el formato de tu cabecera Authorization |
| 402 | Créditos insuficientes | Abre Credits para comprar créditos o activar la recarga automática y vuelve a intentar la solicitud |
| 403 | Acceso denegado | Solo puedes consultar tus propias tareas |
| 404 | Tarea no encontrada | Verifica que el taskId sea correcto |
| 500 | Error interno del servidor | Vuelve a intentarlo después de unos segundos |
Validación previa al envío (400 con código)
Las solicitudes de Seedance y Wan 3.0 se comprueban según las reglas de producto de SeeGen antes de cobrar créditos. Si fallan, createTask devuelve HTTP 400 con { "message": "...", "code": "..." }; los errores de Wan también pueden incluir path. No se crea ni se cobra ninguna tarea.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| EMPTY_CONTENT | code | No | No hay prompt ni imagen/vídeo/audio de referencia. |
| AUDIO_ONLY_NOT_SUPPORTED | code | No | El audio es la única referencia en sd2 / sd2-fast / sd2-mini. Añade una imagen o un vídeo, o usa sd2.5 (admite solo audio). |
| UNSUPPORTED_MODEL | code | No | El alias del modelo no es compatible. Para Wan 3.0, usa exactamente "wan3.0-video-prime" o "wan3.0-video". |
| UNSUPPORTED_RESOLUTION | code | No | El nivel de salida seleccionado no está disponible. El lanzamiento de Wan 3.0 solo admite 480p / 720p / 1080p nativos; 2K/4K y upscaleResolution se rechazan. |
| DURATION_OUT_OF_RANGE | code | No | duration no es un entero dentro del rango del modelo (Wan 3.0 «2s»–«30s», familia sd2 «4s»–«15s», sd2.5 «4s»–«30s»). La duración inteligente de Wan (-1) no está disponible. |
| INVALID_MEDIA_COMBINATION | code | No | El contenido multimedia no coincide con el modo seleccionado (por ejemplo, un número incorrecto de fotogramas clave, contenido multimedia en texto a video, ausencia de contenido en multirreferencia o mezcla de entradas de fotogramas clave y referencias). |
| EDIT_SOURCE_VIDEO_REQUIRED / EXTEND_SOURCE_VIDEO_REQUIRED | code | No | Se solicitó mode "edit" / "extend" sin un vídeo en videoUrls. |
| EDIT_SOURCE_DURATION_INVALID | code | No | Edición de vídeo de sd2.5: un vídeo de la solicitud dura menos de 4s o más de 30s (ARK aplica 4–30s a todos los vídeos de una tarea de edición). |
| TOO_MANY_REFERENCES | code | No | Hay más imágenes / videos / clips de audio de referencia de los que admite el modelo (Wan 3.0 10 / 5 / 5, familia sd2 9 / 3 / 3, sd2.5 30 / 10 / 10; se permiten ≤3 videos adicionales). |
| REFERENCE_VIDEO_DURATION_INVALID | code | No | Un video de referencia supera el límite por clip, la entrada combinada de videos de referencia supera el límite del modelo o la combinación de entrada y salida no es válida. Para Wan 3.0: cada clip debe durar 1–15s, la entrada total debe ser ≤15s y la entrada + salida solicitada debe ser ≤30s (15+15 es válido; 15+16 se rechaza). |
| REFERENCE_AUDIO_DURATION_INVALID | code | No | Una duración conocida de audio de referencia de Wan 3.0 está fuera del intervalo de 1–15 s o hace que la entrada total de audio de referencia supere los 15 s. |
| REFERENCE_IMAGE_INVALID | code | No | Una imagen de Wan 3.0 no existe, pertenece a otro usuario, tiene un tipo multimedia incorrecto o incumple un requisito conocido de tamaño, formato, dimensiones, relación de aspecto o ausencia de transparencia. |
| REFERENCE_VIDEO_INVALID | code | No | Un vídeo subido para Wan 3.0 incumple el requisito de tamaño, formato MP4/MOV, dimensiones o relación de aspecto. |
| REFERENCE_AUDIO_INVALID | code | No | Un archivo de audio subido para Wan 3.0 incumple el requisito de tamaño o formato WAV/MP3. |
| ASSET_NOT_FOUND / EXTERNAL_URL / READ_TIMEOUT / READ_FAILED | code | No | No se pudo resolver una entrada de videoUrls a uno de tus recursos subidos, o no se pudo leer su duración. |
Ejemplos completos
Flujo de trabajo completo: sube un recurso, espera la revisión, crea una tarea con el recurso aprobado y consulta el resultado.
const API_KEY = process.env.API_KEY;
const BASE = "https://seegen.ai/api/v1";
const headers = {
"Authorization": `Bearer ${API_KEY}`,
"Content-Type": "application/json",
};
// 1. Upload asset and wait for review
// (To upload a LOCAL file instead of a URL, POST multipart/form-data with a "file"
// field — no Content-Type header, no "type" — see the Upload Asset section above.)
async function uploadAndWaitForAsset(url, type = "IMAGE") {
const res = await fetch(`${BASE}/assets/upload`, {
method: "POST",
headers,
body: JSON.stringify({ url, type }),
});
if (!res.ok) throw new Error(`Upload failed: ${(await res.json()).message}`);
const asset = await res.json();
console.log(`Asset uploaded: ${asset.assetId}, status: ${asset.status}`);
// Poll until review completes
while (true) {
const statusRes = await fetch(
`${BASE}/assets/status?assetId=${asset.assetId}`,
{ headers }
);
const status = await statusRes.json();
if (status.status === "ACTIVE") {
console.log(`Asset approved: asset://${status.volcAssetId}`);
return status.volcAssetId;
}
if (status.status === "FAILED") {
throw new Error(`Asset review failed: ${status.failReason}`);
}
await new Promise((r) => setTimeout(r, 3000));
}
}
// 2. Create a task
async function createTask(inputs, callBackUrl) {
const res = await fetch(`${BASE}/jobs/createTask`, {
method: "POST",
headers,
body: JSON.stringify({
model: "sd2",
inputs,
...(callBackUrl && { callBackUrl }),
}),
});
if (!res.ok) throw new Error(`[${res.status}] ${(await res.json()).message}`);
return res.json();
}
// 3. Poll until done
async function waitForResult(taskId, timeoutMs = 300000) {
const start = Date.now();
while (Date.now() - start < timeoutMs) {
const res = await fetch(
`${BASE}/jobs/queryTask?taskId=${taskId}`,
{ headers }
);
const result = await res.json();
if (result.status === "COMPLETED") return result;
if (result.status === "FAILED") throw new Error(result.error);
await new Promise((r) => setTimeout(r, 5000));
}
throw new Error("Timeout waiting for task");
}
// Full workflow: upload → review → generate → result
async function main() {
// Upload image and wait for review
const volcAssetId = await uploadAndWaitForAsset(
"https://example.com/photo.jpg", "IMAGE"
);
// Create task with approved asset
const { taskId } = await createTask({
urls: [`asset://${volcAssetId}`],
prompt: "The person slowly looks up and smiles",
duration: "5s",
});
console.log(`Task: ${taskId}`);
// Wait for video
const result = await waitForResult(taskId);
console.log(`Video: ${result.output[0].url}`);
}
main().catch(console.error);¿Necesitas ayuda? Únete a nuestro Discord o contáctanos