Vídeos de 30s, más de 50 referencias. Pruébalo ahora

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

40% OFF

API Pack

$500$833

125,000 créditos ($0.004/crédito)

~781 vídeos de 5s

40% OFF

API-XL Pack

$2,000$3,332

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ídeoCon entrada de vídeo
sd2.5: 480P30 × out23 × (out + in)
sd2.5: 720P60 × out45 × (out + in)
sd2.5: 1080P (nativo)150 × out113 × (out + in)
sd2.5: 2K(60 + 30) × out45 × (out + in) + 30 × out
sd2.5: 4K(60 + 40) × out45 × (out + in) + 40 × out
sd2-pro: 480P20 × out15 × (out + in)
sd2-pro: 720P40 × out30 × (out + in)
sd2-pro: 1080P (nativo)100 × out75 × (out + in)
sd2-pro: 2K(40 + 30) × out30 × (out + in) + 30 × out
sd2-pro: 4K (nativo)200 × out150 × (out + in)
sd2-fast: 480P16 × out12 × (out + in)
sd2-fast: 720P32 × out24 × (out + in)
sd2-fast: 1080P(32 + 20) × out24 × (out + in) + 20 × out
sd2-fast: 2K(32 + 30) × out24 × (out + in) + 30 × out
sd2-fast: 4K(32 + 40) × out24 × (out + in) + 40 × out
sd2-mini: 480P10 × out7.5 × (out + in)
sd2-mini: 720P20 × out15 × (out + in)
sd2-mini: 1080P(20 + 20) × out15 × (out + in) + 20 × out
sd2-mini: 2K(20 + 30) × out15 × (out + in) + 30 × out
sd2-mini: 4K(20 + 40) × out15 × (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.

ModeloSalida nativaCréditos / sEjemplo de 2 s
wan3.0-video-prime480P2244
720P4590
1080P90180
wan3.0-video480P1632
720P3264
1080P64128

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ónCalidad mediaCalidad altaCalidad XHighCalidad Max
1k35132023355075
2k (predeterminado)7102335375584125
4k1015406067100154230

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ónCalidad mediaCalidad alta
1k10154770
2k (predeterminado)233584125
4k4060154230

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ónnano-banana-2nano-banana-pro
1k20304060
2k (predeterminado)30454060
4k477074110

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 / nivelCréditos
Lite 2k / 4k (tarifa plana)710
Pro 1k (predeterminado)1015
Pro 2k2030

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:

  1. Abre Credits, elige el saldo mínimo que quieres mantener y selecciona un paquete de recarga.
  2. Autoriza tu método de pago una sola vez. Este paso guarda la autorización y no realiza ningún cargo en la tarjeta.
  3. 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/credits

Importante: 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
done

Endpoints

POST/api/v1/jobs/createTask

Crea una nueva tarea de generación de vídeo

GET/api/v1/jobs/queryTask

Consulta el estado y el resultado de una tarea

GET/api/v1/account/credits

Consulta tu saldo de créditos

POST/api/v1/assets/upload

Sube un recurso (imagen/vídeo/audio) para su revisión

GET/api/v1/assets/status

Consulta el estado de revisión de un recurso

GET/api/v1/assets/list

Enumera tus recursos subidos

POST/api/v1/upscale/create

Envía una tarea independiente de escalado de vídeo (720p / 1080p / 2K / 4K)

GET/api/v1/upscale/query

Consulta 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.

ModeloT2VI2VFirst–LastMulti-RefR2V1080p nativo4K nativoAudio720p / 5s
sd2.5escalado300 créditos
sd2200 créditos
sd2-fastescaladoescalado160 créditos
sd2-miniescaladoescalado100 créditos
wan3.0-video-prime225 créditos
wan3.0-video160 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ámetroTipoObligatorioDescripción
promptstringDescripción de texto del vídeo que se va a generar. Máximo 20000 caracteres.
durationstringNoDuración del vídeo: de "4s" a "15s"; sd2.5 admite hasta "30s" (por defecto: "5s")
resolutionstringNoRelación de aspecto mediante resolution. Opciones: auto (por defecto), 720x720, 720x960, 960x720, 1280x720, 720x1280, 1280x540
outputResolutionstringNoNivel 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.
seedintNoSemilla de reproducibilidad: -1 u omitir para aleatorio; 0–2147483647 para un valor fijo.
generateAudiobooleanNoSi 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ámetroTipoObligatorioDescripción
urlsstring[]Array con una URL de imagen (el fotograma de origen). Admite tanto URLs HTTP como referencias de recursos (por ejemplo, "asset://asset-20260326-abc123")
promptstringNoDescripción de texto del movimiento deseado
durationstringNoDuración del vídeo: de "4s" a "15s"; sd2.5 admite hasta "30s" (por defecto: "5s")
outputResolutionstringNoNivel 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.
seedintNoSemilla de reproducibilidad: -1 u omitir para aleatorio; 0–2147483647 para un valor fijo.
generateAudiobooleanNoSi 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ámetroTipoObligatorioDescripción
urlsstring[]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")
videoInputModestringDebe ser "keyframe"
promptstringNoDescripción de texto que guía la transición
durationstringNoDuración del vídeo: de "4s" a "15s"; sd2.5 admite hasta "30s" (por defecto: "5s")
outputResolutionstringNoNivel 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.
seedintNoSemilla de reproducibilidad: -1 u omitir para aleatorio; 0–2147483647 para un valor fijo.
generateAudiobooleanNoSi 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ámetroTipoObligatorioDescripción
urlsstring[]NoURLs de imágenes de referencia (máx. 9). Admite tanto URLs HTTP como referencias de recursos (por ejemplo, "asset://asset-20260326-abc123")
videoUrlsstring[]NoURIs 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.
audioUrlsstring[]NoEntradas 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.
videoInputModestringDebe ser "reference"
promptstringNoDescripción de texto
durationstringNoDuración del vídeo: de "4s" a "15s"; sd2.5 admite hasta "30s" (por defecto: "5s")
resolutionstringObligatorio en modo de referencia. Opciones: 720x720, 720x960, 960x720, 1280x720, 720x1280, 1280x540
outputResolutionstringNoNivel 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.
seedintNoSemilla de reproducibilidad: -1 u omitir para aleatorio; 0–2147483647 para un valor fijo.
generateAudiobooleanNoSi 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ámetroTipoObligatorioDescripción
modestringNo"edit" o "extend". Omite para la generación de referencia habitual.
videoUrlsstring[]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).
urlsstring[]NoImágenes opcionales de anotación/referencia.
source_frame_timestamps_msnumber[]NoSolo con mode "edit". Una marca de tiempo no negativa del vídeo de origen, en milisegundos, por cada imagen en urls.
outputResolutionstringNoNivel 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ámetroTipoObligatorioDescripción
promptstringNoDescripción de texto (obligatoria para texto a vídeo, opcional en otros modos). Máximo 20000 caracteres.
urlsstring[]NoURLs de imagen. Admite tanto URLs HTTP como referencias de recursos (por ejemplo, "asset://asset-20260326-abc123"). Se asigna internamente a uploadedUrls.
videoUrlsstring[]NoURIs asset:// de vídeos de referencia (solo modo de referencia). Deben subirse primero con /api/v1/assets/upload — las URLs externas se rechazan.
audioUrlsstring[]NoURLs 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.
durationstringNoDe "4s" a "15s" normalmente; sd2.5 admite hasta "30s". Por defecto: "5s"
resolutionstringNoRelación de aspecto: auto (por defecto) | 720x720 | 720x960 | 960x720 | 1280x720 | 720x1280 | 1280x540
outputResolutionstringNoNivel 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.
videoInputModestringNo"keyframe" (por defecto) o "reference"
modestringNoSubtarea 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_msnumber[]NoSolo para la edición de vídeo de sd2.5: una marca de tiempo en milisegundos, no negativa, por cada imagen de anotación.
seedintNoSemilla 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.
generateAudiobooleanNoSi 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.
bitrateModestringNoNivel 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.
upscaleResolutionstringNo(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ámetroTipoObligatorioDescripción
filefileEl archivo local (campo del formulario multipart). El tipo de medio se detecta a partir del contenido.
namestringNoNombre 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ámetroTipoObligatorioDescripción
urlstringURL HTTPS de acceso público del archivo que se va a subir
typestring"IMAGE", "AUDIO" o "VIDEO"
namestringNoNombre 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

  • PROCESSINGen revisión, aún no utilizable
  • ACTIVErevisión aprobada, listo para usarse en tareas
  • FAILEDrevisió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ámetroTipoObligatorioDescripción
typestringNoFiltrar por tipo: "IMAGE", "AUDIO" o "VIDEO"
statusstringNoFiltrar por estado: "NONE", "PROCESSING", "ACTIVE" o "FAILED"
cursornumberNoCursor para paginación (usa nextCursor de la respuesta anterior)
limitnumberNoElementos 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/createTask

Imagen 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/createTask

Primer 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/createTask

Multirreferencia (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/createTask

Edició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/createTask

Extensió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/createTask

Referencia 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ámetroTipoObligatorioDescripción
promptstringNoDescripció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.
modestringNoOmí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.
urlsstring[]NoURL 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.
videoUrlsstring[]NoHasta 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.
audioUrlsstring[]NoHasta 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.
videoInputModestringNoOmí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.
durationstringNoCadena de segundos enteros de "2s" a "30s". Predeterminado: "5s".
outputResolutionstringNo"480p", "720p" (predeterminado) o "1080p" nativos. No se admite salida 2K/4K.
ratiostringNo"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.
generateAudiobooleanNoGenera voz sincronizada, efectos de sonido y música. Predeterminado: true. Establece false para una salida silenciosa; el precio no cambia.
promptExtendbooleanNoPermite que el modelo enriquezca el prompt antes de la generación. Predeterminado: true.
seedintNo0–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.

ModeloT2II2I (Edición)Multi-RefResolución máxima2k / medium
gpt-image-2.5-flarehasta 104kver Precios
gpt-image-2.5-sunbursthasta 104kver Precios
gpt-image-2hasta 104kver Precios
nano-banana-2hasta 104kver Precios
nano-banana-prohasta 104kver Precios
seedream-v5.0-litehasta 104ktarifa plana
seedream-v5.0-prohasta 102kver 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/createTask

Imagen 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/createTask

Referencia 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ámetroTipoObligatorioDescripción
promptstringDescripción de texto de la imagen a generar, o la edición a aplicar cuando se proporciona urls.
urlsstring[]NoURLs 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.
qualitystringNo"medium" / "high" / "xhigh" / "max". Por defecto: "medium". Los créditos varían según el nivel (ver Precios).
resolutionstringNo"1k" / "2k" / "4k". Por defecto: "2k". Los créditos varían según el nivel (ver Precios).
aspectRatiostringNo"1:1" / "16:9" / "9:16" / "4:3" / "3:4". Por defecto: "1:1".
outputFormatstringNo"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/createTask

Imagen 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/createTask

Referencia de parámetros de GPT Image 2

Referencia completa de todos los parámetros de inputs para el modelo gpt-image-2.

ParámetroTipoObligatorioDescripción
promptstringDescripción de texto de la imagen a generar, o la edición a aplicar cuando se proporciona urls.
urlsstring[]NoURLs 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.
qualitystringNo"medium" / "high". Por defecto: "medium". Los créditos varían según el nivel (ver Precios).
resolutionstringNo"1k" / "2k" / "4k". Por defecto: "2k". Los créditos varían según el nivel (ver Precios).
aspectRatiostringNo"1:1" / "16:9" / "9:16" / "4:3" / "3:4". Por defecto: "1:1".
outputFormatstringNo"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/createTask

Imagen 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/createTask

Referencia de parámetros de Nano Banana 2

Referencia completa de todos los parámetros de inputs para el modelo nano-banana-2.

ParámetroTipoObligatorioDescripción
promptstringDescripción de texto de la imagen a generar, o la edición a aplicar cuando se proporciona urls.
urlsstring[]NoURLs 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.
resolutionstringNo"1k" / "2k" / "4k". Por defecto: "2k". Los créditos varían según el nivel (ver Precios).
aspectRatiostringNo"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/createTask

Imagen 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/createTask

Referencia de parámetros de Nano Banana Pro

Referencia completa de todos los parámetros de inputs para el modelo nano-banana-pro.

ParámetroTipoObligatorioDescripción
promptstringDescripción de texto de la imagen a generar, o la edición a aplicar cuando se proporciona urls.
urlsstring[]NoURLs 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.
resolutionstringNo"1k" / "2k" / "4k". Por defecto: "2k". Los créditos varían según el nivel (ver Precios).
aspectRatiostringNo"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/createTask

Imagen 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/createTask

Parámetros de Seedream 5.0 Lite

ParámetroTipoObligatorioDescripción
promptstringDescripción de la imagen o instrucción de edición.
urlsstring[]No1–10 URLs HTTPS públicas de imágenes de referencia. Omite para texto a imagen.
resolutionstringNo"2k" o "4k". Por defecto: "2k".
aspectRatiostringNo"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/createTask

Imagen 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/createTask

Parámetros de Seedream 5.0 Pro

ParámetroTipoObligatorioDescripción
promptstringDescripción de la imagen o instrucción de edición.
urlsstring[]No1–10 URLs HTTPS públicas de imágenes de referencia. Omite para texto a imagen.
resolutionstringNo"1k" o "2k". Por defecto: "1k". 4k no se admite.
aspectRatiostringNo"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ámetroTipoObligatorioDescripción
source.typestringUsa "url" para cualquier fuente. ("uploadId" es un alias heredado que se mantiene por compatibilidad con versiones anteriores.)
source.urlstringNoCon 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.r2UrlstringNoHeredado — solo con type="uploadId" (compatibilidad con versiones anteriores). Las integraciones nuevas deben usar type="url".
targetResolutionstring"720p", "1080p", "2k" o "4k". Debe ser superior a la resolución de origen.
callBackUrlstringNoURL 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 validatingprocessingcompleted / 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ódigoSignificado
INVALID_URLLa URL tiene un formato incorrecto o no es https
URL_NOT_REACHABLENo se pudo obtener la URL — comprueba que sea pública y accesible
UNSUPPORTED_MEDIA_TYPEEl archivo no es un vídeo, o no está en formato MP4 / MOV / WebM
FILE_TOO_LARGELa fuente supera los 200 MB
DURATION_EXCEEDS_LIMITLa fuente dura más de 600 s
SOURCE_RESOLUTION_TOO_HIGHLa fuente ya está en o por encima del destino — elige un destino más alto
INSUFFICIENT_CREDITSCréditos insuficientes — recarga y vuelve a intentarlo
ACCOUNT_FROZENLa 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/createTask

Payload 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 estadoSignificadoAcción
400Parámetros no válidosRevisa el mensaje de error y corrige tu solicitud
401Clave de API no válida o ausenteRevisa el formato de tu cabecera Authorization
402Créditos insuficientesAbre Credits para comprar créditos o activar la recarga automática y vuelve a intentar la solicitud
403Acceso denegadoSolo puedes consultar tus propias tareas
404Tarea no encontradaVerifica que el taskId sea correcto
500Error interno del servidorVuelve 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ámetroTipoObligatorioDescripción
EMPTY_CONTENTcodeNoNo hay prompt ni imagen/vídeo/audio de referencia.
AUDIO_ONLY_NOT_SUPPORTEDcodeNoEl 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_MODELcodeNoEl alias del modelo no es compatible. Para Wan 3.0, usa exactamente "wan3.0-video-prime" o "wan3.0-video".
UNSUPPORTED_RESOLUTIONcodeNoEl 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_RANGEcodeNoduration 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_COMBINATIONcodeNoEl 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_REQUIREDcodeNoSe solicitó mode "edit" / "extend" sin un vídeo en videoUrls.
EDIT_SOURCE_DURATION_INVALIDcodeNoEdició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_REFERENCEScodeNoHay 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_INVALIDcodeNoUn 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_INVALIDcodeNoUna 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_INVALIDcodeNoUna 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_INVALIDcodeNoUn vídeo subido para Wan 3.0 incumple el requisito de tamaño, formato MP4/MOV, dimensiones o relación de aspecto.
REFERENCE_AUDIO_INVALIDcodeNoUn 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_FAILEDcodeNoNo 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