Veevid

Servidor MCP remoto para Veevid AI: lista modelos, consulta el costo de créditos y genera videos, imágenes y audio con IA desde Claude Code, Cursor o Claude Desktop.

Servidor MCP alojado

npx add-mcp 'https://veevid.ai/api/mcp'

Se instala en Claude Code, Codex, Cursor y más

Documentación

Inicio Rápido

1. Obtén tu Clave de API

Crea una clave de API en veevid.ai/settings/api-keys. Guárdala de forma segura: solo se muestra una vez.

mkdir -p ~/.config/veevid
echo "vv_sk_your_key_here" > ~/.config/veevid/api_key

2. Obtén un Presupuesto

Antes de generar, verifica el costo exacto en créditos. Un presupuesto es gratuito y nunca inicia una generación:

curl -X POST https://veevid.ai/api/quote \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "mode": "veo3",
    "generation_type": "text-to-video",
    "video_quality": "standard"
  }'

Respuesta:

{
  "required_credits": 30,
  "current_balance": 451,
  "sufficient": true
}

3. Genera un Video

curl -X POST https://veevid.ai/api/generate-video \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A golden retriever running through sunflowers, cinematic lighting",
    "mode": "veo3",
    "generation_type": "text-to-video",
    "aspect_ratio": "16:9",
    "video_quality": "standard"
  }'

Respuesta:

{
  "generation_id": "vg_abc123",
  "status": "processing",
  "video_url": null,
  "image_url": null,
  "provider_task_id": "...",
  "video_quality": "standard"
}

El mismo endpoint genera imágenes y audio también: elige un mode y generation_type de Modelos.

4. Verifica el Estado

curl https://veevid.ai/api/video-generation/GENERATION_ID/status \
  -H "Authorization: Bearer YOUR_API_KEY"

Cuando se complete:

{
  "id": "vg_abc123",
  "status": "completed",
  "media_kind": "video",
  "video_url": "https://cdn.veevid.ai/generated-videos/...mp4",
  "credits_used": 30,
  ...
}

Tiempo típico de generación: 60–180 segundos para videos, de unos segundos a un minuto para imágenes y audio.

Autenticación

Todas las solicitudes a la API requieren un token Bearer:

Authorization: Bearer vv_sk_your_key_here
  • Las claves comienzan con el prefijo vv_sk_
  • Crea y administra claves en /settings/api-keys (la administración de claves solo está disponible con sesión iniciada en el sitio web, no a través de la API)
  • Cada clave comparte el saldo de créditos de tu cuenta
  • Máximo 5 claves activas por cuenta

Consejos de seguridad

  • Nunca expongas tu clave de API en código del lado del cliente
  • Usa variables de entorno o archivos de configuración seguros
  • Rota las claves si sospechas de una fuga

Servidor MCP

Veevid también es un servidor MCP (Protocolo de Contexto de Modelo) remoto, por lo que asistentes de IA como Claude Code, Cursor y Claude Desktop pueden listar modelos, presupuestar, generar y obtener resultados por ti. Las herramientas MCP ejecutan los mismos endpoints que la API REST de esta página: misma clave de API, mismos modelos, mismo saldo de créditos y el mismo costo de créditos que en el sitio web (ver precios).

ConfiguraciónValor
Endpointhttps://veevid.ai/api/mcp
TransporteHTTP transmisible (POST, sin estado)
AutenticaciónEncabezado Authorization: Bearer vv_sk_your_key_here. Solo claves de API: no hay inicio de sesión OAuth, así que usa una de las configuraciones a continuación en lugar de un conector basado en inicio de sesión.

1. Obtén una Clave de API

Inicia sesión en el sitio web y crea una clave en veevid.ai/settings/api-keys. Guárdala de forma segura: solo se muestra una vez. En los ejemplos a continuación, reemplaza vv_sk_your_key_here con tu clave.

2. Conecta tu Cliente

Claude Code

claude mcp add --transport http veevid https://veevid.ai/api/mcp \
  --header "Authorization: Bearer vv_sk_your_key_here"

El servidor se agrega al proyecto actual. Agrega --scope user para usarlo en todos tus proyectos.

Cursor

Agrega esto a ~/.cursor/mcp.json (todos los proyectos) o .cursor/mcp.json en un proyecto:

{
  "mcpServers": {
    "veevid": {
      "url": "https://veevid.ai/api/mcp",
      "headers": {
        "Authorization": "Bearer vv_sk_your_key_here"
      }
    }
  }
}

Para mantener la clave fuera del archivo, escribe "Bearer ${env:VEEVID_API_KEY}" y establece VEEVID_API_KEY en tu entorno.

Claude Desktop

El archivo de configuración de Claude Desktop ejecuta servidores locales, así que conéctate a través del puente mcp-remote (requiere Node.js). Abre Configuración → Desarrollador → Editar Configuración (claude_desktop_config.json), agrega el servidor, luego cierra y reinicia Claude Desktop por completo:

{
  "mcpServers": {
    "veevid": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://veevid.ai/api/mcp",
        "--header",
        "Authorization:${VEEVID_AUTH}"
      ],
      "env": {
        "VEEVID_AUTH": "Bearer vv_sk_your_key_here"
      }
    }
  }
}

Mantén Authorization:${VEEVID_AUTH} sin espacio y coloca la clave en env: los espacios dentro de args se rompen en Windows.

3. Herramientas

get_quote y generate toman mode, generation_type y params, donde params contiene todos los demás campos del cuerpo de la solicitud (prompt, duración, aspect_ratio, video_quality, image, images, video, audio…) exactamente como se enumeran en Modelos. Los archivos de entrada son URLs https. Los resultados son JSON. Una llamada fallida se marca como error y lleva un mensaje error, además de http_status cuando el endpoint de la API subyacente rechazó la solicitud.

HerramientaQué hace
list_modelsLista modelos (mode, generation_type, name, category, summary), opcionalmente filtrados por categoría: video, image, audio, video-tool o effect. Pasa mode para obtener los parámetros de ese modelo, archivos de entrada, carpetas de carga, reglas y una solicitud de ejemplo.
get_creditsDevuelve tu saldo de créditos actual.
get_quoteDevuelve el costo exacto en créditos de una solicitud (required_credits, current_balance, sufficient) sin ejecutarla. Gratis.
generateInicia una generación de video, imagen o audio y devuelve su generation_id. Gasta créditos; se reembolsan automáticamente si el trabajo falla.
get_generationDevuelve el estado y el resultado de una generación por id: video_url contiene el archivo de salida para video, imagen y audio. Establece wait_seconds (hasta 40) para esperar a que termine.
upload_fileSube un archivo de imagen, video o audio desde source_url (https, hasta 20MB) o data_base64 (hasta 10MB) y devuelve una url para pasar a generate. Usa la carpeta de carga que list_models da para el modelo.
create_upload_urlDevuelve una URL prefirmada para hacer PUT de un archivo grande directamente al almacenamiento. Actualmente solo para veed-clean-audio (carpeta remove-background-noise/input, hasta 512MB).
list_creationsLista tus generaciones pasadas, de la más reciente a la más antigua. Opcional: page, page_size (hasta 50), generation_type e include_audio.

4. Ejemplo: Presupuesto, Generación, Obtención del Resultado

Pide a tu asistente algo como "Haz un video de 8 segundos de un golden retriever corriendo entre girasoles con Veo 3.1". Llama a las herramientas en este orden (los números a continuación son marcadores de posición):

get_quote — argumentos:

{
  "mode": "veo3",
  "generation_type": "text-to-video",
  "params": {
    "prompt": "A golden retriever running through sunflowers, cinematic lighting",
    "video_quality": "standard",
    "resolution": "720p",
    "duration": "8",
    "aspect_ratio": "16:9"
  }
}

Resultado:

{
  "required_credits": <cost of this request>,
  "current_balance": <your balance>,
  "sufficient": true
}

El servidor le dice al asistente que confirme el costo contigo antes de generar.

generate — los mismos argumentos que get_quote. Resultado:

{
  "generation_id": "vg_abc123",
  "status": "processing",
  "video_url": null,
  ...
}

get_generation — argumentos:

{
  "id": "vg_abc123",
  "wait_seconds": 40
}

Resultado cuando se completa:

{
  "id": "vg_abc123",
  "status": "completed",
  "media_kind": "video",
  "video_url": "https://cdn.veevid.ai/generated-videos/...mp4",
  "error_message": null,
  "credits_used": <credits charged>,
  ...
}

Los videos suelen tardar de 1 a 5 minutos. Mientras status sigue en "processing", el asistente llama a get_generation nuevamente. Si generate agota el tiempo de espera, verifica list_creations antes de reintentar: el trabajo puede que ya haya comenzado.

Referencia de la API

URL base: https://veevid.ai. Todos los endpoints aceptan y devuelven JSON salvo que se indique lo contrario.

POST /api/quote

Obtén el costo exacto en créditos antes de generar. Envía el mismo cuerpo que enviarás a /api/generate-video, incluido el prompt: los modelos GPT Image, Qwen Image, text-to-speech y música lo verifican. Las URLs de archivos solo se necesitan para presupuestar speech-to-text y eliminación de ruido (la URL de audio); para otros modelos puedes presupuestar antes de subir. El endpoint de presupuesto no lee URLs de video y, para algunos modelos, no cuenta el array images, así que describe tus archivos de entrada con estos campos: las reglas de cada modelo indican cuáles necesita:

Campo de presupuestoDescripción
input_image_countNúmero de imágenes (0–16), para los modelos cuyas reglas lo solicitan
has_video_inputSiempre true cuando envías videos de referencia, o un video fuente para editar o extender (no para character swap ni el video fuente de insert-shot)
input_video_countNúmero de videos de referencia (también lo leen MiniMax H3 Max y el modelo insert-shot)
input_video_durationDuración en segundos del video o videos de entrada / referencia
reference_video_durationDuración total de los videos de referencia para un insert-shot
has_audio_input, input_audio_count, input_audio_durationLo mismo para entradas de audio

Solicitud:

{
  "mode": "kling-3",
  "generation_type": "text-to-video",
  "duration": "10",
  "model_version": "kling-3-standard",
  "generate_audio": true
}

Respuesta:

{
  "required_credits": 250,
  "current_balance": 451,
  "sufficient": true
}

POST /api/generate-video

Inicia una generación. A pesar del nombre, este único endpoint maneja todos los modelos: video, imagen, audio y herramientas de video. Cada modelo acepta sus propios parámetros: consulta Modelos para la lista completa. Los créditos se descuentan cuando se envía el trabajo y se reembolsan automáticamente si falla, salvo que las reglas del modelo indiquen lo contrario.

Parámetros comunes:

ParámetroTipoDescripción
modestringSelector de modelo (ver Modelos). Requerido en la práctica: el valor predeterminado del servidor es un modelo heredado.
generation_typestringQué hacer con el modelo, p. ej. "text-to-video", "image-to-video", "reference-to-video", "text-to-image", "image-to-image", "text-to-speech", "video-upscale". El valor predeterminado es "text-to-video".
promptstringPrompt de texto (máximo 20,000 caracteres; algunos modelos permiten menos). Los prompts se envían al modelo tal cual: la traducción automática de prompts del sitio web no se aplica a las llamadas de API, así que escribe los prompts en inglés para obtener mejores resultados.
aspect_ratiostring"16:9", "9:16", "1:1", etc.: los valores permitidos dependen del modelo
durationstringDuración de salida en segundos, como string (específico del modelo). Para herramientas, suele ser la duración de tu video de entrada.
video_qualitystringNivel o resolución, según el modelo (p. ej. nivel Veo 3.1 "lite" / "standard" / "pro"; "720p" / "1080p"; modelos de imagen "1K" / "2K" / "4K")
resolutionstringResolución de salida para modelos que la toman por separado (p. ej. Veo 3.1 "720p" / "1080p" / "4k")
imagestringURL de imagen única (primer fotograma, foto de personaje…)
imagesstring[]Múltiples URLs de imágenes (fotogramas de inicio/fin, imágenes de referencia, imágenes para editar)
videostringURL de video único (video fuente para herramientas)
videosstring[]URLs de videos de referencia
audiostringURL de audio (audio guía, audio para transcribir…). Algunos modelos toman un array audios en su lugar.
model_versionstringSubvariante (p. ej. "kling-3-pro", "seedance-2.0-fast")

Respuesta:

{
  "generation_id": "vg_abc123",
  "status": "processing",
  "video_url": null,
  "image_url": null,
  "provider_task_id": "...",
  "video_quality": "standard"
}

La mayoría de los trabajos devuelven "processing": consulta el endpoint de estado. Algunos devuelven "completed" de inmediato con video_url (videos) o image_url (imágenes).

GET /api/video-generation/{generation_id}/status

Consulta la finalización. Funciona para todo tipo de generación: videos, imágenes y audio.

Respuesta (completada):

{
  "id": "vg_abc123",
  "status": "completed",
  "media_kind": "image",
  "video_url": "https://cdn.veevid.ai/images/...jpg",
  "error_message": null,
  "credits_used": 5,
  "created_at": "2026-10-06T08:00:00.000Z",
  "completed_at": "2026-10-06T08:01:37.000Z",
  "video_metadata": { "content_type": null, "file_name": null, "file_size": null },
  "provider_task_id": "...",
  "video_quality": "1K",
  "result_images": ["https://cdn.veevid.ai/images/...jpg"]
}
CampoDescripción
status"processing" → "completed" o "failed"
media_kind"video", "image" o "audio"
video_urlEl archivo de resultado para todo tipo de medio: video, imagen o audio (para imágenes es la primera imagen)
result_imagesTodas las imágenes de salida, cuando un modelo devuelve más de una
error_messagePor qué falló la generación (los créditos normalmente se reembolsan automáticamente)
lyrics, transcript, timestampsResultados de audio adicionales: letras de canciones (Lyria), la transcripción (Scribe V2) y marcas de tiempo de palabras (Eleven v4, cuando se solicitan)
seedance25_draftSolo para borradores de Seedance 2.5 / Veevid 2.5 Pro 480p: { upgradable, upgrade_credits, expires_at, upgrade_generation_id } — ver upgrade-draft a continuación

POST /api/video-generation/{generation_id}/upgrade-draft

Los videos de Seedance 2.5 y Veevid 2.5 Pro generados a 480p suelen ser borradores (la respuesta de estado incluye seedance25_draft). Un borrador completado puede mejorarse una vez, dentro de 7 días, a una versión 1080p con el mismo prompt, entradas y semilla. No se necesita cuerpo de solicitud; la mejora es una nueva generación con su propio generation_id para consultar. Obtén su precio primero enviando solo el id del borrador al endpoint de presupuesto:

curl -X POST https://veevid.ai/api/quote \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "draft_upgrade_id": "vg_abc123" }'

curl -X POST https://veevid.ai/api/video-generation/vg_abc123/upgrade-draft \
  -H "Authorization: Bearer YOUR_API_KEY"

Respuesta:

{
  "generation_id": "vg_def456",
  "status": "processing",
  "credits_used": 790,
  "draft_id": "vg_abc123"
}

Devuelve 409 si el borrador aún no está completado o ya fue mejorado, 410 una vez que haya expirado, y 502 si la mejora no pudo enviarse (los créditos se reembolsan).

GET /api/user/creations

Lista tus generaciones, de la más reciente a la más antigua.

ConsultaDescripción
pageNúmero de página, comenzando en 1 (predeterminado 1)
pageSizeElementos por página (predeterminado 12, máximo 50)
generationTypeDevuelve solo un generation_type, p. ej. "text-to-image" (predeterminado: todos)
includeAudioLas generaciones de audio se omiten a menos que pases includeAudio=1
curl "https://veevid.ai/api/user/creations?page=1&pageSize=20&includeAudio=1" \
  -H "Authorization: Bearer YOUR_API_KEY"

Respuesta:

{
  "creations": [
    {
      "id": "vg_abc123",
      "mode": "veo3",
      "generationType": "text-to-video",
      "status": "completed",
      "prompt": "A golden retriever running through sunflowers...",
      "videoUrl": "https://cdn.veevid.ai/generated-videos/...mp4",
      "creditsUsed": 30,
      "createdAt": "2026-10-06T08:00:00.000Z",
      "mediaKind": "video",
      ...
    }
  ],
  "totalPages": 3,
  "currentPage": 1,
  "totalCount": 41,
  "hasMore": true
}

Ten en cuenta que los elementos de la lista usan nombres de campo en camelCase (videoUrl, generationType), a diferencia del endpoint de estado.

GET | DELETE /api/user/creations/{id}

GET devuelve una generación con los mismos campos que un elemento de lista. DELETE la elimina, incluidos sus archivos de resultado, y devuelve { "success": true }.

GET /api/credits

Verifica tu saldo de créditos actual.

{
  "success": true,
  "credits": 451,
  "balance": 451
}

Cargas de Archivos

Las entradas de imagen, video y audio se pasan como URLs. La mayoría de los modelos aceptan cualquier URL pública https, pero algunas herramientas solo aceptan archivos subidos a Veevid (indicado en las reglas de cada modelo). Sube primero un archivo local y luego pasa el url devuelto.

POST /api/storage/upload

multipart/form-data con un file y un folder. Usa la carpeta de subida indicada para la entrada del modelo: la carpeta determina qué tipos y tamaños de archivo se aceptan (imágenes: JPEG/PNG/WebP, 10MB por defecto; las carpetas de video y audio permiten archivos más grandes). Las solicitudes a este endpoint están limitadas a 100MB por nuestra plataforma de alojamiento, incluso si una carpeta o modelo permite más; para archivos más grandes, pasa una URL https pública si el modelo la acepta.

curl -X POST https://veevid.ai/api/storage/upload \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@./photo.jpg" \
  -F "folder=image-generator"

Respuesta:

{
  "url": "https://cdn.veevid.ai/image-generator/...jpg",
  "key": "image-generator/...jpg"
}

POST /api/storage/presign-upload

Subida directa para archivos grandes, actualmente solo para el modelo veed-clean-audio (carpeta remove-background-noise/input, hasta 512MB). Envía { "folder", "filename", "size" } (tamaño en bytes), luego PUT el archivo sin procesar a uploadUrl con exactamente el contentType devuelto como encabezado Content-Type, y pasa url al modelo. Extensiones aceptadas: .mp3 .wav .m4a .aac .ogg .opus .flac .mp4 .mov .m4v .webm. Devuelve 402 si tu saldo está por debajo del cargo mínimo por un minuto de audio.

{
  "uploadUrl": "https://...r2.cloudflarestorage.com/...&X-Amz-Signature=...",
  "url": "https://cdn.veevid.ai/remove-background-noise/input/...mp3",
  "key": "remove-background-noise/input/...mp3",
  "contentType": "audio/mpeg"
}

Modelos

Cada modelo a continuación se llama a través de POST /api/generate-video con su mode y generation_type. Abre un modelo para ver sus parámetros, archivos de entrada, reglas y un ejemplo de cuerpo de solicitud. Los parámetros marcados con afecta el precio cambian el costo en créditos: usa /api/quote para el monto exacto. Los valores predeterminados son los que usa la API cuando omites un campo, que no siempre son los que la web preselecciona, así que envía explícitamente los valores que te importan.

Modelos de Video

Generación de texto a video, imagen a video y referencia a video.

Modelomodogeneration_type
Google Veo 3.1veo3text-to-video, image-to-video, reference-to-video
Grok Imaginegrok-imaginetext-to-video, image-to-video
Kling 2.6kling-2-6text-to-video, image-to-video
Kling 3.0kling-3text-to-video, image-to-video
LTX 2.5ltx-2-5text-to-video, image-to-video
LTX 2.3ltx-2-3text-to-video, image-to-video
Wan Animatewan-animateimage-to-video
Veevid 2.0 Proveevid-2.0-protext-to-video, image-to-video
Veevid 2.5 Proveevid-2.5-protext-to-video, image-to-video
Seedance 2.0seedance-2.0text-to-video, image-to-video, reference-to-video
Seedance 2.5seedance-2.5text-to-video, image-to-video, reference-to-video
Wan 2.6wan-2-6text-to-video, image-to-video, reference-to-video
Wan 2.7wan-2.7text-to-video, image-to-video, reference-to-video
Wan 3.0wan-3.0text-to-video, image-to-video, reference-to-video
MiniMax H3minimax-h3text-to-video, image-to-video, reference-to-video
MiniMax H3 Maxminimax-h3-maxtext-to-video, image-to-video, reference-to-video
MiniMax H3 Max Camera Controlsminimax-h3-max-cameracamera-controls
MiniMax H3 Max Lip Syncminimax-h3-max-lip-synclip-sync
Gemini Omnigemini-omnitext-to-video, image-to-video, reference-to-video
Borealcreatify-borealtext-to-video, image-to-video

Modo de Google Veo 3.1: veo3

text-to-video

Genera un video de 4-8 segundos con audio nativo a partir de un prompt de texto usando Google Veo 3.1 (niveles Lite / Fast / Quality).

ParámetroValores y notas
prompt string · obligatorioDescripción de la escena (obligatorio, no vacío, máximo 20000 caracteres).
video_quality string afecta el precio predeterminado "standard""lite", "standard", "pro" Nivel: lite = Lite, standard = Fast, pro = Quality. Envía siempre video_quality.
resolution string afecta el precio predeterminado "720p""720p", "1080p", "4k" Resolución de salida.
duration string predeterminado "8""4", "6", "8" Segundos: "4", "6" o "8" (predeterminado 8).
aspect_ratio string predeterminado "16:9""16:9", "9:16" 16:9 (horizontal) o 9:16 (vertical).
watermark stringTexto de marca de agua personalizado opcional (máximo 200 caracteres).

Reglas

  • resolution, cuando se envía, debe ser 720p, 1080p o 4k (422 en caso contrario).
  • duration, cuando se envía, debe ser '4', '6' o '8' (400 en caso contrario); si se omite, duration se convierte en '8'.
  • Envía lite, standard o pro: cualquier otro valor aceptado de video_quality (por ejemplo, "1080p") se trata como el nivel Quality (pro): configura el tamaño de salida con resolution.
  • El precio depende solo del nivel de video_quality y de la resolución; duration y aspect_ratio no cambian el precio.

Ejemplo de cuerpo de solicitud

{
  "mode": "veo3",
  "generation_type": "text-to-video",
  "prompt": "A golden retriever running through sunflowers, cinematic lighting",
  "video_quality": "standard",
  "resolution": "720p",
  "duration": "8",
  "aspect_ratio": "16:9"
}

image-to-video

Anima un primer fotograma (opcionalmente hasta un último fotograma) en un video Veo 3.1 de 4-8 segundos con audio nativo.

ParámetroValores y notas
prompt string · obligatorioDescripción del movimiento/escena (obligatorio, no vacío, máximo 20000 caracteres).
images string[] · obligatorio[first_frame_url] o [first_frame_url, last_frame_url]. También se acepta una sola cadena image.
video_quality string afecta el precio predeterminado "standard""lite", "standard", "pro" Nivel: lite = Lite, standard = Fast, pro = Quality. Envía siempre video_quality.
resolution string afecta el precio predeterminado "720p""720p", "1080p", "4k" Resolución de salida; misma tabla de precios que texto a video.
duration string predeterminado "8""4", "6", "8" Segundos: "4", "6" o "8" (predeterminado 8).
aspect_ratio string predeterminado "16:9""16:9", "9:16" 16:9 (horizontal) o 9:16 (vertical).
watermark stringTexto de marca de agua personalizado opcional (máximo 200 caracteres).

Archivos de entrada

  • images: 1-2 URLs de imagen: primer fotograma, último fotograma opcional (máximo 10MB por imagen)

Carpetas de subida para /api/storage/upload

  • image: video-generator-veo3

Reglas

  • Se requiere image o un array images no vacío (400 'Image is required for image-to-video generation').
  • Envía 1 o 2 imágenes: el primer fotograma y un último fotograma opcional.
  • resolution debe ser 720p/1080p/4k (422) y duration 4/6/8 (400) cuando se envían.
  • Envía lite, standard o pro: cualquier otro valor aceptado de video_quality (por ejemplo, "1080p") se trata como el nivel Quality (pro): configura el tamaño de salida con resolution.
  • El precio depende solo del nivel de video_quality y de la resolución.
  • Para guiar la generación con imágenes de referencia (en lugar de primer/último fotograma), usa generation_type reference-to-video.

Ejemplo de cuerpo de solicitud

{
  "mode": "veo3",
  "generation_type": "image-to-video",
  "prompt": "The woman slowly turns toward the camera and smiles",
  "images": [
    "https://example.com/first-frame.jpg"
  ],
  "video_quality": "standard",
  "resolution": "720p",
  "duration": "8",
  "aspect_ratio": "16:9"
}

reference-to-video

Genera un video Veo 3.1 de 8 segundos que mantiene la consistencia de los sujetos con 1-3 imágenes de referencia.

ParámetroValores y notas
prompt string · obligatorioDescripción de la escena (obligatorio, no vacío).
images string[] · obligatorio1-3 URLs de imágenes de referencia.
video_quality string afecta el precio predeterminado "standard""lite", "standard" Solo los niveles Lite (lite) y Fast (standard) aceptan imágenes de referencia.
resolution string afecta el precio predeterminado "720p""720p", "1080p", "4k"
duration string predeterminado "8""8" Fijado a 8 segundos.
aspect_ratio string predeterminado "16:9""16:9" Envía 16:9; el modo de referencia solo admite 16:9.
watermark stringTexto de marca de agua personalizado opcional (máximo 200 caracteres).

Archivos de entrada

  • images: 1-3 URLs de imágenes de referencia (máximo 10MB por imagen)

Carpetas de subida para /api/storage/upload

  • image: video-generator-veo3

Reglas

  • images debe contener 1-3 URLs (400 'Reference-to-video requires 1-3 images').
  • video_quality, cuando se envía, debe ser lite o standard; el nivel Quality se rechaza con 422.
  • duration, cuando se envía, debe ser '8' (422).
  • resolution debe ser 720p/1080p/4k (422) cuando se envía.

Ejemplo de cuerpo de solicitud

{
  "mode": "veo3",
  "generation_type": "reference-to-video",
  "prompt": "The character from the reference walks through a neon-lit street at night",
  "images": [
    "https://example.com/character.png"
  ],
  "video_quality": "standard",
  "resolution": "720p",
  "duration": "8",
  "aspect_ratio": "16:9"
}

Modo de Grok Imagine: grok-imagine

text-to-video

Genera un video de 6-30 segundos con audio sincronizado a partir de un prompt de texto usando xAI Grok Imagine.

ParámetroValores y notas
prompt string · obligatorioPrompt de texto (obligatorio, no vacío).
duration string afecta el precio predeterminado "6"6–30 Segundos enteros enviados como cadena, 6-30.
video_quality string afecta el precio predeterminado "720p""480p", "720p" Resolución de salida: 480p o 720p. Envía siempre video_quality.
grokMode string predeterminado "normal""fun", "normal", "spicy" Modo de estilo Grok: fun, normal o spicy.
aspect_ratio string predeterminado "16:9""2:3", "3:2", "1:1", "9:16", "16:9" Relación de aspecto de salida; usa uno de los valores listados. Envía siempre aspect_ratio explícitamente (se usa 16:9 cuando se omite).

Reglas

  • duration debe ser una cadena entera entre 6 y 30 (400 en caso contrario); si se omite, duration predeterminado es 6.
  • video_quality, cuando se envía, debe ser 480p o 720p (400 en caso contrario).
  • grokMode debe ser fun, normal o spicy; aspect_ratio debe ser uno de los valores listados.
  • prompt debe ser no vacío.

Ejemplo de cuerpo de solicitud

{
  "mode": "grok-imagine",
  "generation_type": "text-to-video",
  "prompt": "A cat DJ spinning records in a neon club, crowd cheering",
  "duration": "6",
  "video_quality": "480p",
  "aspect_ratio": "1:1",
  "grokMode": "normal"
}

image-to-video

Anima una o más imágenes en un video de 6-30 segundos con audio usando xAI Grok Imagine.

ParámetroValores y notas
prompt string · obligatorioPrompt de texto (obligatorio, no vacío).
duration string afecta el precio predeterminado "6"6–30 Segundos enteros enviados como cadena, 6-30.
video_quality string afecta el precio predeterminado "720p""480p", "720p" Resolución de salida: 480p o 720p. Envía siempre video_quality.
grokMode string predeterminado "normal""fun", "normal", "spicy" Modo de estilo Grok: fun, normal o spicy.
aspect_ratio string"2:3", "3:2", "1:1", "9:16", "16:9" Relación de aspecto de salida; usa uno de los valores listados. Cuando se omite, una solicitud de una sola imagen sigue la imagen y una solicitud de múltiples imágenes usa 16:9.
images arrayArray opcional de todas las URLs de imagen cuando se usa más de una imagen (la primera también va en image).
image stringURL de la primera imagen. Obligatoria a menos que la envíes como images[0].

Archivos de entrada

  • image: URL de la primera imagen.
  • images: Array opcional de hasta 7 URLs de imagen cuando se usa más de una imagen (jpg/png/webp, máximo 10MB cada una).

Carpetas de subida para /api/storage/upload

  • image: video-generator-grok-imagine

Reglas

  • imagen a video requiere image o images (400).
  • Envía como máximo 7 imágenes.
  • aspect_ratio solo aplica cuando se usa más de una imagen; con una sola imagen, la salida sigue la imagen.
  • duration debe ser una cadena entera entre 6 y 30 (400 en caso contrario); si se omite, duration predeterminado es 6.
  • video_quality, cuando se envía, debe ser 480p o 720p (400 en caso contrario).
  • grokMode debe ser fun, normal o spicy; aspect_ratio debe ser uno de los valores listados.
  • prompt debe ser no vacío.

Ejemplo de cuerpo de solicitud

{
  "mode": "grok-imagine",
  "generation_type": "image-to-video",
  "prompt": "She turns toward the camera and laughs as the wind blows her hair",
  "image": "https://example.com/portrait.jpg",
  "duration": "6",
  "video_quality": "480p",
  "aspect_ratio": "1:1",
  "grokMode": "normal"
}

Modo de Kling 2.6: kling-2-6

text-to-video

Genera un video cinematográfico con audio nativo sincronizado opcional a partir de un prompt de texto usando Kling 2.6.

ParámetroValores y notas
prompt string · obligatorioPrompt de texto (obligatorio, no vacío, máximo 20000 caracteres).
negative_prompt stringCosas opcionales a evitar (máximo 2000 caracteres).
duration string afecta el precio predeterminado "5""5", "10" Segundos, enviados como cadena: "5" o "10".
aspect_ratio string predeterminado "16:9""16:9", "9:16", "1:1" Relación de aspecto de salida.
generate_audio boolean afecta el precio predeterminado trueGenerar audio nativo.

Reglas

  • duration debe ser '5' o '10'; aspect_ratio debe ser uno de 16:9, 9:16, 1:1.

Ejemplo de cuerpo de solicitud

{
  "mode": "kling-2-6",
  "generation_type": "text-to-video",
  "prompt": "A red fox running through a snowy forest at sunrise, cinematic",
  "duration": "5",
  "aspect_ratio": "16:9",
  "generate_audio": true
}

image-to-video

Anima una imagen inicial en un video guiado por un prompt de texto, con audio nativo sincronizado opcional, usando Kling 2.6.

ParámetroValores y notas
prompt string · obligatorioPrompt de texto que describe el movimiento (obligatorio, no vacío).
image string · obligatorioURL pública de la imagen del fotograma inicial.
negative_prompt stringOpcional: cosas a evitar (máximo 2000 caracteres).
duration string afecta el precio valor por defecto "5""5", "10" Segundos, enviado como string: "5" o "10".
aspect_ratio string valor por defecto "16:9""16:9" Enviar 16:9; la salida sigue la relación de aspecto de la imagen de entrada.
generate_audio boolean afecta el precio valor por defecto trueGenerar audio nativo.

Archivos de entrada

  • image: 1 URL de imagen usada como fotograma inicial (JPEG/PNG/WebP, máx. 10MB)

Carpetas de subida para /api/storage/upload

  • image: video-generator-kling26

Reglas

  • image (o images[0]) es obligatorio para imagen-a-video; de lo contrario, 400 'Image is required for image-to-video generation'.
  • Solo se usa una imagen (fotograma inicial); no hay soporte de fotograma final para Kling 2.6.
  • duration debe ser '5' o '10'.

Ejemplo de cuerpo de solicitud

{
  "mode": "kling-2-6",
  "generation_type": "image-to-video",
  "prompt": "The woman slowly turns her head and smiles",
  "image": "https://cdn.veevid.ai/sample/motion-control-image-1.webp",
  "duration": "5",
  "aspect_ratio": "16:9",
  "generate_audio": true
}

Modo Kling 3.0: kling-3

text-to-video

Genera un video de 3-15 segundos con audio nativo opcional a partir de un prompt de texto o una lista de prompts de múltiples tomas usando Kling 3.0 Standard/Pro.

ParámetroValores y notas
prompt stringPrompt de texto único. Obligatorio a menos que se use multi_prompt; enviar prompt o multi_prompt, no ambos (enviar prompt como string vacío al usar multi_prompt).
multi_prompt arrayPrompts de múltiples tomas: array de {prompt: string (máx. 5000 caracteres), duration: string segundos 3-15}. Establecer duration a la suma de las duraciones de los elementos.
model_version string afecta el precio valor por defecto "kling-3-standard""kling-3-standard", "kling-3-pro" Nivel de calidad Standard o Pro.
duration string afecta el precio valor por defecto "5"3–15 Total de segundos como string, paso entero 1.
aspect_ratio string valor por defecto "16:9""16:9", "9:16", "1:1" Relación de aspecto de salida.
generate_audio boolean afecta el precio valor por defecto falseAudio nativo. Cuando se omite, el video se genera sin audio (y se cobra como silencioso); el sitio web envía true.
shot_type string valor por defecto "customize""customize", "intelligent" 'customize' o 'intelligent'.
cfg_scale number valor por defecto 0.50–1 Adherencia al prompt, 0-1 (paso 0.01).
negative_prompt stringOpcional: cosas a evitar (máximo 2000 caracteres).

Reglas

  • duration debe ser un entero 3-15.
  • aspect_ratio debe ser uno de 16:9, 9:16, 1:1 cuando se proporcione.
  • model_version debe ser kling-3-standard o kling-3-pro; de lo contrario, 400.
  • prompt y multi_prompt no deben estar ambos no vacíos; con multi_prompt, establecer duration a la suma de las duraciones de los elementos.

Ejemplo de cuerpo de solicitud

{
  "mode": "kling-3",
  "generation_type": "text-to-video",
  "prompt": "A drone shot flying over a neon-lit city at night, rain reflections",
  "model_version": "kling-3-standard",
  "duration": "5",
  "aspect_ratio": "16:9",
  "generate_audio": true,
  "shot_type": "customize",
  "cfg_scale": 0.5
}

image-to-video

Anima un fotograma inicial (opcionalmente a un fotograma final) en un video de 3-15 segundos con audio nativo opcional (Kling 3.0 Standard o Pro).

ParámetroValores y notas
prompt stringPrompt de texto. Obligatorio a menos que se use multi_prompt; nunca enviar ambos no vacíos.
image stringURL pública del fotograma inicial. Si también se envía images, images[0] tiene prioridad.
images array[start_frame_url] o [start_frame_url, end_frame_url]. images[0] es el fotograma inicial (tiene prioridad sobre image), images[1] el fotograma final opcional.
multi_prompt arrayArray de {prompt, duration} para generación de múltiples tomas. No combinar con un fotograma final.
model_version string afecta el precio valor por defecto "kling-3-standard""kling-3-standard", "kling-3-pro"
duration string afecta el precio valor por defecto "5"3–15 Total de segundos como string.
aspect_ratio string valor por defecto "16:9""16:9", "9:16", "1:1"
generate_audio boolean afecta el precio valor por defecto falseAudio nativo. Cuando se omite, el video se genera sin audio (y se cobra como silencioso); el sitio web envía true.
shot_type string valor por defecto "customize""customize" Enviar 'customize'.
cfg_scale number valor por defecto 0.50–1
negative_prompt stringPrompt negativo opcional (máx. 2000 caracteres); omitir cuando esté vacío.

Archivos de entrada

  • image: 1 URL de imagen (fotograma inicial); JPEG/PNG/WebP, máx. 10MB
  • images: 1-2 URLs de imagen: [start_frame] o [start_frame, end_frame]; solo se usan los dos primeros

Carpetas de subida para /api/storage/upload

  • image: video-generator-kling3
  • images: video-generator-kling3

Reglas

  • image o images[0] es obligatorio; de lo contrario, 400 'Image is required for image-to-video generation'.
  • duration debe ser un entero 3-15; aspect_ratio uno de 16:9, 9:16, 1:1; model_version kling-3-standard o kling-3-pro.
  • images[1] se usa como fotograma final; un fotograma final no se puede combinar con multi_prompt.

Ejemplo de cuerpo de solicitud

{
  "mode": "kling-3",
  "generation_type": "image-to-video",
  "prompt": "The character walks toward the camera as the wind blows her hair",
  "image": "https://cdn.veevid.ai/sample/motion-control-image-1.webp",
  "images": [
    "https://cdn.veevid.ai/sample/motion-control-image-1.webp"
  ],
  "model_version": "kling-3-pro",
  "duration": "5",
  "aspect_ratio": "16:9",
  "generate_audio": true,
  "shot_type": "customize",
  "cfg_scale": 0.5
}

Modo LTX 2.5: ltx-2-5

text-to-video

Genera un video de 720p-4K con audio nativo a partir de un prompt de texto usando LTX 2.5 Fast o Pro; con un archivo de audio guía anima una escena a ese audio (audio-a-video).

ParámetroValores y notas
prompt string · obligatorioPrompt de texto (obligatorio, no vacío).
model_version string afecta el precio valor por defecto "ltx-2.5-fast""ltx-2.5-fast", "ltx-2.5-pro" Nivel Fast o Pro. Fast: 720p-2160p, 6-20s. Pro: 720p/1080p, 6/8/10s.
duration string afecta el precio valor por defecto "6""6", "8", "10", "12", "14", "16", "18", "20" Segundos, enviado como string. Pro solo admite 6/8/10; 12-20 requieren ltx-2.5-fast. Se ignora cuando se envía audio (el clip dura lo que el audio).
video_quality string afecta el precio valor por defecto "1080p""720p", "1080p", "1440p", "2160p" Resolución de salida. Pro solo admite 720p/1080p. Fast mayor de 10s solo admite 720p/1080p. Se ignora cuando se envía audio (siempre 1080p).
aspect_ratio string valor por defecto "16:9""16:9", "9:16" 16:9 o 9:16 ('auto' también se acepta cuando se envía audio). 16:9 cuando se omite.
target_fps number valor por defecto 2524, 25, 48, 50 Fotogramas por segundo. Pro: 24, 25 o 50. Fast: 24, 25, 48 o 50; Fast mayor de 10s solo 24 o 25. Se ignora cuando se envía audio.
generate_audio boolean valor por defecto trueGenerar una pista de audio nativa. Mismo precio en cualquier caso. Se ignora cuando se envía audio.
camera_motion string"dolly_in", "dolly_out", "dolly_left", "dolly_right", "jib_up", "jib_down", "static", "focus_shift" Movimiento de cámara opcional. Omitir para que el prompt decida. No permitido junto con audio (400).
audio string afecta el precioAudio guía opcional (2-20s; Pro 2-10s). Cambia a audio-a-video: el clip sigue el audio y dura lo mismo, siempre a 1080p. El precio depende entonces de la duración del audio. Debe ser un archivo subido con POST /api/storage/upload a la carpeta 'ltx25/audio'; cualquier otra URL se rechaza con 400 antes de cobrar.
input_audio_duration number afecta el precio2–20 Duración del audio guía en segundos. El servidor mide el archivo subido y usa la longitud medida (tu valor solo se usa si está dentro de 0.15s de la medición). Solo se necesita para cotizar antes de subir el audio.
guidance_scale number1–50 Solo audio-a-video (400 sin audio). Omitir para usar el valor por defecto del modelo.

Archivos de entrada

  • audio: Opcional: 1 archivo de audio guía (2-20s, Pro 2-10s; máx. 15MB), subido a la carpeta 'ltx25/audio'

Carpetas de subida para /api/storage/upload

  • audio: ltx25/audio

Reglas

  • texto-a-video no acepta imágenes (400); usar imagen-a-video.
  • duration debe ser uno de '6','8','10' para ltx-2.5-pro y '6'-'20' (par) para ltx-2.5-fast (400 de lo contrario).
  • video_quality debe ser 720p o 1080p para ltx-2.5-pro; 720p, 1080p, 1440p o 2160p para ltx-2.5-fast (400 de lo contrario).
  • ltx-2.5-fast mayor de 10s solo admite 720p/1080p y 24/25 fps (400 de lo contrario).
  • Las combinaciones inválidas se rechazan con 400 antes de cobrar; nada se degrada silenciosamente.
  • audio debe subirse primero con POST /api/storage/upload (carpeta 'ltx25/audio'); URLs externas y archivos en otras carpetas se rechazan con 400 antes de cobrar.
  • Si el servidor no puede leer la duración del archivo de audio subido, la solicitud se rechaza con 400; vuelve a codificarlo como MP3 o WAV y súbelo de nuevo.
  • El audio debe durar 2-20s (Pro: 2-10s), medido en el servidor (400 de lo contrario).
  • Con audio: duration, video_quality, target_fps y generate_audio se ignoran; camera_motion y una imagen final se rechazan (400).
  • Para cotizar audio-a-video, envía la URL de audio subida (la cotización mide el archivo). Antes de subir, envía has_audio_input: true y input_audio_duration en su lugar.
  • La generación es asíncrona; consulta por generation_id.

Ejemplo de cuerpo de solicitud

{
  "mode": "ltx-2-5",
  "generation_type": "text-to-video",
  "prompt": "A slow cinematic dolly shot through a neon-lit rainy street at night",
  "model_version": "ltx-2.5-fast",
  "duration": "6",
  "video_quality": "720p",
  "aspect_ratio": "16:9",
  "target_fps": 25,
  "generate_audio": true
}

image-to-video

Anima una imagen inicial (opcionalmente hacia una imagen final) en un video de 720p-4K con audio nativo usando LTX 2.5 Fast o Pro; con un archivo de audio guía anima la imagen a ese audio (audio-a-video).

ParámetroValores y notas
prompt stringPrompt de texto que describe el movimiento. Obligatorio a menos que se envíe audio.
image stringURL pública de la imagen inicial (primer fotograma). Obligatoria a menos que la envíes como images[0]; cuando se envían ambas se fusionan (image primero, duplicados eliminados).
images string[][start_url] o [start_url, end_url]. La segunda imagen se usa como fotograma final (no permitido con audio). Más de 2 imágenes se rechaza (400).
model_version string afecta el precio valor por defecto "ltx-2.5-fast""ltx-2.5-fast", "ltx-2.5-pro" Nivel Fast o Pro. Fast: 720p-2160p, 6-20s. Pro: 720p/1080p, 6/8/10s.
duration string afecta el precio valor por defecto "6""6", "8", "10", "12", "14", "16", "18", "20" Segundos, enviado como string. Pro solo admite 6/8/10; 12-20 requieren ltx-2.5-fast. Se ignora cuando se envía audio (el clip dura lo que el audio).
video_quality string afecta el precio valor por defecto "1080p""720p", "1080p", "1440p", "2160p" Resolución de salida. Pro solo admite 720p/1080p. Fast mayor de 10s solo admite 720p/1080p. Se ignora cuando se envía audio (siempre 1080p).
aspect_ratio string valor por defecto "16:9""auto", "16:9", "9:16" 'auto' sigue la imagen inicial; de lo contrario, 16:9 o 9:16. 16:9 cuando se omite (enviar 'auto' para mantener el encuadre de la imagen).
target_fps number valor por defecto 2524, 25, 48, 50 Fotogramas por segundo. Pro: 24, 25 o 50. Fast: 24, 25, 48 o 50; Fast mayor de 10s solo 24 o 25. Se ignora cuando se envía audio.
generate_audio boolean valor por defecto trueGenerar una pista de audio nativa. Mismo precio en cualquier caso. Se ignora cuando se envía audio.
camera_motion string"dolly_in", "dolly_out", "dolly_left", "dolly_right", "jib_up", "jib_down", "static", "focus_shift" Movimiento de cámara opcional. Omitir para que el prompt decida. No permitido junto con audio (400).
audio string afecta el precioAudio guía opcional (2-20s; Pro 2-10s). Cambia a audio-a-video: el clip sigue el audio y dura lo mismo, siempre a 1080p. El precio depende entonces de la duración del audio. Debe ser un archivo subido con POST /api/storage/upload a la carpeta 'ltx25/audio'; cualquier otra URL se rechaza con 400 antes de cobrar.
input_audio_duration number afecta el precio2–20 Duración del audio guía en segundos. El servidor mide el archivo subido y usa la longitud medida (tu valor solo se usa si está dentro de 0.15s de la medición). Solo se necesita para cotizar antes de subir el audio.
guidance_scale number1–50 Solo audio-a-video (400 sin audio). Omitir para usar el valor por defecto del modelo.

Archivos de entrada

  • image: 1 URL de imagen usada como primer fotograma
  • images: Opcional: [start, end] - 2 URLs de imagen; la segunda se usa como último fotograma
  • audio: Opcional: 1 archivo de audio guía (2-20s, Pro 2-10s; máx. 15MB), subido a la carpeta 'ltx25/audio'

Carpetas de subida para /api/storage/upload

  • imagen: video-generator-ltx25
  • imagen final: video-generator-ltx25-end
  • audio: ltx25/audio

Reglas

  • La conversión de imagen a video requiere una imagen inicial en image o images (400 'LTX 2.5 image-to-video requires a start image').
  • El fotograma inicial = primera imagen; el fotograma final = segunda imagen si está presente. La imagen final no cambia el precio.
  • duration debe ser uno de '6','8','10' para ltx-2.5-pro y '6'-'20' (par) para ltx-2.5-fast (400 en caso contrario).
  • video_quality debe ser 720p o 1080p para ltx-2.5-pro; 720p, 1080p, 1440p o 2160p para ltx-2.5-fast (400 en caso contrario).
  • ltx-2.5-fast con duración mayor a 10s solo admite 720p/1080p y 24/25 fps (400 en caso contrario).
  • Las combinaciones no válidas se rechazan con 400 antes de cobrar; nada se degrada silenciosamente.
  • audio debe cargarse primero con POST /api/storage/upload (carpeta 'ltx25/audio'); las URL externas y los archivos en otras carpetas se rechazan con 400 antes de cobrar.
  • Si el servidor no puede leer la duración del archivo de audio cargado, la solicitud se rechaza con 400; vuelve a codificarlo como MP3 o WAV y cárgalo de nuevo.
  • El audio debe durar entre 2 y 20 segundos (Pro: 2-10s), medido en el servidor (400 en caso contrario).
  • Con audio: duration, video_quality, target_fps y generate_audio se ignoran; camera_motion y una imagen final se rechazan (400).
  • Para cotizar audio a video, envía la URL de audio cargada (la cotización mide el archivo). Antes de cargar, envía has_audio_input: true y input_audio_duration en su lugar.
  • La generación es asíncrona; consulta por generation_id.

Ejemplo de cuerpo de solicitud

{
  "mode": "ltx-2-5",
  "generation_type": "image-to-video",
  "prompt": "The woman turns toward the camera and smiles as the wind moves her hair",
  "image": "https://example.com/start.jpg",
  "images": [
    "https://example.com/start.jpg"
  ],
  "model_version": "ltx-2.5-fast",
  "duration": "6",
  "video_quality": "1080p",
  "aspect_ratio": "auto",
  "target_fps": 25,
  "generate_audio": true
}

Modo LTX 2.3: ltx-2-3

text-to-video

Genera un video de alta resolución (1080p-2160p) con audio nativo opcional a partir de un prompt de texto usando LTX 2.3 o LTX 2.3 Fast.

ParámetroValores y notas
prompt string · obligatorioPrompt de texto (obligatorio, no vacío, máx. 20000 caracteres).
model_version string afecta el precio predeterminado "ltx-2.3""ltx-2.3", "ltx-2.3-fast" Variante estándar o rápida. Usa uno de los valores listados.
duration string · obligatorio afecta el precio"6", "8", "10", "12", "14", "16", "18", "20" Segundos, enviados como cadena. La estándar ('ltx-2.3') solo admite 6/8/10; 12-20 requieren 'ltx-2.3-fast'. Envíalo siempre explícitamente.
video_quality string afecta el precio predeterminado "1080p""1080p", "1440p", "2160p" Resolución de salida. Forzada a 1080p cuando model_version es 'ltx-2.3-fast' y duration > 10.
aspect_ratio string predeterminado "16:9""16:9", "9:16" 16:9 o 9:16 para texto a video.
target_fps number predeterminado 2424, 25, 48, 50 Fotogramas por segundo: 24, 25, 48 o 50. Envíalo explícitamente (se usa 24 si se omite). Forzado a 25 cuando model_version es 'ltx-2.3-fast' y duration > 10.
generate_audio boolean predeterminado trueGenera pista de audio nativa.

Reglas

  • Envía siempre duration; debe ser uno de '6','8','10','12','14','16','18','20' (400 en caso contrario).
  • model_version 'ltx-2.3' solo admite duration 6/8/10; 'ltx-2.3-fast' admite 6-20 (par). Otras combinaciones hacen fallar la generación.
  • video_quality debe ser uno de 1080p, 1440p, 2160p (400 en caso contrario); predeterminado a 1080p.
  • target_fps debe ser 24, 25, 48 o 50; otros valores hacen fallar la generación.
  • Con ltx-2.3-fast y duration > 10, la salida es siempre 1080p a 25 fps y se cobra como 1080p.
  • aspect_ratio: usa uno de los valores listados.
  • La generación es asíncrona; consulta por generation_id.

Ejemplo de cuerpo de solicitud

{
  "mode": "ltx-2-3",
  "generation_type": "text-to-video",
  "prompt": "A slow cinematic dolly shot through a neon-lit rainy street at night",
  "model_version": "ltx-2.3",
  "duration": "6",
  "video_quality": "1080p",
  "aspect_ratio": "16:9",
  "target_fps": 25,
  "generate_audio": true
}

image-to-video

Anima una imagen inicial (opcionalmente hacia una imagen final) en un video de alta resolución con audio nativo opcional usando LTX 2.3 o LTX 2.3 Fast.

ParámetroValores y notas
prompt string · obligatorioPrompt de texto que describe el movimiento (obligatorio, no vacío, máx. 20000 caracteres).
image stringURL pública de la imagen inicial (primer fotograma). Obligatoria a menos que envíes images; cuando se envían ambas, se usa images[0].
images string[][start_url] o [start_url, end_url]. images[1], si está presente, se usa como fotograma final.
model_version string afecta el precio predeterminado "ltx-2.3""ltx-2.3", "ltx-2.3-fast" Variante estándar o rápida. Usa uno de los valores listados.
duration string · obligatorio afecta el precio"6", "8", "10", "12", "14", "16", "18", "20" Segundos, enviados como cadena. La estándar solo admite 6/8/10; 12-20 requieren 'ltx-2.3-fast'. Envíalo siempre explícitamente.
video_quality string afecta el precio predeterminado "1080p""1080p", "1440p", "2160p" Resolución de salida. Forzada a 1080p cuando Fast y duration > 10.
aspect_ratio string predeterminado "16:9""auto", "16:9", "9:16" 'auto' sigue la imagen de entrada; de lo contrario, 16:9 o 9:16.
target_fps number predeterminado 2424, 25, 48, 50 Fotogramas por segundo: 24, 25, 48 o 50. Envíalo explícitamente (se usa 24 si se omite). Forzado a 25 cuando Fast y duration > 10.
generate_audio boolean predeterminado trueGenera pista de audio nativa.

Archivos de entrada

  • image: 1 URL de imagen usada como primer fotograma (JPEG/PNG/GIF, máx. 10MB)
  • images: Opcional: [start, end] - 2 URLs de imagen; la segunda se usa como último fotograma

Carpetas de carga para /api/storage/upload

  • image: video-generator-ltx23
  • imagen final: video-generator-ltx23-end

Reglas

  • La conversión de imagen a video requiere image o un array images no vacío (400 'Image is required for image-to-video generation').
  • Fotograma inicial = image (o images[0] si image está ausente); fotograma final = images[1] si está presente.
  • Envía siempre duration; debe ser uno de '6','8','10','12','14','16','18','20' (400 en caso contrario).
  • model_version 'ltx-2.3' solo admite duration 6/8/10; 'ltx-2.3-fast' admite 6-20 (par). Otras combinaciones hacen fallar la generación.
  • video_quality debe ser uno de 1080p, 1440p, 2160p (400 en caso contrario); predeterminado a 1080p.
  • target_fps debe ser 24, 25, 48 o 50; otros valores hacen fallar la generación.
  • Con ltx-2.3-fast y duration > 10, la salida es siempre 1080p a 25 fps y se cobra como 1080p.
  • aspect_ratio: usa uno de los valores listados.
  • La imagen final no cambia el precio.

Ejemplo de cuerpo de solicitud

{
  "mode": "ltx-2-3",
  "generation_type": "image-to-video",
  "prompt": "The woman turns toward the camera and smiles as the wind moves her hair",
  "image": "https://example.com/start.jpg",
  "images": [
    "https://example.com/start.jpg"
  ],
  "model_version": "ltx-2.3",
  "duration": "6",
  "video_quality": "1080p",
  "aspect_ratio": "16:9",
  "target_fps": 25,
  "generate_audio": true
}

Modo Wan Animate: wan-animate

image-to-video

Anima una imagen de personaje con el movimiento de un video de referencia (animate), o reemplaza a la persona en el video de referencia con el personaje (replace).

ParámetroValores y notas
image string · obligatorioURL pública de la imagen del personaje.
video string · obligatorioURL pública del video de referencia (de conducción), hasta 120 segundos.
animationMode string predeterminado "animate""animate", "replace" 'animate' = el personaje realiza el movimiento del video de referencia; 'replace' = el personaje reemplaza a la persona en el video de referencia.
video_quality string · obligatorio afecta el precio"480p", "720p" Resolución de salida. Envíalo siempre ('480p' o '720p').
duration string afecta el precio predeterminado "5"1–120 Duración del video de referencia en segundos enteros (redondeado hacia arriba), como cadena. Envía la duración real del video de referencia; determina el precio (5 si se omite).
prompt stringGuía de texto opcional, máx. 5000 caracteres; puede estar vacío.
aspect_ratio stringOpcional; puede omitirse (la salida sigue las entradas).

Archivos de entrada

  • image: 1 URL de imagen de personaje (JPEG/PNG/GIF, máx. 10MB)
  • video: 1 URL de video de referencia, máx. 120 segundos (máx. 200MB)

Carpetas de carga para /api/storage/upload

  • image: video-generator
  • video: wan-animate/reference-videos

Reglas

  • image es obligatorio (400 'Character image is required for wan-animate generation').
  • video es obligatorio (400 'Reference video is required for wan-animate generation').
  • Cuando se envía, duration debe ser un entero > 0 y <= 120 (400).
  • prompt, si se envía, debe ser <= 5000 caracteres (400).
  • generation_type debe ser 'image-to-video'.
  • Envía siempre video_quality ('480p' o '720p').
  • animationMode debe ser 'animate' o 'replace'; predeterminado a 'animate'.
  • Envía duration igual a la duración del video de referencia en segundos enteros (redondeado hacia arriba).
  • La generación es asíncrona; consulta por generation_id.

Ejemplo de cuerpo de solicitud

{
  "mode": "wan-animate",
  "generation_type": "image-to-video",
  "prompt": "",
  "image": "https://example.com/character.png",
  "video": "https://example.com/dance.mp4",
  "duration": "8",
  "video_quality": "480p",
  "aspect_ratio": "",
  "animationMode": "animate"
}

Modo Veevid 2.0 Pro: veevid-2.0-pro

text-to-video

Veevid 2.0 Pro texto a video, 4-15s, niveles Mini/Fast/Standard hasta 4K con audio nativo.

ParámetroValores y notas
prompt string · obligatorioPrompt de texto (máx. 20000 caracteres). Obligatorio para texto a video.
model_version string afecta el precio predeterminado "seedance-2.0""seedance-2.0-mini", "seedance-2.0-fast", "seedance-2.0" Nivel de calidad: Mini, Fast o Standard ('seedance-2.0'). Envía siempre model_version; cuando se omite, se usa Standard. Mini/Fast solo admiten 480p/720p.
duration string afecta el precio predeterminado "5"4–15 Duración de salida en segundos como cadena entera; los valores fuera de 4-15 se limitan a 4-15.
video_quality string afecta el precio predeterminado "480p""480p", "720p", "1080p", "4k" Resolución de salida. 1080p/4k solo están disponibles con Standard ('seedance-2.0'); con Mini/Fast se reducen a 720p y se cobran como 720p. Predeterminado a 480p; usa uno de los valores listados.
aspect_ratio string predeterminado "16:9""auto", "21:9", "16:9", "4:3", "1:1", "3:4", "9:16" Relación de aspecto de salida; 'auto' se adapta al contenido. Usa uno de los valores listados; cuando se omite, se usa 16:9.
generate_audio boolean predeterminado trueGenera audio nativo. No cambia el precio.
seed integer predeterminado -1Semilla aleatoria; -1 significa aleatoria.

Reglas

  • duration se limita a 4-15 segundos (tanto para el precio como para la salida); no se devuelve error de rango.
  • Envía siempre model_version; los valores distintos de los niveles Mini/Fast se tratan como Standard ('seedance-2.0').
  • generate_audio y seed no afectan el precio.

Ejemplo de cuerpo de solicitud

{
  "mode": "veevid-2.0-pro",
  "generation_type": "text-to-video",
  "prompt": "A chef flips a pancake in a sunlit kitchen, slow motion, warm tones",
  "model_version": "seedance-2.0-fast",
  "duration": "5",
  "aspect_ratio": "16:9",
  "video_quality": "480p",
  "generate_audio": true,
  "seed": -1
}

image-to-video

Veevid 2.0 Pro imagen a video con primer fotograma/último fotograma opcional, 4-15s, niveles Mini/Fast/Standard hasta 4K con audio nativo.

ParámetroValores y notas
prompt stringPrompt de texto opcional (máx. 20000 caracteres).
image stringURL pública https de la imagen del primer fotograma. Obligatoria a menos que la envíes como images[0].
images array<string>Opcional [first_frame_url, last_frame_url]; cuando se envían 2+ entradas, la última se usa como último fotograma.
model_version string afecta el precio predeterminado "seedance-2.0""seedance-2.0-mini", "seedance-2.0-fast", "seedance-2.0" Nivel de calidad: Mini, Fast o Standard ('seedance-2.0'). Envía siempre model_version; cuando se omite, se usa Standard. Mini/Fast solo admiten 480p/720p.
duration string afecta el precio predeterminado "5"4–15 Duración de salida en segundos como cadena entera; los valores fuera de 4-15 se limitan a 4-15.
video_quality string afecta el precio predeterminado "480p""480p", "720p", "1080p", "4k" Resolución de salida. 1080p/4k solo están disponibles con Standard ('seedance-2.0'); con Mini/Fast se reducen a 720p y se cobran como 720p. Predeterminado a 480p; usa uno de los valores listados.
aspect_ratio string predeterminado "16:9""auto", "21:9", "16:9", "4:3", "1:1", "3:4", "9:16" Relación de aspecto de salida; 'auto' se adapta al contenido. Usa uno de los valores listados; cuando se omite, se usa 16:9.
generate_audio boolean predeterminado trueGenera audio nativo. No cambia el precio.
seed integer predeterminado -1Semilla aleatoria; -1 significa aleatoria.

Archivos de entrada

  • image: 1 URL de imagen usada como primer fotograma (JPEG/PNG/WebP, máx. 30MB)
  • images: opcional [first,last] para agregar un último fotograma

Carpetas de carga para /api/storage/upload

  • image: seedance20

Reglas

  • duration se limita a 4-15 segundos (tanto para el precio como para la salida); no se devuelve error de rango.
  • Envía siempre model_version; los valores distintos de los niveles Mini/Fast se tratan como Standard ('seedance-2.0').
  • generate_audio y seed no afectan el precio.

Ejemplo de cuerpo de solicitud

{
  "mode": "veevid-2.0-pro",
  "generation_type": "image-to-video",
  "prompt": "A chef flips a pancake in a sunlit kitchen, slow motion, warm tones",
  "model_version": "seedance-2.0-fast",
  "duration": "5",
  "aspect_ratio": "auto",
  "video_quality": "480p",
  "generate_audio": true,
  "seed": -1,
  "image": "https://example.com/first-frame.jpg",
  "images": [
    "https://example.com/first-frame.jpg"
  ]
}

Modo Veevid 2.5 Pro: veevid-2.5-pro

text-to-video

Veevid 2.5 Pro texto a video, videos de una sola toma de 4-30s hasta 1080p con audio nativo.

ParámetroValores y notas
prompt string · obligatorioPrompt de texto (máx. 20000 caracteres). Se requiere un prompt o al menos una imagen.
duration string afecta el precio predeterminado "5"4–30 Duración de salida: cadena de enteros 4-30, o '-1' para que el modelo elija la duración. Cualquier otro valor devuelve 400.
video_quality string afecta el precio predeterminado "480p""480p", "720p", "1080p" Resolución de salida (1080p es HEVC de 10 bits). El valor predeterminado es 480p; use uno de los valores enumerados.
aspect_ratio string predeterminado "16:9""auto", "21:9", "16:9", "4:3", "1:1", "3:4", "9:16" Relación de aspecto de salida; 'auto' se adapta al contenido. Use uno de los valores enumerados; cuando se omite, se usa 16:9.
output_format string predeterminado "mp4""mp4", "mov" Contenedor. mov = H.264 yuv444p + audio PCM (reproducción deficiente en navegadores). Solo mp4/mov son válidos para este modo.
generate_audio boolean predeterminado trueGenerar audio nativo. No cambia el precio.
seed integer predeterminado -1Semilla aleatoria; -1 significa aleatorio.

Reglas

  • duration debe ser una cadena de enteros pura 4-30 o '-1'; de lo contrario, 400.
  • output_format debe ser mp4 o mov para este modo; los formatos de imagen (PNG/JPEG) devuelven 400.
  • output_format, generate_audio y seed no afectan el precio.
  • Los resultados en 480p suelen ser borradores: la respuesta de estado incluye entonces seedance25_draft, y el borrador puede mejorarse una vez a una versión 1080p dentro de 7 días con POST /api/video-generation/{id}/upgrade-draft.

Ejemplo de cuerpo de solicitud

{
  "mode": "veevid-2.5-pro",
  "generation_type": "text-to-video",
  "prompt": "A lighthouse keeper climbs the spiral stairs at dusk, one continuous take",
  "duration": "5",
  "aspect_ratio": "16:9",
  "video_quality": "480p",
  "output_format": "mp4",
  "generate_audio": true,
  "seed": -1
}

image-to-video

Veevid 2.5 Pro imagen a video con primer/último fotograma opcional, videos de una sola toma de 4-30s hasta 1080p con audio nativo.

ParámetroValores y notas
prompt stringPrompt de texto (máx. 20000 caracteres). Se requiere un prompt o al menos una imagen.
image stringURL https pública de la imagen del primer fotograma. Obligatoria a menos que la envíe como images[0].
images array<string>Opcional [first_frame_url, last_frame_url]; images[0] se usa como primer fotograma y la última entrada (cuando hay 2+) como último fotograma.
duration string afecta el precio predeterminado "5"4–30 Duración de salida: cadena de enteros 4-30, o '-1' para que el modelo elija la duración. Cualquier otro valor devuelve 400.
video_quality string afecta el precio predeterminado "480p""480p", "720p", "1080p" Resolución de salida (1080p es HEVC de 10 bits). El valor predeterminado es 480p; use uno de los valores enumerados.
aspect_ratio string predeterminado "auto""auto", "21:9", "16:9", "4:3", "1:1", "3:4", "9:16" No se aplica para imagen a video: la salida sigue la relación de aspecto del primer fotograma. Envíe 'auto'.
output_format string predeterminado "mp4""mp4", "mov" Contenedor. mov = H.264 yuv444p + audio PCM (reproducción deficiente en navegadores). Solo mp4/mov son válidos para este modo.
generate_audio boolean predeterminado trueGenerar audio nativo. No cambia el precio.
seed integer predeterminado -1Semilla aleatoria; -1 significa aleatorio.

Archivos de entrada

  • image: 1 URL de imagen usada como primer fotograma (JPEG/PNG/WebP, máx. 30MB)
  • images: opcional [first,last] para agregar un último fotograma

Carpetas de carga para /api/storage/upload

  • image: seedance25

Reglas

  • image (o images) es obligatorio para imagen a video; de lo contrario, 400.
  • Para imagen a video, la relación de aspecto siempre sigue al primer fotograma, independientemente de aspect_ratio.
  • duration debe ser una cadena de enteros pura 4-30 o '-1'; de lo contrario, 400.
  • output_format debe ser mp4 o mov para este modo; los formatos de imagen (PNG/JPEG) devuelven 400.
  • output_format, generate_audio y seed no afectan el precio.
  • Los resultados en 480p suelen ser borradores: la respuesta de estado incluye entonces seedance25_draft, y el borrador puede mejorarse una vez a una versión 1080p dentro de 7 días con POST /api/video-generation/{id}/upgrade-draft.

Ejemplo de cuerpo de solicitud

{
  "mode": "veevid-2.5-pro",
  "generation_type": "image-to-video",
  "prompt": "A lighthouse keeper climbs the spiral stairs at dusk, one continuous take",
  "duration": "5",
  "aspect_ratio": "auto",
  "video_quality": "480p",
  "output_format": "mp4",
  "generate_audio": true,
  "seed": -1,
  "image": "https://example.com/first-frame.jpg",
  "images": [
    "https://example.com/first-frame.jpg"
  ]
}

Modo Seedance 2.0: seedance-2.0

text-to-video

Genera un video de 4-15s con audio nativo opcional a partir de un prompt de texto usando ByteDance Seedance 2.0 (niveles Mini/Fast/Standard).

ParámetroValores y notas
prompt string · obligatorioPrompt de texto (máx. 20000 caracteres). Obligatorio para texto a video.
model_version string afecta el precio predeterminado "seedance-2.0""seedance-2.0-mini", "seedance-2.0-fast", "seedance-2.0" Nivel de calidad: 'seedance-2.0-mini', 'seedance-2.0-fast' o 'seedance-2.0' (Standard). Envíe siempre model_version; cuando se omite, se usa Standard. Mini y Fast solo admiten 480p/720p.
video_quality string afecta el precio predeterminado "480p""480p", "720p", "1080p", "4k" Resolución de salida ('4K' también se acepta como 4k). El valor predeterminado es 480p; use uno de los valores enumerados. 1080p y 4k solo están disponibles con 'seedance-2.0'; con Mini/Fast se reducen a 720p.
duration string afecta el precio predeterminado "5"4–15 Duración de salida en segundos como cadena de enteros (p. ej., "5"), 4-15. Los valores fuera de rango se limitan a 4-15; los valores no numéricos vuelven a 5.
aspect_ratio string predeterminado "16:9""auto", "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" Relación de aspecto de salida; 'auto' (o 'adaptive') se adapta al contenido. Use uno de los valores enumerados; cuando se omite, se usa 16:9.
generate_audio boolean predeterminado trueGenerar pista de audio nativa.
seed integer predeterminado -1Semilla aleatoria; -1 = aleatorio.

Reglas

  • duration debe ser una cadena JSON (p. ej., "5"); un número devuelve 400.
  • duration se limita a 4-15 segundos (tanto para el precio como para la salida) en lugar de rechazarse.
  • Envíe siempre model_version; los valores distintos de seedance-2.0 / seedance-2.0-fast / seedance-2.0-mini se tratan como seedance-2.0 (Standard).
  • seedance-2.0-fast y seedance-2.0-mini solo admiten 480p/720p; el 1080p/4k solicitado se reduce a 720p y se cobra como 720p.
  • Los créditos se deducen al enviar (402 si son insuficientes); los créditos no utilizados se reembolsan automáticamente si la generación falla.

Ejemplo de cuerpo de solicitud

{
  "mode": "seedance-2.0",
  "generation_type": "text-to-video",
  "prompt": "A red fox running through fresh snow at sunrise, cinematic tracking shot",
  "model_version": "seedance-2.0-fast",
  "video_quality": "480p",
  "duration": "5",
  "aspect_ratio": "16:9",
  "generate_audio": true,
  "seed": -1
}

image-to-video

Anima una imagen de primer fotograma (opcionalmente con una imagen de último fotograma) en un video de 4-15s con Seedance 2.0.

ParámetroValores y notas
prompt stringPrompt de texto opcional (máx. 20000 caracteres) cuando se proporcionan entradas de imagen o referencia.
model_version string afecta el precio predeterminado "seedance-2.0""seedance-2.0-mini", "seedance-2.0-fast", "seedance-2.0" Nivel de calidad: 'seedance-2.0-mini', 'seedance-2.0-fast' o 'seedance-2.0' (Standard). Envíe siempre model_version; cuando se omite, se usa Standard. Mini y Fast solo admiten 480p/720p.
video_quality string afecta el precio predeterminado "480p""480p", "720p", "1080p", "4k" Resolución de salida ('4K' también se acepta como 4k). El valor predeterminado es 480p; use uno de los valores enumerados. 1080p y 4k solo están disponibles con 'seedance-2.0'; con Mini/Fast se reducen a 720p.
duration string afecta el precio predeterminado "5"4–15 Duración de salida en segundos como cadena de enteros (p. ej., "5"), 4-15. Los valores fuera de rango se limitan a 4-15; los valores no numéricos vuelven a 5.
aspect_ratio string predeterminado "16:9""auto", "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" Relación de aspecto de salida; 'auto' (o 'adaptive') se adapta al contenido. Use uno de los valores enumerados; cuando se omite, se usa 16:9.
generate_audio boolean predeterminado trueGenerar pista de audio nativa.
seed integer predeterminado -1Semilla aleatoria; -1 = aleatorio.
image stringURL de la imagen del primer fotograma. Obligatoria a menos que la envíe como images[0].
images array<string>[first] o [first, last]. images[0] se usa como primer fotograma (anula image), y el último elemento se convierte en el último fotograma cuando la longitud > 1.

Archivos de entrada

  • image: 1 URL de imagen pública usada como primer fotograma (JPEG/PNG/WebP, máx. 30MB)
  • images: opcional [first_frame_url, last_frame_url] para el modo de primer+último fotograma

Carpetas de carga para /api/storage/upload

  • image: seedance20

Reglas

  • duration debe ser una cadena JSON (p. ej., "5"); un número devuelve 400.
  • duration se limita a 4-15 segundos (tanto para el precio como para la salida) en lugar de rechazarse.
  • Envíe siempre model_version; los valores distintos de seedance-2.0 / seedance-2.0-fast / seedance-2.0-mini se tratan como seedance-2.0 (Standard).
  • seedance-2.0-fast y seedance-2.0-mini solo admiten 480p/720p; el 1080p/4k solicitado se reduce a 720p y se cobra como 720p.
  • Los créditos se deducen al enviar (402 si son insuficientes); los créditos no utilizados se reembolsan automáticamente si la generación falla.
  • aspect_ratio se aplica tal como se envía para imagen a video.
  • El precio es el mismo que para texto a video (las imágenes no agregan costo).

Ejemplo de cuerpo de solicitud

{
  "mode": "seedance-2.0",
  "generation_type": "image-to-video",
  "prompt": "The woman turns toward the camera and smiles",
  "image": "https://example.com/first.jpg",
  "images": [
    "https://example.com/first.jpg"
  ],
  "model_version": "seedance-2.0-fast",
  "video_quality": "720p",
  "duration": "5",
  "aspect_ratio": "auto",
  "generate_audio": true,
  "seed": -1
}

reference-to-video

Genera un video de 4-15s guiado por referencias multimodales (hasta 9 imágenes, 3 videos, 3 clips de audio) con Seedance 2.0 omni reference.

ParámetroValores y notas
prompt stringPrompt de texto opcional (máx. 20000 caracteres) cuando se proporcionan entradas de imagen o referencia.
model_version string afecta el precio predeterminado "seedance-2.0""seedance-2.0-mini", "seedance-2.0-fast", "seedance-2.0" Nivel de calidad: 'seedance-2.0-mini', 'seedance-2.0-fast' o 'seedance-2.0' (Standard). Envíe siempre model_version; cuando se omite, se usa Standard. Mini y Fast solo admiten 480p/720p.
video_quality string afecta el precio predeterminado "480p""480p", "720p", "1080p", "4k" Resolución de salida ('4K' también se acepta como 4k). El valor predeterminado es 480p; use uno de los valores enumerados. 1080p y 4k solo están disponibles con 'seedance-2.0'; con Mini/Fast se reducen a 720p.
duration string afecta el precio predeterminado "5"4–15 Duración de salida en segundos como cadena de enteros (p. ej., "5"), 4-15. Los valores fuera de rango se limitan a 4-15; los valores no numéricos vuelven a 5.
aspect_ratio string predeterminado "16:9""auto", "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" Relación de aspecto de salida; 'auto' (o 'adaptive') se adapta al contenido. Use uno de los valores enumerados; cuando se omite, se usa 16:9.
generate_audio boolean predeterminado trueGenerar pista de audio nativa.
seed integer predeterminado -1Semilla aleatoria; -1 = aleatorio.
images array<string>URLs de imágenes de referencia (rol reference_image). Máx. 9; los extras se ignoran.
videos array<string> afecta el precioURLs de videos de referencia (rol reference_video), mp4/mov. Máx. 3; los extras se ignoran.
input_video_duration number afecta el precio0–15 Segundos totales de todos los videos de referencia (redondeados hacia arriba). Obligatorio cuando se envían videos; debe ser igual a la duración total de los videos de referencia. >15 se rechaza con 400; los valores por debajo de 2 se cobran como 2.
audio stringOpcional; si se envía, establézcalo en la primera URL de audio de referencia (audios[0]).
audios array<string>URLs de audio de referencia (rol reference_audio). Máx. 3, .wav/.mp3, total <= 15s; los extras se ignoran. El audio no puede ser la única referencia: se requiere al menos una imagen o un video.

Archivos de entrada

  • images: 0-9 URLs de imágenes de referencia (JPEG/PNG/WebP; máx. 30MB cada una)
  • videos: 0-3 URLs de videos de referencia (mp4/mov, máx. 50MB cada uno, total <= 15s)
  • audios: 0-3 URLs de audio de referencia (wav/mp3, máx. 15MB cada uno, total <= 15s); requiere al menos una imagen o video

Carpetas de carga para /api/storage/upload

  • image: seedance20
  • video: seedance20/reference-videos
  • audio: seedance20/audio

Reglas

  • duration debe ser una cadena JSON (p. ej. "5"); un número devuelve 400.
  • duration se limita a 4-15 segundos (tanto para precio como para salida) en lugar de rechazarse.
  • Envía siempre model_version; valores distintos de seedance-2.0 / seedance-2.0-fast / seedance-2.0-mini se tratan como seedance-2.0 (Estándar).
  • seedance-2.0-fast y seedance-2.0-mini solo admiten 480p/720p; la solicitud de 1080p/4k se reduce a 720p y se factura como 720p.
  • Los créditos se descuentan al enviar (402 si son insuficientes); los créditos no utilizados se reembolsan automáticamente si la generación falla.
  • Se requiere al menos una imagen o video de referencia (solo audio no está permitido); de lo contrario, la generación falla.
  • Al enviar videos, envía input_video_duration igual a la duración total de los videos de referencia en segundos (redondeado hacia arriba); > 15 se rechaza con 400.
  • Envía como máximo 9 imágenes, 3 videos y 3 audios; los adicionales se ignoran.
  • Sin videos de referencia (solo imágenes/audio), el precio equivale al precio de texto a video.
  • Al cotizar con /api/quote, añade has_video_input: true y input_video_duration si envías videos de referencia (el endpoint de cotización no lee las URL de video, por lo que el precio saldría demasiado bajo).

Ejemplo de cuerpo de solicitud

{
  "mode": "seedance-2.0",
  "generation_type": "reference-to-video",
  "prompt": "The character from image 1 dances in the style of video 1",
  "images": [
    "https://example.com/character.png"
  ],
  "videos": [
    "https://example.com/dance.mp4"
  ],
  "input_video_duration": 6,
  "model_version": "seedance-2.0-fast",
  "video_quality": "480p",
  "duration": "5",
  "aspect_ratio": "auto",
  "generate_audio": true,
  "seed": -1
}

Modo Seedance 2.5: seedance-2.5

text-to-video

Genera un video de una sola toma de 4-30s con audio nativo opcional a partir de un prompt de texto usando ByteDance Seedance 2.5.

ParámetroValores y notas
prompt string · obligatorioPrompt de texto (máx. 20000 caracteres). Obligatorio para texto a video.
video_quality string afecta el precio predeterminado "480p""480p", "720p", "1080p" Resolución de salida; envía siempre video_quality explícitamente. 1080p es HEVC de 10 bits (puede no reproducirse en algunos navegadores). '4k'/'4K'/'2160p' se tratan como 1080p.
duration string afecta el precio predeterminado "5"4–30 Segundos de salida como una cadena que contiene un entero simple de 4 a 30, o "-1" para que el modelo elija la duración. Cualquier otro valor (p. ej. "3", "31", "5.0", "0x10") se rechaza con 400.
aspect_ratio string predeterminado "16:9""auto", "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" Relación de aspecto de salida; 'auto' permite que el modelo elija. Envía aspect_ratio explícitamente y usa uno de los valores listados.
output_format string predeterminado "mp4""mp4", "mov" Contenedor de salida. mov = H.264 yuv444p con audio PCM (a menudo no reproducible en navegadores). Cualquier otro valor se rechaza con 400.
generate_audio boolean predeterminado trueGenera una pista de audio nativa. Predeterminado true.
seed integer predeterminado -1Semilla aleatoria; -1 = aleatoria.

Reglas

  • duration debe ser una cadena JSON que coincida con /^-?\d+$/ y ser igual a -1 o 4-30, de lo contrario 400
  • output_format debe ser mp4 o mov (400 en caso contrario)
  • Envía siempre video_quality como 480p, 720p o 1080p ('4k' se trata como 1080p)
  • Sin parámetro model_version (nivel único)
  • El precio se puede previsualizar con POST /api/quote; /api/generate-video devuelve 402 si los créditos son insuficientes. Los créditos de generaciones fallidas se reembolsan automáticamente.
  • Los resultados en 480p suelen ser borradores: la respuesta de estado incluye entonces seedance25_draft, y el borrador se puede actualizar una vez a una versión 1080p dentro de 7 días con POST /api/video-generation/{id}/upgrade-draft.

Ejemplo de cuerpo de solicitud

{
  "mode": "seedance-2.5",
  "generation_type": "text-to-video",
  "prompt": "A lighthouse keeper climbs the spiral stairs at dusk, one continuous shot",
  "video_quality": "480p",
  "duration": "5",
  "aspect_ratio": "16:9",
  "output_format": "mp4",
  "generate_audio": true,
  "seed": -1
}

image-to-video

Anima una imagen de primer fotograma (opcionalmente a una imagen de último fotograma) en un video de 4-30s con Seedance 2.5; la relación de aspecto sigue a la imagen de entrada.

ParámetroValores y notas
prompt stringPrompt de texto (máx. 20000 caracteres). Opcional cuando se proporciona una imagen de primer fotograma.
video_quality string afecta el precio predeterminado "480p""480p", "720p", "1080p" Resolución de salida; envía siempre video_quality explícitamente. 1080p es HEVC de 10 bits (puede no reproducirse en algunos navegadores). '4k'/'4K'/'2160p' se tratan como 1080p.
duration string afecta el precio predeterminado "5"4–30 Segundos de salida como una cadena que contiene un entero simple de 4 a 30, o "-1" para que el modelo elija la duración. Cualquier otro valor (p. ej. "3", "31", "5.0", "0x10") se rechaza con 400.
aspect_ratio string predeterminado "auto""auto", "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" Se ignora para imagen a video: la relación de aspecto de salida sigue a la imagen de primer fotograma.
output_format string predeterminado "mp4""mp4", "mov" Contenedor de salida. mov = H.264 yuv444p con audio PCM (a menudo no reproducible en navegadores). Cualquier otro valor se rechaza con 400.
generate_audio boolean predeterminado trueGenera una pista de audio nativa. Predeterminado true.
seed integer predeterminado -1Semilla aleatoria; -1 = aleatoria.
image stringURL de la imagen de primer fotograma (o proporciona images[0]).
images array<string>[first_frame_url] o [first_frame_url, last_frame_url]. images[0] es el primer fotograma (anula image); cuando hay más de una entrada, el último elemento se usa como último fotograma.

Archivos de entrada

  • image: 1 URL de imagen pública usada como primer fotograma (JPEG/PNG/WEBP; máx. 30MB)
  • images: opcional [first_frame_url, last_frame_url]

Carpetas de carga para /api/storage/upload

  • image: seedance25

Reglas

  • duration debe ser una cadena JSON que coincida con /^-?\d+$/ y ser igual a -1 o 4-30, de lo contrario 400
  • output_format debe ser mp4 o mov (400 en caso contrario)
  • Envía siempre video_quality como 480p, 720p o 1080p ('4k' se trata como 1080p)
  • Sin parámetro model_version (nivel único)
  • El precio se puede previsualizar con POST /api/quote; /api/generate-video devuelve 402 si los créditos son insuficientes. Los créditos de generaciones fallidas se reembolsan automáticamente.
  • imagen a video requiere image o images (400 'Image is required for image-to-video generation')
  • aspect_ratio no tiene efecto para imagen a video; la salida sigue a la imagen de primer fotograma
  • El precio es el mismo que texto a video (las imágenes no añaden costo)
  • Los resultados en 480p suelen ser borradores: la respuesta de estado incluye entonces seedance25_draft, y el borrador se puede actualizar una vez a una versión 1080p dentro de 7 días con POST /api/video-generation/{id}/upgrade-draft.

Ejemplo de cuerpo de solicitud

{
  "mode": "seedance-2.5",
  "generation_type": "image-to-video",
  "prompt": "The camera slowly pushes in as leaves drift past",
  "image": "https://example.com/first.jpg",
  "images": [
    "https://example.com/first.jpg",
    "https://example.com/last.jpg"
  ],
  "video_quality": "720p",
  "duration": "8",
  "aspect_ratio": "auto",
  "output_format": "mp4",
  "generate_audio": true,
  "seed": -1
}

reference-to-video

Genera un video de 4-30s guiado por hasta 30 imágenes de referencia, 10 videos de referencia y 10 clips de audio de referencia (solo audio permitido) con Seedance 2.5.

ParámetroValores y notas
prompt stringPrompt de texto (máx. 20000 caracteres). Opcional cuando se proporcionan activos de referencia; puede referirse a ellos (p. ej. 'image 1', 'video 1').
video_quality string afecta el precio predeterminado "480p""480p", "720p", "1080p" Resolución de salida; envía siempre video_quality explícitamente. 1080p es HEVC de 10 bits (puede no reproducirse en algunos navegadores). '4k'/'4K'/'2160p' se tratan como 1080p.
duration string afecta el precio predeterminado "5"4–30 Segundos de salida como una cadena que contiene un entero simple de 4 a 30, o "-1" para que el modelo elija la duración. Cualquier otro valor (p. ej. "3", "31", "5.0", "0x10") se rechaza con 400.
aspect_ratio string predeterminado "16:9""auto", "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" Relación de aspecto de salida; 'auto' permite que el modelo elija. Envía aspect_ratio explícitamente y usa uno de los valores listados.
output_format string predeterminado "mp4""mp4", "mov" Contenedor de salida. mov = H.264 yuv444p con audio PCM (a menudo no reproducible en navegadores). Cualquier otro valor se rechaza con 400.
generate_audio boolean predeterminado trueGenera una pista de audio nativa. Predeterminado true.
seed integer predeterminado -1Semilla aleatoria; -1 = aleatoria.
images array<string>URLs de imágenes de referencia. Máx. 30.
videos array<string> afecta el precioURLs de videos de referencia (mp4/mov). Máx. 10, duración total <= 30s. Incluir videos de referencia cambia a la tarificación de video de referencia.
input_video_duration number afecta el precio0–30 Duración total en segundos de todos los videos de referencia (redondea la suma al segundo completo). Máx. 30; valores mayores se rechazan con 400. Envíalo igual a la duración total de los videos de referencia siempre que se envíe videos. La duración mínima facturada de entrada es 2s.
audio stringURL de audio de referencia única opcional; puede ser la misma que audios[0].
audios array<string>URLs de audio de referencia (wav/mp3). Máx. 10, duración total <= 30s. Se permite referencia solo de audio.

Archivos de entrada

  • images: 0-30 URLs de imágenes de referencia (JPEG/PNG/WEBP; máx. 30MB cada una)
  • videos: 0-10 URLs de videos de referencia (mp4/mov, máx. 50MB cada uno, total <= 30s)
  • audios: 0-10 URLs de audio de referencia (wav/mp3, máx. 15MB cada uno, total <= 30s)

Carpetas de carga para /api/storage/upload

  • image: seedance25
  • video: seedance25/reference-videos
  • audio: seedance25/audio

Reglas

  • duration debe ser una cadena JSON que coincida con /^-?\d+$/ y ser igual a -1 o 4-30, de lo contrario 400
  • output_format debe ser mp4 o mov (400 en caso contrario)
  • Envía siempre video_quality como 480p, 720p o 1080p ('4k' se trata como 1080p)
  • Sin parámetro model_version (nivel único)
  • El precio se puede previsualizar con POST /api/quote; /api/generate-video devuelve 402 si los créditos son insuficientes. Los créditos de generaciones fallidas se reembolsan automáticamente.
  • Se requiere al menos una imagen, video o audio de referencia; de lo contrario, la generación falla
  • Envía input_video_duration igual a la duración total de los videos de referencia (segundos) siempre que se envíe videos; valores > 30 se rechazan con 400
  • aspect_ratio se respeta para referencia a video
  • Sin videos de referencia (solo imágenes/audio), el precio equivale al precio de texto a video
  • Los resultados en 480p suelen ser borradores: la respuesta de estado incluye entonces seedance25_draft, y el borrador se puede actualizar una vez a una versión 1080p dentro de 7 días con POST /api/video-generation/{id}/upgrade-draft.
  • Al cotizar con /api/quote, añade has_video_input: true y input_video_duration si envías videos de referencia (el endpoint de cotización no lee las URL de video, por lo que el precio saldría demasiado bajo).

Ejemplo de cuerpo de solicitud

{
  "mode": "seedance-2.5",
  "generation_type": "reference-to-video",
  "prompt": "The product from image 1 rotates on a marble table, lit like video 1",
  "images": [
    "https://example.com/product.png"
  ],
  "videos": [
    "https://example.com/lighting.mp4"
  ],
  "input_video_duration": 8,
  "video_quality": "480p",
  "duration": "10",
  "aspect_ratio": "9:16",
  "output_format": "mp4",
  "generate_audio": true,
  "seed": -1
}

Modo Wan 2.6: wan-2-6

text-to-video

Genera un video de 5-15 segundos con audio sincronizado a partir de un prompt de texto usando Wan 2.6.

ParámetroValores y notas
prompt string · obligatorioPrompt de texto (máx. 20000 caracteres). Envía siempre un prompt no vacío.
negative_prompt stringPrompt negativo opcional (máx. 2000 caracteres). Omítelo cuando esté vacío.
duration string afecta el precio predeterminado "5""5", "10", "15" Segundos de salida, enviados como una cadena.
video_quality string afecta el precio predeterminado "720p""720p", "1080p" Resolución de salida. Usa uno de los valores listados.
seed integer predeterminado -1Semilla aleatoria; -1 = aleatoria, de lo contrario 0-2147483647.
enable_prompt_expansion boolean predeterminado truePermite que el modelo reescriba/expanda el prompt.
shot_type string predeterminado "single""single", "multi" multi = video de múltiples tomas.
aspect_ratio string predeterminado "16:9""16:9", "9:16", "1:1", "4:3", "3:4" Relación de aspecto de salida. Usa uno de los valores listados.
audio stringURL de audio de conducción/fondo opcional (mp3/ogg/wav/m4a/aac, máx. 15MB) para sincronización audiovisual.

Archivos de entrada

  • audio: opcional 1 URL de audio (mp3/ogg/wav/m4a/aac)

Carpetas de carga para /api/storage/upload

  • audio: wan26/audio

Reglas

  • duration debe ser uno de 5, 10, 15 (predeterminado 5)
  • video_quality y aspect_ratio no se validan; envía siempre uno de los valores listados

Ejemplo de cuerpo de solicitud

{
  "mode": "wan-2-6",
  "generation_type": "text-to-video",
  "prompt": "A red fox running through fresh snow at sunrise, cinematic",
  "duration": "5",
  "video_quality": "720p",
  "aspect_ratio": "16:9"
}

image-to-video

Anima una sola imagen en un video de 5-15 segundos con Wan 2.6.

ParámetroValores y notas
prompt string · obligatorioPrompt de texto (máx. 20000 caracteres). Envía siempre un prompt no vacío.
negative_prompt stringPrompt negativo opcional (máx. 2000 caracteres). Omítelo si está vacío.
image string · obligatorioURL https pública de la imagen de origen (se usa como primer fotograma).
duration string afecta al precio valor por defecto "5""5", "10", "15" Segundos de salida, enviados como cadena.
video_quality string afecta al precio valor por defecto "720p""720p", "1080p" Resolución de salida. Usa uno de los valores indicados.
seed integer valor por defecto -1Semilla aleatoria; -1 = aleatoria, si no 0-2147483647.
enable_prompt_expansion boolean valor por defecto truePermite que el modelo reescriba/expanda el prompt.
shot_type string valor por defecto "single""single", "multi" multi = vídeo de múltiples tomas.
audio stringURL opcional de audio de acompañamiento/fondo (mp3/ogg/wav/m4a/aac, máx. 15MB) para sincronización audiovisual.

Archivos de entrada

  • image: 1 URL de imagen (primer fotograma); jpg/png/webp, máx. 10MB
  • audio: 1 URL de audio opcional (mp3/ogg/wav/m4a/aac)

Carpetas de subida para /api/storage/upload

  • image: video-generator
  • audio: wan26/audio

Reglas

  • image (o images[0]) es obligatorio
  • aspect_ratio no se usa para imagen-a-vídeo; la salida sigue a la imagen
  • duration debe ser uno de 5, 10, 15

Ejemplo de cuerpo de solicitud

{
  "mode": "wan-2-6",
  "generation_type": "image-to-video",
  "prompt": "The character turns and smiles at the camera",
  "image": "https://example.com/input.jpg",
  "duration": "5",
  "video_quality": "720p"
}

reference-to-video

Genera un nuevo vídeo guiado por 1-3 vídeos de referencia (referencia de sujeto/movimiento) con Wan 2.6.

ParámetroValores y notas
prompt string · obligatorioPrompt de texto (máx. 20000 caracteres). Envía siempre un prompt no vacío.
negative_prompt stringPrompt negativo opcional (máx. 2000 caracteres). Omítelo si está vacío.
videos array<string> · obligatorio1-3 URLs de vídeos de referencia.
video stringURL opcional de un único vídeo de referencia; ya sea video o videos cumple el requisito.
duration string afecta al precio valor por defecto "5""5", "10" Segundos de salida: 5 o 10 (15 se rechaza para referencia-a-vídeo).
video_quality string afecta al precio valor por defecto "720p""720p", "1080p" Resolución de salida. Usa uno de los valores indicados.
seed integer valor por defecto -1Semilla aleatoria; -1 = aleatoria, si no 0-2147483647.
enable_prompt_expansion boolean valor por defecto truePermite que el modelo reescriba/expanda el prompt.
shot_type string valor por defecto "single""single", "multi" multi = vídeo de múltiples tomas.
aspect_ratio string valor por defecto "16:9""16:9", "9:16", "1:1", "4:3", "3:4" Relación de aspecto de salida. Usa uno de los valores indicados.

Archivos de entrada

  • videos: 1-3 URLs de vídeos de referencia (mp4/mov/mkv; máx. 10MB cada uno)

Carpetas de subida para /api/storage/upload

  • video: wan26/reference-videos

Reglas

  • Se requiere al menos un vídeo de referencia (video o videos)
  • Como máximo 3 vídeos de referencia
  • duration 15 se rechaza (solo 5 o 10)
  • La entrada de audio no es compatible con referencia-a-vídeo; no envíes audio

Ejemplo de cuerpo de solicitud

{
  "mode": "wan-2-6",
  "generation_type": "reference-to-video",
  "prompt": "The character from the reference video dances in a neon-lit street",
  "videos": [
    "https://example.com/ref.mp4"
  ],
  "duration": "5",
  "video_quality": "720p",
  "aspect_ratio": "16:9"
}

Modo Wan 2.7: wan-2.7

text-to-video

Genera un vídeo de 2-15 segundos a partir de un prompt de texto con Wan 2.7 (movimiento más suave, mejor fidelidad de escena).

ParámetroValores y notas
prompt string · obligatorioPrompt de texto (máx. 20000 caracteres). Envía siempre un prompt no vacío.
negative_prompt stringPrompt negativo opcional (máx. 2000 caracteres). Omítelo si está vacío.
duration string afecta al precio valor por defecto "5"2–15 Segundos de salida como cadena de entero.
video_quality string afecta al precio valor por defecto "720p""720p", "1080p" Resolución de salida.
aspect_ratio string valor por defecto "16:9""16:9", "9:16", "1:1", "4:3", "3:4" Relación de aspecto de salida.
enable_prompt_expansion boolean valor por defecto truePermite que el modelo expanda el prompt.
audio stringURL de audio opcional para guiar el vídeo (mp3/ogg/wav/m4a/aac, máx. 15MB).
seed integer valor por defecto -1Semilla aleatoria; -1 = aleatoria.

Archivos de entrada

  • audio: 1 URL de audio opcional (mp3/ogg/wav/m4a/aac)

Carpetas de subida para /api/storage/upload

  • audio: wan27/audio

Reglas

  • duration debe ser un entero 2-15 (valor por defecto 5)
  • video_quality, si se envía, debe ser 720p o 1080p
  • aspect_ratio, si se envía, debe ser uno de 16:9, 9:16, 1:1, 4:3, 3:4

Ejemplo de cuerpo de solicitud

{
  "mode": "wan-2.7",
  "generation_type": "text-to-video",
  "prompt": "A paper boat drifting down a rain-soaked city gutter, macro shot",
  "duration": "5",
  "video_quality": "720p",
  "aspect_ratio": "16:9"
}

image-to-video

Anima una imagen de inicio (opcionalmente hasta un fotograma final) en un vídeo de 2-15 segundos con Wan 2.7.

ParámetroValores y notas
prompt string · obligatorioPrompt de texto (máx. 20000 caracteres). Envía siempre un prompt no vacío.
negative_prompt stringPrompt negativo opcional (máx. 2000 caracteres). Omítelo si está vacío.
image stringURL de la imagen del fotograma de inicio. Obligatoria a menos que la envíes como images[0].
images array<string>Solo para modo primer/último fotograma: [start_image_url, end_image_url]; images[1] se convierte en el fotograma final.
duration string afecta al precio valor por defecto "5"2–15 Segundos de salida como cadena de entero.
video_quality string afecta al precio valor por defecto "720p""720p", "1080p" Resolución de salida.
enable_prompt_expansion boolean valor por defecto truePermite que el modelo expanda el prompt.
audio stringURL de audio opcional para guiar el vídeo (mp3/ogg/wav/m4a/aac, máx. 15MB).
seed integer valor por defecto -1Semilla aleatoria; -1 = aleatoria.

Archivos de entrada

  • image: 1 URL de imagen del fotograma de inicio (jpg/png/webp, máx. 20MB)
  • images: par opcional [inicio, fin] para interpolación primer/último fotograma
  • audio: 1 URL de audio opcional

Carpetas de subida para /api/storage/upload

  • image: video-generator-wan27
  • audio: wan27/audio

Reglas

  • image (o images[0]) es obligatorio
  • aspect_ratio no es necesario para imagen-a-vídeo (la salida sigue a la imagen); si se envía, debe ser uno de los valores indicados
  • duration debe ser un entero 2-15

Ejemplo de cuerpo de solicitud

{
  "mode": "wan-2.7",
  "generation_type": "image-to-video",
  "prompt": "Gentle wind moves the hair, camera slowly pushes in",
  "image": "https://example.com/start.jpg",
  "duration": "5",
  "video_quality": "720p"
}

reference-to-video

Genera un vídeo guiado por hasta 3 imágenes de referencia y/o hasta 3 vídeos de referencia con Wan 2.7.

ParámetroValores y notas
prompt string · obligatorioPrompt de texto (máx. 20000 caracteres). Envía siempre un prompt no vacío.
negative_prompt stringPrompt negativo opcional (máx. 2000 caracteres). Omítelo si está vacío.
images array<string>0-3 URLs de imágenes de referencia.
videos array<string>0-3 URLs de vídeos de referencia.
video stringURL opcional de un único vídeo de referencia; puede ser el mismo que videos[0].
duration string afecta al precio valor por defecto "5"2–15 Segundos de salida como cadena de entero.
video_quality string afecta al precio valor por defecto "720p""720p", "1080p" Resolución de salida; 720p si se omite.
aspect_ratio string valor por defecto "16:9""16:9", "9:16", "1:1", "4:3", "3:4" Relación de aspecto de salida.
shot_type string valor por defecto "single""single", "multi" Salida de una o múltiples tomas.
seed integer valor por defecto -1Semilla aleatoria; -1 = aleatoria (valores >= 0 fijan la semilla).

Archivos de entrada

  • images: 0-3 URLs de imágenes de referencia (jpg/png/webp, máx. 20MB)
  • videos: 0-3 URLs de vídeos de referencia (mp4/mov, máx. 100MB cada uno)

Carpetas de subida para /api/storage/upload

  • image: video-generator-wan27
  • video: wan27/reference-videos

Reglas

  • Se requiere al menos una imagen o vídeo de referencia
  • Como máximo 3 imágenes de referencia y como máximo 3 vídeos de referencia
  • duration debe ser un entero 2-15
  • audio y enable_prompt_expansion no son compatibles con referencia-a-vídeo

Ejemplo de cuerpo de solicitud

{
  "mode": "wan-2.7",
  "generation_type": "reference-to-video",
  "prompt": "The woman from the reference image walks through a sunflower field",
  "images": [
    "https://example.com/ref.jpg"
  ],
  "duration": "5",
  "video_quality": "720p",
  "aspect_ratio": "16:9",
  "shot_type": "single"
}

Modo Wan 3.0: wan-3.0

text-to-video

Genera un vídeo de 2-30 segundos con audio nativo opcional a partir de un prompt de texto usando Wan 3.0.

ParámetroValores y notas
prompt string · obligatorioPrompt de texto. Obligatorio para texto-a-vídeo.
duration string afecta al precio valor por defecto "5"2–30 Segundos de salida como cadena de entero (2-30); -1 (duración inteligente) se rechaza.
video_quality string afecta al precio valor por defecto "720p""480p", "720p", "1080p" Resolución. Usa uno de los valores indicados ('4k' se trata como 1080p).
aspect_ratio string valor por defecto "16:9""adaptive", "16:9", "9:16", "1:1", "4:3", "3:4" Relación de aspecto de salida; 'adaptive' permite que el modelo elija. Envía aspect_ratio explícitamente y usa uno de los valores indicados.
generate_audio boolean valor por defecto trueGenera una banda sonora sincronizada (valor por defecto true; envía false para desactivarla). No cambia el precio.
seed integerAceptado pero actualmente no se pasa al modelo.

Reglas

  • duration debe ser un entero 2-30; -1 (duración inteligente) se rechaza
  • generate_audio no cambia el precio

Ejemplo de cuerpo de solicitud

{
  "mode": "wan-3.0",
  "generation_type": "text-to-video",
  "prompt": "A drone shot over a misty mountain lake at dawn, birds taking off",
  "duration": "5",
  "video_quality": "720p",
  "aspect_ratio": "adaptive",
  "generate_audio": true
}

image-to-video

Anima un primer fotograma (opcionalmente hasta un último fotograma) en un vídeo de 2-30 segundos con Wan 3.0.

ParámetroValores y notas
prompt stringPrompt de movimiento/escena (opcional para imagen-a-vídeo).
image stringURL de la imagen del primer fotograma. Obligatoria a menos que la envíes como images[0].
images array<string>[first_frame] o [first_frame, last_frame]; images[0] es el primer fotograma y el último elemento (cuando hay 2 o más) es el último fotograma.
duration string afecta al precio valor por defecto "5"2–30 Segundos de salida como cadena de entero (2-30); -1 (duración inteligente) se rechaza.
video_quality string afecta al precio valor por defecto "720p""480p", "720p", "1080p" Resolución. Usa uno de los valores indicados ('4k' se trata como 1080p).
aspect_ratio string valor por defecto "16:9""adaptive", "16:9", "9:16", "1:1", "4:3", "3:4" Relación de aspecto de salida; 'adaptive' permite que el modelo elija. Envía aspect_ratio explícitamente y usa uno de los valores indicados.
generate_audio boolean valor por defecto trueGenera una banda sonora sincronizada (valor por defecto true; envía false para desactivarla). No cambia el precio.
seed integerAceptado pero actualmente no se pasa al modelo.

Archivos de entrada

  • image: 1 URL de imagen del primer fotograma (jpg/png/webp/bmp/tiff, máx. 20MB)
  • images: par opcional [primero, último] de fotogramas

Carpetas de subida para /api/storage/upload

  • image: wan30

Reglas

  • image o images es obligatorio
  • files (documento) y links (página web) no se pueden combinar con imagen-a-vídeo
  • duration debe ser un entero 2-30; -1 se rechaza

Ejemplo de cuerpo de solicitud

{
  "mode": "wan-3.0",
  "generation_type": "image-to-video",
  "prompt": "The cat slowly opens its eyes and yawns",
  "image": "https://example.com/first.jpg",
  "images": [
    "https://example.com/first.jpg"
  ],
  "duration": "5",
  "video_quality": "720p",
  "aspect_ratio": "adaptive",
  "generate_audio": true
}

reference-to-video

Genera un vídeo de 2-30 segundos a partir de cualquier combinación de imágenes de referencia, vídeos, audio, un documento (documento-a-vídeo) o una página web (página web-a-vídeo) con Wan 3.0.

ParámetroValores y notas
prompt stringInstrucción que describe cómo usar las referencias (p. ej., referirse a 'Imagen 1', 'Video 1').
images array<string>0-10 URL de imágenes de referencia.
videos array<string>0-5 URL de videos de referencia, duración total <= 15s. Pasa siempre los videos de referencia en videos (plural), junto con input_video_duration.
input_video_duration number afecta el precio0–15 Segundos totales de todos los videos de referencia (redondea la suma al segundo completo; máx. 15). Envíalo igual a la duración total de los videos de referencia siempre que se envíe videos.
audios array<string>0-5 URL de audio de referencia (wav/mp3), total <= 15s.
audio stringURL de un único audio de referencia; se usa solo cuando audios está ausente.
files array<string>Documento a video: como máximo 1 URL de documento (.doc.docx.xls.xlsx.ppt.pptx.pdf.txt.md.key.pages.numbers; <=100MB, <=50 páginas). Mutuamente excluyente con links.
links array<string>Página web a video: como máximo 1 URL de página web pública. Mutuamente excluyente con files.
duration string afecta el precio predeterminado "5"2–30 Segundos de salida como cadena entera (2-30); -1 (duración inteligente) se rechaza.
video_quality string afecta el precio predeterminado "720p""480p", "720p", "1080p" Resolución. Usa uno de los valores listados ('4k' se trata como 1080p).
aspect_ratio string predeterminado "16:9""adaptive", "16:9", "9:16", "1:1", "4:3", "3:4" Relación de aspecto de salida; 'adaptive' permite que el modelo elija. Envía aspect_ratio explícitamente y usa uno de los valores listados.
generate_audio boolean predeterminado trueGenera una banda sonora sincronizada (predeterminado true; envía false para desactivarla). No cambia el precio.
seed integerAceptado pero actualmente no se pasa al modelo.

Archivos de entrada

  • images: 0-10 URL de imágenes (jpg/png/webp/bmp/tiff, máx. 20MB cada una)
  • videos: 0-5 URL de videos (mp4/mov, máx. 100MB cada uno), combinados <= 15s
  • audio: 0-5 URL de audio mediante audios (wav/mp3, máx. 15MB cada uno), combinados <= 15s
  • files: 0-1 URL de documento (100MB, máx. 50 páginas)
  • links: 0-1 URL de página web

Carpetas de carga para /api/storage/upload

  • imagen: wan30
  • video: wan30/reference-videos
  • audio: wan30/audio
  • documento: wan30/documents

Reglas

  • Como máximo 10 imágenes, 5 videos, 5 audios, 1 archivo, 1 enlace (exceder devuelve 400, nunca se trunca)
  • files y links no pueden enviarse juntos
  • Proporciona al menos una imagen, video, audio, documento o página web de referencia
  • input_video_duration debe ser <= 15, y input_video_duration + duration debe ser <= 30 (400 en caso contrario)
  • Pasa siempre los videos de referencia en videos (plural) y envía input_video_duration igual a su duración total (segundos)
  • duration debe ser un entero 2-30; -1 se rechaza
  • Al cotizar con /api/quote, añade has_video_input: true y input_video_duration si envías videos de referencia (el endpoint de cotización no lee URL de videos, por lo que el precio saldría demasiado bajo).

Ejemplo de cuerpo de solicitud

{
  "mode": "wan-3.0",
  "generation_type": "reference-to-video",
  "prompt": "Turn this product page into a 10 second promo video",
  "links": [
    "https://example.com/product"
  ],
  "duration": "10",
  "video_quality": "720p",
  "aspect_ratio": "16:9",
  "generate_audio": true
}

Modo MiniMax H3: minimax-h3

text-to-video

Genera un video de 4-15 segundos a partir de un prompt de texto con MiniMax H3 (Hailuo 03) a 768P o 2K.

ParámetroValores y notas
prompt string · obligatorioPrompt de texto (máx. 20000 caracteres). Envía siempre un prompt no vacío.
duration string afecta el precio predeterminado "5"4–15 Segundos de salida como cadena entera.
video_quality string afecta el precio predeterminado "768p""768p", "2k" Resolución. '2K', '1440p', '2160p' se tratan como 2k. Usa uno de los valores listados.
aspect_ratio string predeterminado "16:9""21:9", "16:9", "4:3", "1:1", "3:4", "9:16" Relación de aspecto de salida. 'adaptive' no es compatible para texto a video; usa uno de los valores listados.

Reglas

  • duration debe ser un entero entre 4 y 15 (400 en caso contrario); se envía como cadena
  • Seed, prompt negativo y opciones de audio no son compatibles con este modelo

Ejemplo de cuerpo de solicitud

{
  "mode": "minimax-h3",
  "generation_type": "text-to-video",
  "prompt": "A red fox running through fresh snow at sunrise, cinematic tracking shot",
  "duration": "5",
  "aspect_ratio": "16:9",
  "video_quality": "768p"
}

image-to-video

Anima una imagen de primer fotograma (opcionalmente hacia un último fotograma) en un video MiniMax H3 de 4-15 segundos a 768P o 2K.

ParámetroValores y notas
prompt string · obligatorioPrompt de texto que describe el movimiento. Envía siempre un prompt no vacío.
duration string afecta el precio predeterminado "5"4–15 Segundos de salida como cadena entera.
video_quality string afecta el precio predeterminado "768p""768p", "2k"
image stringURL de la imagen del primer fotograma. Debe estar presente image o images[0].
images string[] afecta el precio[primer_fotograma] o [primer_fotograma, último_fotograma]. images[0] es el primer fotograma; con 2 o más entradas, el ÚLTIMO elemento se usa como último fotograma. Máx. 9.
aspect_ratio string predeterminado "adaptive""adaptive", "21:9", "16:9", "4:3", "1:1", "3:4", "9:16" Se ignora para imagen a video; la salida sigue el primer fotograma.

Archivos de entrada

  • image: 1 URL de imagen pública usada como primer fotograma (jpg/png/webp, máx. 20MB)
  • images: Matriz opcional [url_primer_fotograma, url_último_fotograma]; solo se usan la primera y la última entrada

Carpetas de carga para /api/storage/upload

  • imagen: minimax-h3

Reglas

  • imagen a video requiere image o una matriz images no vacía (400 'Image is required for image-to-video generation')
  • duration debe ser un entero 4-15
  • Como máximo 9 imágenes
  • El último fotograma se toma del último elemento de images solo cuando images tiene 2 o más entradas
  • Solo se usan la primera y la última imagen, pero cada imagen después de la 5.ª se cobra: envía como máximo 2. Al cotizar con /api/quote, envía input_image_count.

Ejemplo de cuerpo de solicitud

{
  "mode": "minimax-h3",
  "generation_type": "image-to-video",
  "prompt": "The woman turns toward the camera and smiles as wind moves her hair",
  "duration": "5",
  "aspect_ratio": "adaptive",
  "video_quality": "768p",
  "image": "https://example.com/first-frame.jpg",
  "images": [
    "https://example.com/first-frame.jpg"
  ]
}

reference-to-video

Genera un video MiniMax H3 guiado por hasta 9 imágenes de referencia, 3 videos de referencia y 3 clips de audio de referencia.

ParámetroValores y notas
prompt string · obligatorioPrompt de texto; puede referirse a los recursos de referencia. Envía siempre un prompt no vacío.
duration string afecta el precio predeterminado "5"4–15 Segundos de salida como cadena entera.
video_quality string afecta el precio predeterminado "768p""768p", "2k"
aspect_ratio string predeterminado "16:9""adaptive", "21:9", "16:9", "4:3", "1:1", "3:4", "9:16" 'adaptive' permite que el modelo elija a partir de las referencias. Usa uno de los valores listados.
images string[] afecta el precioURL de imágenes de referencia, máx. 9.
videos string[] afecta el precioURL de videos de referencia, máx. 3, duración total <= 15s. El singular 'video' se acepta como alternativa cuando 'videos' está ausente.
input_video_duration number afecta el precio0–15 Segundos totales de los videos de referencia (máx. 15). Envíalo igual a la duración total de los videos de referencia siempre que se envíen videos.
audios string[]URL de audio de referencia, máx. 3 (gratis).
audio stringAudio de referencia singular; se usa solo si 'audios' está ausente.

Archivos de entrada

  • images: 0-9 URL de imágenes de referencia (jpg/png/webp/bmp/tiff, 20MB cada una)
  • video: 0-3 URL de videos de referencia mediante 'videos' (mp4/mov, 100MB cada uno, total <= 15s)
  • audio: 0-3 URL de audio de referencia mediante 'audios' (wav/mp3, 15MB cada uno); no puede ser la única referencia

Carpetas de carga para /api/storage/upload

  • imagen: minimax-h3
  • video: minimax-h3/reference-videos
  • audio: minimax-h3/audio

Reglas

  • Como máximo 9 imágenes de referencia, 3 videos de referencia, 3 archivos de audio de referencia (400 si se excede, sin truncamiento silencioso)
  • Se requiere al menos una imagen o video de referencia; el audio de referencia no puede usarse solo
  • input_video_duration debe ser <= 15 segundos en total
  • Envía input_video_duration igual a la duración total de los videos de referencia (segundos) siempre que se envíen videos
  • duration debe ser un entero 4-15
  • Al cotizar con /api/quote, añade has_video_input: true y input_video_duration si envías videos de referencia (el endpoint de cotización no lee URL de videos, por lo que el precio saldría demasiado bajo). También envía input_image_count (número de imágenes de referencia).

Ejemplo de cuerpo de solicitud

{
  "mode": "minimax-h3",
  "generation_type": "reference-to-video",
  "prompt": "The character from image 1 walks into the room from video 1 and waves",
  "duration": "5",
  "aspect_ratio": "adaptive",
  "video_quality": "768p",
  "images": [
    "https://example.com/character.png"
  ],
  "videos": [
    "https://example.com/room.mp4"
  ],
  "input_video_duration": 6
}

Modo MiniMax H3 Max: minimax-h3-max

text-to-video

Texto a video MiniMax H3 Max rápido (turbo), 5-15 segundos a 480P/768P/1080P.

ParámetroValores y notas
prompt string · obligatorioPrompt de texto. Obligatorio; envía siempre un prompt no vacío.
duration string afecta el precio predeterminado "5"5–15 Segundos de salida como cadena entera.
video_quality string afecta el precio predeterminado "768p""480p", "768p", "1080p" Usa uno de los valores listados (2k no es compatible).
aspect_ratio string predeterminado "16:9""21:9", "16:9", "4:3", "1:1", "3:4", "9:16" 'adaptive' no es compatible para texto a video. Usa uno de los valores listados.
prompt_expansion_mode string predeterminado "balanced""disabled", "fast", "balanced", "quality" Fuerza de reescritura del prompt. Los valores fuera de la lista se rechazan con 400.
seed integerOpcional; un valor >= 0 fija la semilla aleatoria.

Reglas

  • generation_type debe ser text-to-video, image-to-video o reference-to-video para este modo (400 en caso contrario)
  • duration debe ser un entero entre 5 y 15

Ejemplo de cuerpo de solicitud

{
  "mode": "minimax-h3-max",
  "generation_type": "text-to-video",
  "prompt": "A paper boat drifting down a rainy city gutter, macro shot",
  "duration": "5",
  "aspect_ratio": "16:9",
  "video_quality": "768p",
  "prompt_expansion_mode": "balanced"
}

image-to-video

Imagen a video MiniMax H3 Max rápido desde un primer fotograma (fotograma final opcional), 5-15 segundos.

ParámetroValores y notas
prompt string · obligatorioPrompt de movimiento. Obligatorio; envía siempre un prompt no vacío.
duration string afecta el precio predeterminado "5"5–15 Segundos de salida como cadena entera.
video_quality string afecta el precio predeterminado "768p""480p", "768p", "1080p"
image stringURL del primer fotograma (se requiere image o images[0]).
images string[][primer_fotograma] o [primer_fotograma, fotograma_final]. Con 2 o más entradas, la última se usa como fotograma final.
aspect_ratio string predeterminado "16:9""21:9", "16:9", "4:3", "1:1", "3:4", "9:16" Se ignora para imagen a video; la salida sigue el primer fotograma.
prompt_expansion_mode string predeterminado "balanced""disabled", "fast", "balanced", "quality" Fuerza de reescritura del prompt.
seed integerOpcional; un valor >= 0 fija la semilla aleatoria.

Archivos de entrada

  • image: 1 URL de imagen pública usada como primer fotograma
  • images: Opcional [url_primer_fotograma, url_fotograma_final]

Carpetas de carga para /api/storage/upload

  • imagen: minimax-h3-max

Reglas

  • imagen a video requiere un primer fotograma (image o images[0]); 400 en caso contrario
  • duration debe ser un entero 5-15

Ejemplo de cuerpo de solicitud

{
  "mode": "minimax-h3-max",
  "generation_type": "image-to-video",
  "prompt": "The camera slowly pushes in as the dog tilts its head",
  "duration": "5",
  "aspect_ratio": "16:9",
  "video_quality": "768p",
  "prompt_expansion_mode": "balanced",
  "image": "https://example.com/dog.jpg",
  "images": [
    "https://example.com/dog.jpg"
  ]
}

reference-to-video

Video MiniMax H3 Max rápido guiado por imágenes, videos y audio de referencia (hasta 12 archivos en total).

ParámetroValores y notas
prompt string · obligatorioPrompt de texto. Obligatorio; envía siempre un prompt no vacío.
duration string afecta el precio predeterminado "5"5–15 Segundos de salida como cadena entera.
video_quality string afecta el precio predeterminado "768p""480p", "768p", "1080p"
aspect_ratio string predeterminado "16:9""adaptive", "21:9", "16:9", "4:3", "1:1", "3:4", "9:16" 'adaptive' está disponible solo para referencia a video. Usa uno de los valores listados.
prompt_expansion_mode string predeterminado "balanced""disabled", "fast", "balanced", "quality" Fuerza de reescritura del prompt.
images string[] afecta el precioURL de imágenes de referencia, máx. 9. Redimensiona las imágenes para que el borde largo sea <= 1024 px.
videos string[] afecta el precioURL de videos de referencia, máx. 3, cada uno de 2-15s, total <= 15s. El singular 'video' se acepta como alternativa.
audios string[] afecta el precioURL de audio de referencia, máx. 3, cada uno de 2-15s, total <= 15s. El singular 'audio' se acepta como alternativa.
input_video_duration number afecta el precio0–15 Segundos totales de video de referencia (máx. 15). Envíalo igual a la duración total de los videos de referencia siempre que se envíen videos.
input_audio_duration number afecta el precio0–15 Segundos totales de audio de referencia (máx. 15). Envíalo igual a la duración total de los audios de referencia siempre que se envíen audios.
seed integerOpcional; un valor >= 0 fija la semilla aleatoria.
Input files
  • images: 0-9 URL de imágenes de referencia (jpg/png/webp, 20MB, borde largo <= 1024 px)
  • video: 0-3 URL de videos de referencia mediante 'videos' (mp4/mov, 100MB cada uno, 2-15s cada uno, total <= 15s)
  • audio: 0-3 URL de audio de referencia mediante 'audios' (wav/mp3, 15MB cada uno, 2-15s cada uno, total <= 15s); no puede ser la única referencia

Carpetas de subida para /api/storage/upload

  • imagen: minimax-h3-max
  • video: minimax-h3-max/reference-videos
  • audio: minimax-h3-max/audio

Reglas

  • Se requiere al menos una imagen, video o audio de referencia
  • El audio de referencia no puede usarse solo; añade al menos una imagen o video
  • Máximo 9 imágenes, 3 videos, 3 archivos de audio y máximo 12 archivos en total
  • Los videos de referencia y el audio de referencia deben totalizar <= 15s cada uno (dos límites separados); cada clip debe tener al menos 2s
  • Envía input_video_duration / input_audio_duration igual a la duración total del video / audio de referencia (segundos)
  • duration debe ser un entero 5-15
  • Redimensiona las imágenes de referencia para que el borde largo sea <= 1024 px
  • Al cotizar con /api/quote, describe las referencias con input_image_count, has_video_input + input_video_count + input_video_duration, y has_audio_input + input_audio_count + input_audio_duration (el endpoint de cotización no lee URL de video, por lo que el precio saldría demasiado bajo).

Ejemplo de cuerpo de solicitud

{
  "mode": "minimax-h3-max",
  "generation_type": "reference-to-video",
  "prompt": "The product from image 1 rotates on a marble table, soft studio light",
  "duration": "5",
  "aspect_ratio": "adaptive",
  "video_quality": "768p",
  "prompt_expansion_mode": "balanced",
  "images": [
    "https://example.com/product.jpg"
  ]
}

Modo MiniMax H3 Max Camera Controls: minimax-h3-max-camera

camera-controls

Convierte una sola imagen en un video de 5-15 segundos con un movimiento de cámara guionizado (órbita, dolly, grúa, etc.) usando MiniMax H3 Max.

ParámetroValores y notas
image stringURL de la imagen fuente (image o images[0]). La relación de aspecto de salida sigue a la imagen.
images string[]Opcional; si se envía, debe contener como máximo 1 entrada (la imagen fuente). Sin fotograma final.
camera_preset string default "orbit-360""orbit-360", "birds-eye", "whip-spin", "hero-reveal", "dolly-in", "dolly-out", "arc-left", "arc-right", "worms-eye" Trayectoria nombrada. Los nombres desconocidos se rechazan (400). Se ignora cuando se proporciona camera_trajectory. Por defecto es orbit-360 cuando ambos se omiten.
camera_trajectory arrayFotogramas clave explícitos. Matriz de 2-12 objetos {time: number 0..1 estrictamente creciente, azimuth: grados (con signo, se permiten múltiples vueltas), elevation: number -90..90, distance: number > 0}. Recorrido total |azimuth| <= 11520 grados (32 vueltas). Tiene prioridad sobre camera_preset.
prompt stringOpcional. Si está vacío, se usa la instrucción predeterminada 'The entire scene is frozen. Only the camera moves.'
duration string afecta el precio default "5"5–15 Segundos de salida como cadena entera.
video_quality string afecta el precio default "768p""480p", "768p", "1080p" Usa uno de los valores listados.
prompt_expansion_mode string default "balanced""disabled", "fast", "balanced", "quality" Fuerza de reescritura del prompt.
seed integerEntero no negativo opcional para resultados reproducibles; omítelo para aleatorio.

Input files

  • image: Exactamente 1 URL de imagen pública (imagen fuente / primer fotograma); sin fotograma final, sin videos o audio de referencia

Carpetas de subida para /api/storage/upload

  • imagen: minimax-h3-max

Reglas

  • generation_type debe ser 'camera-controls' (image-to-video se rechaza con 400)
  • Se requiere una imagen fuente; más de 1 imagen, cualquier video o cualquier audio se rechaza con 400
  • duration debe ser un entero 5-15
  • camera_preset debe ser uno de los 9 ids de preset a menos que se proporcione camera_trajectory
  • camera_trajectory: 2-12 fotogramas clave, time en [0,1] estrictamente creciente, elevation en [-90,90], distance > 0, recorrido total de azimuth <= 11520 grados
  • aspect_ratio no tiene efecto (la salida sigue a la imagen fuente)

Ejemplo de cuerpo de solicitud

{
  "mode": "minimax-h3-max-camera",
  "generation_type": "camera-controls",
  "prompt": "",
  "duration": "5",
  "video_quality": "768p",
  "prompt_expansion_mode": "balanced",
  "image": "https://example.com/statue.jpg",
  "images": [
    "https://example.com/statue.jpg"
  ],
  "camera_preset": "orbit-360"
}

Modo MiniMax H3 Max Lip Sync: minimax-h3-max-lip-sync

lip-sync

Hace que una foto de retrato hable en sincronía con una pista de audio (5-14.8s) usando MiniMax H3 Max; la duración de salida sigue al audio.

ParámetroValores y notas
image stringURL de la imagen de retrato (image o images[0]). La relación de aspecto de la imagen (ancho/alto) debe estar entre 0.4 y 2.5.
images string[]Opcional; si se envía, debe contener como máximo 1 entrada (la imagen de retrato).
audios string[] · requeridoExactamente 1 URL de audio conductor. El singular audio se acepta como respaldo si audios está ausente.
input_audio_duration number afecta el precio5–3600 Duración del audio en segundos. Envíalo siempre, igual a la duración del audio. Segundos facturados = ceil(min(input_audio_duration, 14.8)), mínimo 5. Los valores < 5 se rechazan.
video_quality string afecta el precio default "768p""480p", "768p", "1080p", "2k" Usa uno de los valores listados.
enable_transcription boolean default trueTranscribe el audio para guiar las formas de la boca. Por defecto es true.
seed integerEntero no negativo opcional para resultados reproducibles; omítelo para aleatorio.

Input files

  • image: 1 URL de imagen de retrato pública (relación de aspecto 0.4-2.5)
  • audio: 1 URL de audio público mediante 'audios' (wav/mp3/m4a/aac, hasta 15MB); al menos 5s; el audio de más de 14.8s se recorta a los primeros 14.8s

Carpetas de subida para /api/storage/upload

  • imagen: minimax-h3-max
  • audio: minimax-h3-max/audio

Reglas

  • generation_type debe ser 'lip-sync' (400 de lo contrario)
  • Requiere una imagen de retrato y una pista de audio; más de 1 imagen, más de 1 audio o cualquier entrada de video se rechaza (400)
  • La relación de aspecto de la imagen de retrato (ancho/alto) debe estar entre 0.4 y 2.5
  • Envía input_audio_duration igual a la duración del audio; debe ser al menos 5s (400). Se permite audio de más de 14.8s y se recorta
  • prompt, duration, aspect_ratio y prompt_expansion_mode no tienen efecto para este modo
  • No se puede re-sincronizar un video existente; solo lip sync de imagen a video
  • Si el audio resulta más largo que el input_audio_duration declarado, la diferencia se cobra después de la generación.

Ejemplo de cuerpo de solicitud

{
  "mode": "minimax-h3-max-lip-sync",
  "generation_type": "lip-sync",
  "image": "https://example.com/portrait.jpg",
  "images": [
    "https://example.com/portrait.jpg"
  ],
  "audios": [
    "https://example.com/speech.mp3"
  ],
  "input_audio_duration": 8.4,
  "video_quality": "768p",
  "enable_transcription": true
}

Modo Gemini Omni: gemini-omni

text-to-video

Google Gemini Omni text-to-video con audio nativo, 4-10s, opcionalmente guiado por un video de referencia.

ParámetroValores y notas
prompt string · requeridoPrompt de texto (requerido, no vacío), máximo 20000 caracteres.
duration string afecta el precio default "8""4", "6", "8", "10" Segundos. Se ignora (y no se factura) cuando se proporciona un video; la duración de salida entonces sigue al clip de video de entrada (máximo 10s).
video_quality string afecta el precio default "1080p""720p", "1080p", "4k" Resolución de salida. El campo resolution con los mismos valores también se acepta y tiene prioridad.
aspect_ratio string default "16:9""16:9", "9:16" Solo horizontal o vertical.
videos string[] afecta el precioOpcional, como máximo 1 URL de video usado como referencia de movimiento/estilo.
input_video_duration number0–30 Duración del video de entrada proporcionado en segundos. Envíalo siempre que se proporcione un video; la salida cubre los primeros min(input_video_duration, 10) segundos.
seed integer0–2147483647 Opcional, 0-2147483647; omítelo para aleatorio.

Input files

  • videos: opcional, máximo 1 URL de video (mp4/mov, hasta 100MB; el video de entrada debe ser <= 30s)

Carpetas de subida para /api/storage/upload

  • video: gemini-omni/reference-videos

Reglas

  • duration debe ser uno de 4, 6, 8, 10 (si se omite, por defecto es 8)
  • video_quality (si se envía) debe ser 720p, 1080p o 4k; aspect_ratio (si se envía) debe ser 16:9 o 9:16
  • como máximo 1 video; cuota de activos imágenes + 2*videos <= 7
  • input_video_duration debe ser <= 30s
  • prompt es requerido, máximo 20000 caracteres
  • Al cotizar con /api/quote, añade has_video_input: true y input_video_duration si envías un video (el endpoint de cotización no lee URL de video, por lo que el precio saldría demasiado bajo).

Ejemplo de cuerpo de solicitud

{
  "mode": "gemini-omni",
  "generation_type": "text-to-video",
  "prompt": "A golden retriever surfing a wave at sunset, cinematic, with ocean sounds",
  "duration": "8",
  "video_quality": "1080p",
  "aspect_ratio": "16:9"
}

image-to-video

Google Gemini Omni image-to-video: anima hasta 7 imágenes de entrada en un video de 4-10s con audio nativo.

ParámetroValores y notas
prompt string · requeridoPrompt de texto, máximo 20000 caracteres.
images string[] · requerido1-7 URL de imágenes. También se acepta un solo campo image.
duration string afecta el precio default "8""4", "6", "8", "10" Segundos. Se ignora y no se factura cuando se proporciona un video.
video_quality string afecta el precio default "1080p""720p", "1080p", "4k" Resolución de salida; resolution también se acepta y tiene prioridad.
aspect_ratio string default "16:9""16:9", "9:16"
videos string[] afecta el precioOpcional, como máximo 1 URL de video.
input_video_duration number0–30 Duración del video de entrada en segundos. Envíalo siempre que se proporcione un video; la salida cubre los primeros min(input_video_duration, 10) segundos.
seed integer0–2147483647

Input files

  • images: 1-7 URL de imágenes (hasta 20MB cada una)
  • videos: opcional, máximo 1 URL de video (mp4/mov, <= 30s, hasta 100MB)

Carpetas de subida para /api/storage/upload

  • imagen: gemini-omni
  • video: gemini-omni/reference-videos

Reglas

  • image-to-video requiere image o un images no vacío
  • máximo 7 imágenes y máximo 1 video; imágenes + 2*videos <= 7 (por lo tanto, con un video, como máximo 5 imágenes)
  • video_quality debe ser 720p, 1080p o 4k; aspect_ratio debe ser 16:9 o 9:16
  • input_video_duration debe ser <= 30s
  • misma tabla de precios que text-to-video
  • duration debe ser 4, 6, 8 o 10, también cuando se proporciona un video (entonces se ignora).
  • Al cotizar con /api/quote, añade has_video_input: true y input_video_duration si envías un video (el endpoint de cotización no lee URL de video, por lo que el precio saldría demasiado bajo).

Ejemplo de cuerpo de solicitud

{
  "mode": "gemini-omni",
  "generation_type": "image-to-video",
  "prompt": "The woman in the photo turns toward the camera and smiles as wind moves her hair",
  "images": [
    "https://example.com/portrait.jpg"
  ],
  "duration": "6",
  "video_quality": "1080p",
  "aspect_ratio": "9:16"
}

reference-to-video

Google Gemini Omni reference-to-video: genera un video guiado por hasta 7 imágenes de referencia y/o 1 video de referencia.

ParámetroValores y notas
prompt string · requeridoPrompt de texto, máximo 20000 caracteres.
images string[]0-7 URL de imágenes de referencia. Se requiere al menos una imagen o un video.
videos string[] afecta el precio0-1 URL de video de referencia.
input_video_duration number0–30 Duración del video de referencia en segundos; duración de salida = min(this, 10). Envíalo siempre que se proporcione un video.
duration string afecta el precio default "8""4", "6", "8", "10" Solo se usa/factura cuando no se proporciona un video.
video_quality string afecta el precio default "1080p""720p", "1080p", "4k"
aspect_ratio string default "16:9""16:9", "9:16"
seed integer0–2147483647

Input files

  • images: 0-7 URL de imágenes de referencia (hasta 20MB cada una)
  • videos: 0-1 URL de video de referencia (mp4/mov, <= 30s; solo se usan los primeros 10s)

Carpetas de subida para /api/storage/upload

  • imagen: gemini-omni
  • video: gemini-omni/reference-videos

Reglas

  • se requiere al menos una imagen o video de referencia
  • cuota de referencia: imágenes <= 7, videos <= 1, imágenes + 2*videos <= 7
  • input_video_duration debe ser <= 30s
  • misma tabla de precios que text-to-video
  • duration debe ser 4, 6, 8 o 10, también cuando se proporciona un video (entonces se ignora).
  • Al cotizar con /api/quote, añade has_video_input: true y input_video_duration si envías un video de referencia (el endpoint de cotización no lee URL de video, por lo que el precio saldría demasiado bajo).

Ejemplo de cuerpo de solicitud

{
  "mode": "gemini-omni",
  "generation_type": "reference-to-video",
  "prompt": "The character from the reference images walks through a neon-lit Tokyo street at night",
  "images": [
    "https://example.com/character-front.png",
    "https://example.com/character-side.png"
  ],
  "duration": "8",
  "video_quality": "1080p",
  "aspect_ratio": "16:9"
}

Modo Boreal: creatify-boreal

text-to-video

Creatify Boreal text-to-video para anuncios, UGC y clips de presentador con habla sincronizada nativa, 1-20s, opcionalmente impulsado por una pista de audio subida.

ParámetroValores y notas
prompt string · obligatorioPrompt; opcionalmente puede estructurarse con encabezados de sección [VISUAL], [SPEECH], [SOUNDS], [TEXT] (diálogo entre comillas).
duration string afecta el precio predeterminado "10"1–20 Segundos enteros.
video_quality string afecta el precio predeterminado "720p""720p", "1080p", "2k" Resolución de salida ('2K' en mayúsculas también se acepta).
aspect_ratio string predeterminado "auto""auto", "16:9", "9:16", "1:1", "4:3", "3:4"
audio stringURL de audio opcional para guiar; si se proporciona, se conserva la pista de audio y el modelo sincroniza los labios con ella en lugar de generar voz.

Archivos de entrada

  • audio: opcional, 1 URL de audio (.mp3/.ogg/.wav/.m4a/.aac)

Carpetas de carga para /api/storage/upload

  • audio: creatify-boreal/audio

Reglas

  • generation_type debe ser text-to-video o image-to-video
  • duration debe ser un entero entre 1 y 20 (si se omite, el valor predeterminado es 10)
  • video_quality debe ser 720p, 1080p, 2k o 2K; aspect_ratio debe ser auto, 16:9, 9:16, 1:1, 4:3 o 3:4
  • prompt es obligatorio

Ejemplo de cuerpo de solicitud

{
  "mode": "creatify-boreal",
  "generation_type": "text-to-video",
  "prompt": "[VISUAL]\nA young woman holds a can of sparkling water in a sunny kitchen and talks to the camera.\n\n[SPEECH]\n\"This is the only drink I grab after my workout.\"",
  "duration": "10",
  "video_quality": "720p",
  "aspect_ratio": "9:16"
}

image-to-video

Creatify Boreal image-to-video: convierte una imagen de producto o presentador en un clip publicitario/UGC con voz sincronizada de forma nativa, opcionalmente guiada por audio.

ParámetroValores y notas
prompt string · obligatorioPrompt; secciones opcionales [VISUAL]/[SPEECH]/[SOUNDS]/[TEXT].
image string · obligatorio1 URL de imagen utilizada como imagen inicial (images[0] también se acepta).
duration string afecta el precio predeterminado "10"1–20 Segundos enteros.
video_quality string afecta el precio predeterminado "720p""720p", "1080p", "2k"
aspect_ratio string predeterminado "auto""auto", "16:9", "9:16", "1:1", "4:3", "3:4" 'auto' sigue la imagen de entrada.
audio stringURL de audio opcional para guiar; el modelo sincroniza los labios con ella en lugar de generar voz.

Archivos de entrada

  • image: 1 URL de imagen
  • audio: opcional, 1 URL de audio (.mp3/.ogg/.wav/.m4a/.aac)

Carpetas de carga para /api/storage/upload

  • image: creatify-boreal
  • audio: creatify-boreal/audio

Reglas

  • image-to-video requiere image o images no vacío
  • duration entero 1-20; video_quality 720p/1080p/2k/2K; aspect_ratio auto/16:9/9:16/1:1/4:3/3:4

Ejemplo de cuerpo de solicitud

{
  "mode": "creatify-boreal",
  "generation_type": "image-to-video",
  "prompt": "[VISUAL]\nThe presenter picks up the product and shows it to the camera.\n\n[SPEECH]\n\"Meet the lightest headphones we've ever made.\"",
  "image": "https://example.com/presenter.jpg",
  "duration": "8",
  "video_quality": "1080p",
  "aspect_ratio": "auto"
}

Modelos de imagen

Generación de texto a imagen y edición de imágenes (image-to-image).

Modelomodegeneration_type
Google Nano Banananano-bananatext-to-image
Google Nano Banana (Edit)nano-banana-editimage-to-image
Google Nano Banana 2.1nano-banana-2-1text-to-image, image-to-image
Google Nano Banana 2nano-banana-2text-to-image, image-to-image
Flux Kontextflux-kontexttext-to-image, image-to-image
Krea 3krea-3text-to-image, image-to-image
FLUX 3 Imageflux-3-imagetext-to-image, image-to-image
Seedream 5.0seedream-5.0-litetext-to-image, image-to-image
Seedream 5.0 Proseedream-5.0-protext-to-image, image-to-image
Seedream 5.0 Flashseedream-5.0-flashtext-to-image, image-to-image
Ideogram 4.5ideogram-4-5text-to-image, image-to-image
GPT Image 2gpt-image-2text-to-image, image-to-image
GPT Image 2.5gpt-image-2-5text-to-image, image-to-image
Qwen Image 2.1qwen-image-2-1text-to-image, image-to-image
Virtual Try-Onvirtual-try-onimage-to-image
Product Holdingproduct-holdingimage-to-image

Modo Google Nano Banana: nano-banana

text-to-image

Genera una imagen a partir de texto con Google Nano Banana (o Nano Banana Pro mediante modelVersion).

ParámetroValores y notas
prompt string · obligatorioPrompt de texto, hasta 20000 caracteres.
modelVersion string afecta el precio predeterminado "nano-banana""nano-banana", "nano-banana-pro" nano-banana = modelo base; nano-banana-pro = Nano Banana Pro.
video_quality string afecta el precio predeterminado "standard""standard", "1K", "2K", "4K" Envía 'standard' con nano-banana; con nano-banana-pro, envía la resolución de salida 1K, 2K o 4K.
aspect_ratio string predeterminado "16:9""auto", "1:1", "9:16", "16:9", "3:4", "4:3", "3:2", "2:3", "5:4", "4:5", "21:9" Usa uno de los valores listados. nano-banana-pro no admite auto (produce 1:1).
output_format string predeterminado "PNG""PNG", "JPEG" Formato de imagen de salida.
duration string predeterminado "0"Envía "0" (no se usa para imágenes).

Reglas

  • aspect_ratio: usa uno de los valores listados; con nano-banana-pro, auto produce 1:1.
  • Text-to-image no usa imágenes; envía images: [] u omítelo.
  • Asíncrono: la respuesta es {generation_id, status:'processing', image_url:null, video_url:null, video_quality}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está entonces en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url.

Ejemplo de cuerpo de solicitud

{
  "mode": "nano-banana",
  "generation_type": "text-to-image",
  "prompt": "A beautiful sunset over mountains with golden light",
  "duration": "0",
  "aspect_ratio": "auto",
  "video_quality": "standard",
  "modelVersion": "nano-banana",
  "output_format": "PNG",
  "images": []
}

Modo Google Nano Banana (Edit): nano-banana-edit

image-to-image

Edita una o más imágenes cargadas a partir de una instrucción de texto con Google Nano Banana (o Nano Banana Pro).

ParámetroValores y notas
prompt string · obligatorioPrompt de texto, hasta 20000 caracteres.
images string[] · obligatorioURLs de imagen de entrada para editar (1-10).
modelVersion string afecta el precio predeterminado "nano-banana""nano-banana", "nano-banana-pro" nano-banana = modelo base; nano-banana-pro = Nano Banana Pro.
video_quality string afecta el precio predeterminado "standard""standard", "1K", "2K", "4K" Envía 'standard' con nano-banana; con nano-banana-pro, envía la resolución de salida 1K, 2K o 4K.
aspect_ratio string predeterminado "16:9""auto", "1:1", "9:16", "16:9", "3:4", "4:3", "3:2", "2:3", "5:4", "4:5", "21:9" Usa uno de los valores listados. nano-banana-pro no admite auto (produce 1:1).
output_format string predeterminado "PNG""PNG", "JPEG" Formato de imagen de salida.
duration string predeterminado "0"Envía "0" (no se usa para imágenes).

Archivos de entrada

  • images: 1-10 URLs de imagen; URLs https públicas o archivos cargados con POST /api/storage/upload

Carpetas de carga para /api/storage/upload

  • image: image-generator

Reglas

  • aspect_ratio: usa uno de los valores listados; con nano-banana-pro, auto produce 1:1.
  • image-to-image requiere un array images no vacío (o image) (400 en caso contrario).
  • Envía 1-10 imágenes de entrada.
  • Asíncrono: la respuesta es {generation_id, status:'processing', image_url:null, video_url:null, video_quality}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está entonces en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url.

Ejemplo de cuerpo de solicitud

{
  "mode": "nano-banana-edit",
  "generation_type": "image-to-image",
  "prompt": "Change the background to a blue sky",
  "duration": "0",
  "aspect_ratio": "auto",
  "video_quality": "standard",
  "modelVersion": "nano-banana",
  "output_format": "PNG",
  "images": [
    "https://example.com/input.jpg"
  ]
}

Modo Google Nano Banana 2.1: nano-banana-2-1

text-to-image

Genera una imagen 1K/2K/4K a partir de texto con Google Nano Banana 2.1.

ParámetroValores y notas
prompt string · obligatorioPrompt de texto, hasta 5000 caracteres.
resolution string afecta el precio predeterminado "1K""1K", "2K", "4K" Nivel de salida.
aspect_ratio string predeterminado "16:9""auto", "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "5:4", "4:5", "21:9", "4:1", "1:4", "8:1", "1:8" auto permite que el modelo elija según el prompt. Envíalo siempre (el valor predeterminado de la API es 16:9).
output_format string predeterminado "JPEG""JPEG", "PNG" Formato de salida: JPEG o PNG (predeterminado JPEG).
duration string predeterminado "0"Envía "0" (no se usa para imágenes).

Reglas

  • Precio solo por resolución: 1K = 3 créditos, 2K = 5, 4K = 8. La relación de aspecto y el número de imágenes de referencia no cambian el precio.
  • generation_type debe ser text-to-image o image-to-image (422).
  • aspect_ratio debe ser uno de los valores listados (400).
  • resolution debe ser 1K, 2K o 4K (422).
  • prompt máximo 5000 caracteres (400).
  • Este es un modelo diferente de nano-banana-2 (modo y precio separados).
  • Asíncrono: la respuesta es {generation_id, status:'processing', image_url:null, video_url:null, video_quality}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está entonces en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url.

Ejemplo de cuerpo de solicitud

{
  "mode": "nano-banana-2-1",
  "generation_type": "text-to-image",
  "prompt": "A minimalist coffee shop poster with the headline \"SLOW MORNINGS\" in bold serif type",
  "duration": "0",
  "aspect_ratio": "1:1",
  "resolution": "1K",
  "output_format": "JPEG",
  "images": []
}

image-to-image

Edita/combina hasta 10 imágenes de referencia a partir de un prompt con Google Nano Banana 2.1 a 1K-4K.

ParámetroValores y notas
prompt string · obligatorioPrompt de texto, hasta 5000 caracteres.
images string[] · obligatorio1-10 URLs de imagen de referencia.
resolution string afecta el precio predeterminado "1K""1K", "2K", "4K" Nivel de salida.
aspect_ratio string predeterminado "16:9""auto", "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "5:4", "4:5", "21:9", "4:1", "1:4", "8:1", "1:8" auto conserva la relación de aspecto de la primera imagen de referencia. Envíalo siempre (el valor predeterminado de la API es 16:9).
output_format string predeterminado "JPEG""JPEG", "PNG" Formato de salida: JPEG o PNG (predeterminado JPEG).
duration string predeterminado "0"Envía "0" (no se usa para imágenes).

Archivos de entrada

  • images: 1-10 URLs de imagen de referencia

Carpetas de carga para /api/storage/upload

  • image: image-generator

Reglas

  • Precio solo por resolución: 1K = 3 créditos, 2K = 5, 4K = 8. La relación de aspecto y el número de imágenes de referencia no cambian el precio.
  • generation_type debe ser text-to-image o image-to-image (422).
  • aspect_ratio debe ser uno de los valores listados (400).
  • resolution debe ser 1K, 2K o 4K (422).
  • prompt máximo 5000 caracteres (400).
  • image-to-image requiere un array images no vacío (o image) (400 en caso contrario).
  • Máximo 10 imágenes de referencia (400).
  • Este es un modelo diferente de nano-banana-2 (modo y precio separados).
  • Asíncrono: la respuesta es {generation_id, status:'processing', image_url:null, video_url:null, video_quality}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está entonces en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url.

Ejemplo de cuerpo de solicitud

{
  "mode": "nano-banana-2-1",
  "generation_type": "image-to-image",
  "prompt": "A minimalist coffee shop poster with the headline \"SLOW MORNINGS\" in bold serif type",
  "duration": "0",
  "aspect_ratio": "auto",
  "resolution": "1K",
  "output_format": "JPEG",
  "images": [
    "https://example.com/ref.jpg"
  ]
}

Modo Google Nano Banana 2: nano-banana-2

text-to-image

Genera una imagen a partir de texto con Google Nano Banana 2 (1K-4K).

ParámetroValores y notas
prompt string · obligatorioPrompt de texto, hasta 20000 caracteres.
video_quality string afecta el precio predeterminado "1K""1K", "2K", "4K"
aspect_ratio string predeterminado "16:9""1:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "21:9", "1:4", "4:1", "1:8", "8:1" Relación de aspecto de salida. Usa uno de los valores listados.
output_format string predeterminado "JPG""JPG", "PNG" Formato de salida: JPG o PNG (predeterminado JPG).
google_search boolean predeterminado falseHabilita la base de búsqueda de Google.
image_search boolean predeterminado falseOpcional; no tiene efecto para este modelo y puede omitirse.
duration string predeterminado "0"Envía "0" (no se usa para imágenes).

Reglas

  • Usa uno de los valores listados.
  • aspect_ratio: usa uno de los valores listados.
  • Asíncrono: la respuesta es {generation_id, status:'processing', image_url:null, video_url:null, video_quality}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está entonces en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url.

Ejemplo de cuerpo de solicitud

{
  "mode": "nano-banana-2",
  "generation_type": "text-to-image",
  "prompt": "A beautiful portrait with stunning details",
  "duration": "0",
  "aspect_ratio": "1:1",
  "video_quality": "1K",
  "output_format": "JPG",
  "google_search": false,
  "image_search": false,
  "images": []
}

image-to-image

Edita/combina imágenes de referencia a partir de un prompt de texto con Google Nano Banana 2.

ParámetroValores y notas
prompt string · obligatorioIndicación de texto, hasta 20000 caracteres.
images string[] · obligatorioURLs de imágenes de referencia (1-14).
video_quality string afecta el precio predeterminado "1K""1K", "2K", "4K"
aspect_ratio string predeterminado "16:9""match_input_image", "1:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9", "21:9", "1:4", "4:1", "1:8", "8:1" Relación de aspecto de salida. 'match_input_image' mantiene la relación de la imagen de entrada. Usa uno de los valores listados.
output_format string predeterminado "JPG""JPG", "PNG" Formato de salida: JPG o PNG (predeterminado JPG).
google_search boolean predeterminado falseHabilita la fundamentación con Búsqueda de Google.
image_search boolean predeterminado falseOpcional; no tiene efecto para este modelo y puede omitirse.
duration string predeterminado "0"Envía "0" (no se usa para imágenes).

Archivos de entrada

  • images: 1-14 URLs de imágenes de referencia

Carpetas de subida para /api/storage/upload

  • image: image-generator

Reglas

  • Usa uno de los valores listados.
  • aspect_ratio: usa uno de los valores listados.
  • imagen-a-imagen requiere un array de images no vacío (o image) (400 en caso contrario).
  • Envía 1-14 imágenes de referencia.
  • Asíncrono: la respuesta es {generation_id, status:'processing', image_url:null, video_url:null, video_quality}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está entonces en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url.

Ejemplo de cuerpo de solicitud

{
  "mode": "nano-banana-2",
  "generation_type": "image-to-image",
  "prompt": "A beautiful portrait with stunning details",
  "duration": "0",
  "aspect_ratio": "match_input_image",
  "video_quality": "1K",
  "output_format": "JPG",
  "google_search": false,
  "image_search": false,
  "images": [
    "https://example.com/ref.jpg"
  ]
}

Modo Flux Kontext: flux-kontext

text-to-image

Genera una imagen a partir de texto con Flux Kontext (Flux 1 o Flux 2, Pro o Max).

ParámetroValores y notas
prompt string · obligatorioIndicación de texto.
fluxModelVersion string afecta el precio predeterminado "flux1""flux1", "flux2" Flux Kontext 1 (flux1) o Flux 2 (flux2).
fluxModel string afecta el precio predeterminado "flux-kontext-pro""flux-kontext-pro", "flux-kontext-max" Pro o Max (con flux2, Max es Flux 2 Flex).
fluxResolution string afecta el precio predeterminado "1K""1K", "2K" Resolución de salida; afecta el precio y la salida solo con flux2.
video_quality string predeterminado "1K""1K", "2K" Envía el mismo valor que fluxResolution.
aspect_ratio string predeterminado "16:9""16:9", "21:9", "4:3", "1:1", "3:4", "9:16", "16:21", "3:2", "2:3", "auto" Con flux1: 16:9, 21:9, 4:3, 1:1, 3:4, 9:16, 16:21. Con flux2: 1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3, auto.
output_format string"PNG", "JPEG" Formato de salida, PNG o JPEG (solo flux1). Cuando se omite, el modelo elige el formato.
promptUpsampling boolean predeterminado falseMejora de la indicación (solo flux1).
enableTranslation boolean predeterminado falseTraducción de la indicación (solo flux1).
duration string predeterminado "0"Envía "0" (no se usa para imágenes).

Reglas

  • aspect_ratio: usa un valor compatible con el fluxModelVersion seleccionado.
  • Asíncrono: la respuesta es {generation_id, status:'processing', image_url:null, video_url:null, video_quality}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está entonces en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url.

Ejemplo de cuerpo de solicitud

{
  "mode": "flux-kontext",
  "generation_type": "text-to-image",
  "prompt": "Serene mountain landscape at sunset with lake reflection",
  "duration": "0",
  "aspect_ratio": "16:9",
  "video_quality": "1K",
  "fluxModel": "flux-kontext-pro",
  "fluxModelVersion": "flux1",
  "fluxResolution": "1K",
  "promptUpsampling": false,
  "enableTranslation": true,
  "output_format": "PNG"
}

image-to-image

Edita una imagen (o hasta 8 referencias con Flux 2) a partir de una instrucción de texto con Flux Kontext.

ParámetroValores y notas
prompt string · obligatorioIndicación de texto.
image stringURL de la imagen de entrada (primera imagen); flux1 usa solo esta. Obligatorio a menos que la envíes como images[0].
images string[]Solo flux2: todas las URLs de imágenes de referencia, hasta 8.
fluxModelVersion string afecta el precio predeterminado "flux1""flux1", "flux2" Flux Kontext 1 (flux1) o Flux 2 (flux2).
fluxModel string afecta el precio predeterminado "flux-kontext-pro""flux-kontext-pro", "flux-kontext-max" Pro o Max (con flux2, Max es Flux 2 Flex).
fluxResolution string afecta el precio predeterminado "1K""1K", "2K" Resolución de salida; afecta el precio y la salida solo con flux2.
video_quality string predeterminado "1K""1K", "2K" Envía el mismo valor que fluxResolution.
aspect_ratio string predeterminado "16:9""16:9", "21:9", "4:3", "1:1", "3:4", "9:16", "16:21", "3:2", "2:3", "auto" Con flux1: 16:9, 21:9, 4:3, 1:1, 3:4, 9:16, 16:21. Con flux2: 1:1, 4:3, 3:4, 16:9, 9:16, 3:2, 2:3, auto.
output_format string"PNG", "JPEG" Formato de salida, PNG o JPEG (solo flux1). Cuando se omite, el modelo elige el formato.
promptUpsampling boolean predeterminado falseMejora de la indicación (solo flux1).
enableTranslation boolean predeterminado falseTraducción de la indicación (solo flux1).
duration string predeterminado "0"Envía "0" (no se usa para imágenes).

Archivos de entrada

  • image: 1 URL de imagen (flux1)
  • images: 1-8 URLs de imágenes (solo flux2)

Carpetas de subida para /api/storage/upload

  • image: flux-kontext

Reglas

  • aspect_ratio: usa un valor compatible con el fluxModelVersion seleccionado.
  • imagen-a-imagen requiere un array de images no vacío (o image) (400 en caso contrario).
  • flux1 usa solo la imagen de entrada única en image; flux2 acepta hasta 8 imágenes de referencia en images.
  • Asíncrono: la respuesta es {generation_id, status:'processing', image_url:null, video_url:null, video_quality}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está entonces en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url.

Ejemplo de cuerpo de solicitud

{
  "mode": "flux-kontext",
  "generation_type": "image-to-image",
  "prompt": "Serene mountain landscape at sunset with lake reflection",
  "duration": "0",
  "aspect_ratio": "16:9",
  "video_quality": "1K",
  "fluxModel": "flux-kontext-pro",
  "fluxModelVersion": "flux1",
  "fluxResolution": "1K",
  "promptUpsampling": false,
  "enableTranslation": true,
  "output_format": "PNG",
  "image": "https://example.com/input.jpg"
}

Modo Krea 3: krea-3

text-to-image

Genera una imagen de 1K o 2K a partir de texto con Krea 3.

ParámetroValores y notas
prompt string · obligatorioIndicación de texto, hasta 5000 caracteres.
resolution string afecta el precio predeterminado "1K""1K", "2K" Nivel de salida: 1K (aproximadamente 1 MP) o 2K (aproximadamente 4 MP).
aspect_ratio string predeterminado "16:9""1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "5:4", "4:5", "21:9" Relación de aspecto de salida (sin auto). Envíalo siempre.
output_format string predeterminado "JPEG""JPEG", "PNG" Formato de salida: JPEG o PNG (predeterminado JPEG).
duration string predeterminado "0"Envía "0" (no se usa para imágenes).

Reglas

  • generation_type debe ser text-to-image o image-to-image (422).
  • aspect_ratio debe ser uno de los 10 valores listados (400). Envía siempre aspect_ratio.
  • resolution debe ser 1K o 2K (422).
  • prompt máximo 5000 caracteres (400).
  • Asíncrono: la respuesta es {generation_id, status:'processing', image_url:null, video_url:null, video_quality}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está entonces en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url.

Ejemplo de cuerpo de solicitud

{
  "mode": "krea-3",
  "generation_type": "text-to-image",
  "prompt": "A cozy bookshop window at dusk with a cat asleep on a stack of books",
  "duration": "0",
  "aspect_ratio": "1:1",
  "resolution": "1K",
  "output_format": "JPEG",
  "images": []
}

image-to-image

Edita o combina 1-8 imágenes de referencia a partir de una indicación con Krea 3 a 1K o 2K; refiérete a ellas como <image-1>...<image-N>.

ParámetroValores y notas
prompt string · obligatorioIndicación de texto, hasta 5000 caracteres. Refiérete a las imágenes de referencia como <image-1>, <image-2>,... en orden de subida.
images string[] · obligatorio afecta el precio1-8 URLs de imágenes de referencia, en el orden de <image-1>...<image-N> en la indicación.
resolution string afecta el precio predeterminado "1K""1K", "2K" Nivel de salida: 1K (aproximadamente 1 MP) o 2K (aproximadamente 4 MP).
aspect_ratio string predeterminado "16:9""1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "5:4", "4:5", "21:9" Relación de aspecto de salida (sin auto). Envíalo siempre.
output_format string predeterminado "JPEG""JPEG", "PNG" Formato de salida: JPEG o PNG (predeterminado JPEG).
duration string predeterminado "0"Envía "0" (no se usa para imágenes).

Archivos de entrada

  • images: 1-8 URLs de imágenes de referencia

Carpetas de subida para /api/storage/upload

  • image: image-generator

Reglas

  • generation_type debe ser text-to-image o image-to-image (422).
  • aspect_ratio debe ser uno de los 10 valores listados (400). Envía siempre aspect_ratio.
  • resolution debe ser 1K o 2K (422).
  • prompt máximo 5000 caracteres (400).
  • imagen-a-imagen requiere un array de images no vacío (o image) (400 en caso contrario).
  • Máximo 8 imágenes de referencia (400); cada imagen de referencia añade un cargo de tamaño de salida.
  • Asíncrono: la respuesta es {generation_id, status:'processing', image_url:null, video_url:null, video_quality}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está entonces en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url.

Ejemplo de cuerpo de solicitud

{
  "mode": "krea-3",
  "generation_type": "image-to-image",
  "prompt": "Place the ceramic mug from <image-2> on the wooden table in <image-1>. Keep everything else unchanged.",
  "duration": "0",
  "aspect_ratio": "1:1",
  "resolution": "1K",
  "output_format": "JPEG",
  "images": [
    "https://example.com/scene.jpg",
    "https://example.com/mug.jpg"
  ]
}

Modo FLUX 3 Image: flux-3-image

text-to-image

Genera una imagen nativa de 1K/2K/4K a partir de texto con FLUX 3.

ParámetroValores y notas
prompt string · obligatorioIndicación de texto, hasta 5000 caracteres.
resolution string afecta el precio predeterminado "1K""1K", "2K", "4K" Nivel de salida.
aspect_ratio string afecta el precio predeterminado "16:9""21:9", "2:1", "16:9", "3:2", "7:5", "4:3", "5:4", "1:1", "4:5", "3:4", "5:7", "2:3", "9:16", "1:2" Relación de aspecto de salida (sin auto). Envíalo siempre.
output_format string predeterminado "JPEG""JPEG", "PNG" Formato de salida: JPEG o PNG (predeterminado JPEG).
duration string predeterminado "0"Envía "0" (no se usa para imágenes).

Reglas

  • generation_type debe ser text-to-image o image-to-image (422).
  • aspect_ratio debe ser uno de los 14 valores listados (400). Envía siempre aspect_ratio.
  • resolution debe ser 1K, 2K o 4K (422).
  • prompt máximo 5000 caracteres (400).
  • Asíncrono: la respuesta es {generation_id, status:'processing', image_url:null, video_url:null, video_quality}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está entonces en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url.

Ejemplo de cuerpo de solicitud

{
  "mode": "flux-3-image",
  "generation_type": "text-to-image",
  "prompt": "A bakery storefront at golden hour with a hand-painted sign that reads \"Morning Loaf\"",
  "duration": "0",
  "aspect_ratio": "1:1",
  "resolution": "1K",
  "output_format": "JPEG",
  "images": []
}

image-to-image

Edita/combina hasta 10 imágenes de referencia a partir de una indicación con FLUX 3 a 1K-4K.

ParámetroValores y notas
prompt string · obligatorioIndicación de texto, hasta 5000 caracteres.
images string[] · obligatorio1-10 URLs de imágenes de referencia.
resolution string afecta el precio predeterminado "1K""1K", "2K", "4K" Nivel de salida.
aspect_ratio string afecta el precio predeterminado "16:9""21:9", "2:1", "16:9", "3:2", "7:5", "4:3", "5:4", "1:1", "4:5", "3:4", "5:7", "2:3", "9:16", "1:2" Relación de aspecto de salida (sin auto). Envíalo siempre.
output_format string predeterminado "JPEG""JPEG", "PNG" Formato de salida: JPEG o PNG (predeterminado JPEG).
duration string predeterminado "0"Envía "0" (no se usa para imágenes).

Archivos de entrada

  • images: 1-10 URLs de imágenes de referencia

Carpetas de subida para /api/storage/upload

  • image: image-generator

Reglas

  • generation_type debe ser text-to-image o image-to-image (422).
  • aspect_ratio debe ser uno de los 14 valores listados (400). Envía siempre aspect_ratio.
  • resolution debe ser 1K, 2K o 4K (422).
  • prompt máximo 5000 caracteres (400).
  • imagen-a-imagen requiere un array de images no vacío (o image) (400 en caso contrario).
  • Máximo 10 imágenes de referencia (400); las referencias no cambian el precio.
  • Asíncrono: la respuesta es {generation_id, status:'processing', image_url:null, video_url:null, video_quality}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está entonces en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url.

Ejemplo de cuerpo de solicitud

{
  "mode": "flux-3-image",
  "generation_type": "image-to-image",
  "prompt": "A bakery storefront at golden hour with a hand-painted sign that reads \"Morning Loaf\"",
  "duration": "0",
  "aspect_ratio": "1:1",
  "resolution": "1K",
  "output_format": "JPEG",
  "images": [
    "https://example.com/ref.jpg"
  ]
}

Modo Seedream 5.0: seedream-5.0-lite

text-to-image

Genera imágenes HD (opcionalmente un lote) a partir de texto con Seedream 5.0 Lite.

ParámetroValores y notas
prompt string · obligatorioIndicación de texto.
video_quality string predeterminado "2K""2K", "3K" Tamaño de salida: 2K o 3K.
aspect_ratio string predeterminado "16:9""1:1", "2:3", "3:2", "3:4", "4:3", "9:16", "16:9", "21:9" Relación de aspecto de salida. Usa uno de los valores listados y envíalo siempre.
output_format string predeterminado "PNG""PNG", "JPEG" Formato de salida: PNG o JPEG.
sequential_image_generation string predeterminado "disabled""disabled", "auto" 'auto' habilita la salida por lotes (multi-imagen).
max_images number afecta el precio predeterminado 11–15 Número de imágenes en un lote. Establécelo por encima de 1 solo junto con sequential_image_generation='auto'.
duration string predeterminado "0"Envía "0" (no se usa para imágenes).

Reglas

  • Establece max_images > 1 solo con sequential_image_generation='auto'.
  • Si un lote devuelve menos imágenes de las solicitadas, los créditos no utilizados se reembolsan automáticamente.
  • Envía siempre aspect_ratio, usando uno de los valores listados.
  • Asíncrono: la respuesta es {generation_id, status:'processing', image_url:null, video_url:null, video_quality}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está entonces en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url. Los resultados del lote aparecen en result_images.

Ejemplo de cuerpo de solicitud

{
  "mode": "seedream-5.0-lite",
  "generation_type": "text-to-image",
  "prompt": "A cozy reading nook with warm light",
  "duration": "0",
  "aspect_ratio": "1:1",
  "video_quality": "2K",
  "output_format": "PNG",
  "sequential_image_generation": "disabled",
  "max_images": 1,
  "images": []
}

image-to-image

Edita/combina imágenes de referencia en nuevas imágenes HD (opcionalmente un lote) con Seedream 5.0 Lite.

ParámetroValores y notas
prompt string · obligatorioIndicación de texto.
images string[] · obligatorioURLs de imágenes de referencia (1-14).
video_quality string predeterminado "2K""2K", "3K" Tamaño de salida: 2K o 3K.
aspect_ratio string predeterminado "16:9""match_input_image", "1:1", "2:3", "3:2", "3:4", "4:3", "9:16", "16:9", "21:9" Relación de aspecto de salida; 'match_input_image' mantiene la relación de la imagen de entrada. Usa uno de los valores listados y envíalo siempre.
output_format string predeterminado "PNG""PNG", "JPEG" Formato de salida: PNG o JPEG.
sequential_image_generation string predeterminado "disabled""disabled", "auto" 'auto' habilita la salida por lotes (multi-imagen).
max_images number afecta el precio predeterminado 11–15 Número de imágenes en un lote. Establécelo por encima de 1 solo junto con sequential_image_generation='auto'.
duration string predeterminado "0"Envía "0" (no se usa para imágenes).

Archivos de entrada

  • images: 1-14 URLs de imágenes de referencia

Carpetas de carga para /api/storage/upload

  • image: image-generator

Reglas

  • Establece max_images > 1 solo con sequential_image_generation='auto'.
  • Si un lote devuelve menos imágenes de las solicitadas, los créditos no utilizados se reembolsan automáticamente.
  • Envía siempre aspect_ratio, usando uno de los valores listados.
  • La conversión de imagen a imagen requiere un array de images no vacío (o image) (400 en caso contrario).
  • Envía 1-14 imágenes de referencia.
  • Asíncrono: la respuesta es {generation_id, status:'processing', image_url:null, video_url:null, video_quality}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está entonces en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url. Los resultados del lote aparecen en result_images.

Ejemplo de cuerpo de solicitud

{
  "mode": "seedream-5.0-lite",
  "generation_type": "image-to-image",
  "prompt": "A cozy reading nook with warm light",
  "duration": "0",
  "aspect_ratio": "match_input_image",
  "video_quality": "2K",
  "output_format": "PNG",
  "sequential_image_generation": "disabled",
  "max_images": 1,
  "images": [
    "https://example.com/ref.jpg"
  ]
}

Modo Seedream 5.0 Pro: seedream-5.0-pro

text-to-image

Genera imágenes con texto denso e infografías a partir de una indicación con Seedream 5.0 Pro.

ParámetroValores y notas
prompt string · obligatorioIndicación de texto, hasta 5000 caracteres.
resolution string afecta el precio predeterminado "1K""1K", "2K"
video_quality string predeterminado "1K""1K", "2K" Envía el mismo valor que resolution; resolution determina el precio y la salida.
aspect_ratio string predeterminado "16:9""1:1", "4:3", "3:4", "16:9", "9:16", "2:3", "3:2", "21:9" Relación de aspecto de salida; sin auto (también para imagen a imagen). Envíala siempre.
output_format string"PNG", "JPEG" Formato de salida: PNG o JPEG. Cuando se omite, el modelo elige el formato.
duration string predeterminado "0"Envía "0" (no se usa para imágenes).

Reglas

  • aspect_ratio debe ser uno de 1:1, 4:3, 3:4, 16:9, 9:16, 2:3, 3:2, 21:9 (400). Envía siempre aspect_ratio.
  • resolution debe ser 1K o 2K (422).
  • prompt máximo 5000 caracteres (400).
  • Asíncrono: la respuesta es {generation_id, status:'processing', image_url:null, video_url:null, video_quality}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está entonces en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url.

Ejemplo de cuerpo de solicitud

{
  "mode": "seedream-5.0-pro",
  "generation_type": "text-to-image",
  "prompt": "An infographic poster explaining the water cycle with labeled arrows",
  "duration": "0",
  "aspect_ratio": "1:1",
  "video_quality": "1K",
  "resolution": "1K",
  "output_format": "PNG",
  "images": []
}

image-to-image

Edita con precisión hasta 10 imágenes de referencia a partir de una indicación con Seedream 5.0 Pro.

ParámetroValores y notas
prompt string · obligatorioIndicación de texto, hasta 5000 caracteres.
images string[] · obligatorio afecta el precio1-10 URLs de imágenes de referencia.
resolution string afecta el precio predeterminado "1K""1K", "2K"
video_quality string predeterminado "1K""1K", "2K" Envía el mismo valor que resolution; resolution determina el precio y la salida.
aspect_ratio string predeterminado "16:9""1:1", "4:3", "3:4", "16:9", "9:16", "2:3", "3:2", "21:9" Relación de aspecto de salida; sin auto (también para imagen a imagen). Envíala siempre.
output_format string"PNG", "JPEG" Formato de salida: PNG o JPEG. Cuando se omite, el modelo elige el formato.
duration string predeterminado "0"Envía "0" (no se usa para imágenes).

Archivos de entrada

  • images: 1-10 URLs de imágenes de referencia

Carpetas de carga para /api/storage/upload

  • image: image-generator

Reglas

  • aspect_ratio debe ser uno de 1:1, 4:3, 3:4, 16:9, 9:16, 2:3, 3:2, 21:9 (400). Envía siempre aspect_ratio.
  • resolution debe ser 1K o 2K (422).
  • prompt máximo 5000 caracteres (400).
  • La conversión de imagen a imagen requiere un array de images no vacío (o image) (400 en caso contrario).
  • Máximo 10 imágenes de referencia (400).
  • Asíncrono: la respuesta es {generation_id, status:'processing', image_url:null, video_url:null, video_quality}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está entonces en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url.
  • Al cotizar con /api/quote, envía input_image_count (el número de imágenes) — la cotización no cuenta el array de images para este modelo, por lo que saldría demasiado baja.

Ejemplo de cuerpo de solicitud

{
  "mode": "seedream-5.0-pro",
  "generation_type": "image-to-image",
  "prompt": "An infographic poster explaining the water cycle with labeled arrows",
  "duration": "0",
  "aspect_ratio": "1:1",
  "video_quality": "1K",
  "resolution": "1K",
  "output_format": "PNG",
  "images": [
    "https://example.com/ref.jpg"
  ]
}

Modo Seedream 5.0 Flash: seedream-5.0-flash

text-to-image

Texto a imagen rápido y de bajo costo hasta 2K con Seedream 5.0 Flash.

ParámetroValores y notas
prompt string · obligatorioIndicación de texto, máximo 5000 caracteres.
resolution string predeterminado "1K""1K", "1.5K", "2K" Tamaño de salida (1K, 1.5K o 2K). Establécelo con resolution; video_quality no se usa.
aspect_ratio string predeterminado "16:9""1:1", "4:3", "3:4", "16:9", "9:16", "2:3", "3:2", "21:9" Relación de aspecto de salida; sin opción auto. Envíala siempre explícitamente.
output_format string predeterminado "PNG""PNG", "JPEG" Formato de salida en mayúsculas: PNG o JPEG.
duration string predeterminado "0"Envía "0".

Reglas

  • generation_type debe ser text-to-image o image-to-image (422).
  • aspect_ratio debe ser uno de 1:1, 4:3, 3:4, 16:9, 9:16, 2:3, 3:2, 21:9 (400). Envía siempre aspect_ratio explícitamente.
  • resolution debe ser 1K, 1.5K o 2K (422).
  • prompt máximo 5000 caracteres (400).
  • Asíncrono: POST devuelve {generation_id, status:'processing'}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url.

Ejemplo de cuerpo de solicitud

{
  "mode": "seedream-5.0-flash",
  "generation_type": "text-to-image",
  "prompt": "A cozy coffee shop interior at golden hour, warm light through large windows",
  "duration": "0",
  "aspect_ratio": "1:1",
  "resolution": "1K",
  "output_format": "PNG",
  "images": []
}

image-to-image

Ediciones rápidas y de bajo costo de hasta 10 imágenes de referencia hasta 2K con Seedream 5.0 Flash.

ParámetroValores y notas
prompt string · obligatorioIndicación de texto, máximo 5000 caracteres.
images string[] · obligatorio1-10 URLs de imágenes de referencia.
resolution string predeterminado "1K""1K", "1.5K", "2K" Tamaño de salida (1K, 1.5K o 2K). Establécelo con resolution; video_quality no se usa.
aspect_ratio string predeterminado "16:9""1:1", "4:3", "3:4", "16:9", "9:16", "2:3", "3:2", "21:9" Relación de aspecto de salida; sin opción auto. Envíala siempre explícitamente.
output_format string predeterminado "PNG""PNG", "JPEG" Formato de salida en mayúsculas: PNG o JPEG.
duration string predeterminado "0"Envía "0".

Archivos de entrada

  • images: 1-10 URLs de imágenes de referencia.

Carpetas de carga para /api/storage/upload

  • image: image-generator

Reglas

  • generation_type debe ser text-to-image o image-to-image (422).
  • aspect_ratio debe ser uno de 1:1, 4:3, 3:4, 16:9, 9:16, 2:3, 3:2, 21:9 (400). Envía siempre aspect_ratio explícitamente.
  • resolution debe ser 1K, 1.5K o 2K (422).
  • prompt máximo 5000 caracteres (400).
  • La conversión de imagen a imagen requiere un array de images no vacío (o image) (400).
  • Como máximo 10 imágenes de referencia (400).
  • Asíncrono: POST devuelve {generation_id, status:'processing'}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url.

Ejemplo de cuerpo de solicitud

{
  "mode": "seedream-5.0-flash",
  "generation_type": "image-to-image",
  "prompt": "A cozy coffee shop interior at golden hour, warm light through large windows",
  "duration": "0",
  "aspect_ratio": "1:1",
  "resolution": "1K",
  "output_format": "PNG",
  "images": [
    "https://example.com/ref.jpg"
  ]
}

Modo Ideogram 4.5: ideogram-4-5

text-to-image

Genera 1-8 imágenes con texto preciso dentro de la imagen a partir de una indicación con Ideogram 4.5.

ParámetroValores y notas
prompt string · obligatorioObligatorio, no vacío, máximo 10000 caracteres.
quality string afecta el precio predeterminado "low""low", "medium", "high"
num_images number afecta el precio predeterminado 11–8 Imágenes por solicitud (1-8); el precio se multiplica por num_images.
enable_prompt_expansion boolean predeterminado trueSolo texto a imagen.
aspect_ratio string predeterminado "1:1""1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "5:4", "4:5", "16:10", "10:16", "2:1", "1:2", "12:5", "5:12", "22:9", "9:22", "23:9", "9:23", "8:3", "3:8", "3:1", "1:3" Relación de aspecto de salida.
resolution string"1K", "2K" Nivel de resolución para el aspect_ratio elegido; por defecto el más bajo disponible. 12:5, 5:12, 22:9, 9:22, 23:9, 9:23, 8:3, 3:8, 3:1, 1:3 son solo 2K.
seed numberSemilla entera opcional.
duration string predeterminado "0"Envía "0".

Reglas

  • Los créditos por imágenes no entregadas se reembolsan automáticamente.
  • generation_type debe ser text-to-image o image-to-image.
  • prompt obligatorio, máximo 10000 caracteres (422).
  • num_images debe ser un entero 1-8 (422).
  • resolution debe ser válido para el aspect_ratio elegido (422).
  • text-to-image no debe incluir images (422); edit_precision y mask_url se rechazan (422).
  • aspect_ratio auto no está permitido para text-to-image.
  • Asíncrono: POST devuelve {generation_id, status:'processing'}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url. Con num_images > 1, todas las imágenes están en result_images.

Ejemplo de cuerpo de solicitud

{
  "mode": "ideogram-4-5",
  "generation_type": "text-to-image",
  "prompt": "A vintage travel poster with the bold title \"VISIT LISBON\" and a yellow tram",
  "duration": "0",
  "quality": "low",
  "num_images": 1,
  "aspect_ratio": "1:1",
  "resolution": "1K",
  "enable_prompt_expansion": true
}

image-to-image

Edita una imagen (opcionalmente con una máscara e imágenes de referencia) con renderizado de texto preciso mediante Ideogram 4.5.

ParámetroValores y notas
prompt string · obligatorioObligatorio, no vacío, máximo 10000 caracteres.
images string[] · obligatorioimages[0] = imagen a editar; images[1..] = hasta 4 imágenes de referencia (3 con máscara). Solo URLs http(s).
quality string afecta el precio predeterminado "very_low""very_low", "low", "medium", "high"
num_images number afecta el precio predeterminado 11–8 Imágenes por solicitud (1-8); el precio se multiplica por num_images.
edit_precision string predeterminado "regular""regular", "high" Precisión de edición.
mask_url stringURL de máscara en blanco y negro, del mismo tamaño que la imagen de origen; negro = área a cambiar.
aspect_ratio string predeterminado "auto""auto", "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "5:4", "4:5", "16:10", "10:16", "2:1", "1:2", "12:5", "5:12", "22:9", "9:22", "23:9", "9:23", "8:3", "3:8", "3:1", "1:3" auto conserva el tamaño de la imagen de origen.
resolution string"1K", "2K" Nivel de resolución para el aspect_ratio elegido; predeterminado al más bajo disponible. 12:5, 5:12, 22:9, 9:22, 23:9, 9:23, 8:3, 3:8, 3:1, 1:3 son solo 2K. No permitido con aspect_ratio auto.
seed numberSemilla entera opcional.
duration string predeterminado "0"Enviar "0".

Archivos de entrada

  • images: 1 imagen a editar + 0-4 URLs de imágenes de referencia (0-3 con máscara).
  • mask: mask_url opcional (PNG, negro = área de edición, mismo tamaño que la fuente).

Carpetas de carga para /api/storage/upload

  • image: image-generator
  • mask: image-generator

Reglas

  • Los créditos de las imágenes no entregadas se reembolsan automáticamente.
  • generation_type debe ser text-to-image o image-to-image.
  • prompt obligatorio, máximo 10000 caracteres (422).
  • num_images debe ser un entero 1-8 (422).
  • resolution debe ser válida para el aspect_ratio elegido (422).
  • La calidad very_low solo está disponible para image-to-image.
  • Se necesita al menos 1 imagen; como máximo 4 imágenes de referencia después de la primera (3 cuando mask_url está configurado). Las URLs de imagen deben ser http(s).
  • enable_prompt_expansion se rechaza para image-to-image (422).
  • Un aspect_ratio/resolution distinto de auto solo se permite con edit_precision=regular y sin máscara (422).
  • mask_url solo se acepta para qwen-image-2-1 e ideogram-4-5 y debe ser una URL http(s).
  • Asíncrono: POST devuelve {generation_id, status:'processing'}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url. Con num_images > 1, todas las imágenes están en result_images.

Ejemplo de cuerpo de solicitud

{
  "mode": "ideogram-4-5",
  "generation_type": "image-to-image",
  "prompt": "Replace the sign text with \"OPEN\"",
  "duration": "0",
  "quality": "very_low",
  "num_images": 1,
  "aspect_ratio": "auto",
  "images": [
    "https://example.com/source.jpg"
  ],
  "edit_precision": "regular"
}

Modo GPT Image 2: gpt-image-2

text-to-image

Genera imágenes fotorrealistas con renderizado de texto nítido a partir de un prompt con GPT Image 2.

ParámetroValores y notas
prompt string · obligatorioObligatorio, no vacío, máximo 20000 caracteres.
resolution string afecta el precio predeterminado "1K""1K", "2K", "4K"
aspect_ratio string predeterminado "auto""auto", "1:1", "3:2", "2:3", "4:3", "3:4", "5:4", "4:5", "16:9", "9:16", "2:1", "1:2", "3:1", "1:3", "21:9", "9:21" Omitido = auto.
background string predeterminado "auto""auto", "opaque", "transparent" Los valores distintos de auto solo se permiten en 1K.
duration string predeterminado "0"Enviar "0".

Reglas

  • generation_type debe ser text-to-image o image-to-image; prompt obligatorio, máximo 20000 caracteres (422).
  • aspect_ratio auto (u omitido) solo admite 1K (422).
  • 1:1 no admite 4K (422).
  • 5:4, 4:5, 3:1, 1:3 y 9:21 no se admiten en 2K; 3:1, 1:3 y 9:21 no se admiten en 4K (422).
  • background distinto de auto solo se permite en 1K (422).
  • Asíncrono: POST devuelve {generation_id, status:'processing'}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url.

Ejemplo de cuerpo de solicitud

{
  "mode": "gpt-image-2",
  "generation_type": "text-to-image",
  "prompt": "A modern storefront poster with the headline \"Summer Sale\" in bold serif type",
  "duration": "0",
  "aspect_ratio": "auto",
  "resolution": "1K",
  "images": []
}

image-to-image

Edita/combina hasta 16 imágenes de referencia a partir de un prompt con GPT Image 2.

ParámetroValores y notas
prompt string · obligatorioObligatorio, no vacío, máximo 20000 caracteres.
images string[] · obligatorio1-16 URLs de imágenes de referencia.
resolution string afecta el precio predeterminado "1K""1K", "2K", "4K"
aspect_ratio string predeterminado "auto""auto", "1:1", "3:2", "2:3", "4:3", "3:4", "5:4", "4:5", "16:9", "9:16", "2:1", "1:2", "3:1", "1:3", "21:9", "9:21" Omitido = auto.
background string predeterminado "auto""auto", "opaque", "transparent" Los valores distintos de auto solo se permiten en 1K.
duration string predeterminado "0"Enviar "0".

Archivos de entrada

  • images: 1-16 URLs de imágenes de referencia.

Carpetas de carga para /api/storage/upload

  • image: image-generator

Reglas

  • generation_type debe ser text-to-image o image-to-image; prompt obligatorio, máximo 20000 caracteres (422).
  • aspect_ratio auto (u omitido) solo admite 1K (422).
  • 1:1 no admite 4K (422).
  • 5:4, 4:5, 3:1, 1:3 y 9:21 no se admiten en 2K; 3:1, 1:3 y 9:21 no se admiten en 4K (422).
  • background distinto de auto solo se permite en 1K (422).
  • image-to-image requiere un array de images no vacío (o image) (400).
  • Como máximo 16 imágenes de referencia (400).
  • Asíncrono: POST devuelve {generation_id, status:'processing'}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url.

Ejemplo de cuerpo de solicitud

{
  "mode": "gpt-image-2",
  "generation_type": "image-to-image",
  "prompt": "A modern storefront poster with the headline \"Summer Sale\" in bold serif type",
  "duration": "0",
  "aspect_ratio": "auto",
  "resolution": "1K",
  "images": [
    "https://example.com/ref.jpg"
  ]
}

Modo GPT Image 2.5: gpt-image-2-5

text-to-image

Genera imágenes más nítidas y detalladas a partir de un prompt con GPT Image 2.5 (Flare/Sunburst).

ParámetroValores y notas
prompt string · obligatorioObligatorio, no vacío, máximo 20000 caracteres.
gptImage25Version string predeterminado "flare""flare", "sunburst" Nivel de calidad; flare y sunburst actualmente cuestan lo mismo.
resolution string afecta el precio predeterminado "1K""1K", "2K", "4K"
aspect_ratio string predeterminado "auto""auto", "1:1", "3:2", "2:3", "4:3", "3:4", "16:9", "9:16", "21:9", "27:16", "16:27", "9:8", "8:9" Omitido = auto. 27:16, 16:27, 9:8, 8:9 son solo 1K.
background string predeterminado "auto""auto", "opaque", "transparent" Disponible en todas las resoluciones.
duration string predeterminado "0"Enviar "0".

Reglas

  • generation_type debe ser text-to-image o image-to-image; prompt obligatorio, máximo 20000 caracteres (422).
  • 27:16, 16:27, 9:8, 8:9 solo están disponibles en 1K (422).
  • Asíncrono: POST devuelve {generation_id, status:'processing'}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url.

Ejemplo de cuerpo de solicitud

{
  "mode": "gpt-image-2-5",
  "generation_type": "text-to-image",
  "prompt": "A cinematic night city poster with neon reflections on a rainy street",
  "duration": "0",
  "aspect_ratio": "auto",
  "resolution": "1K",
  "gptImage25Version": "flare",
  "background": "auto",
  "images": []
}

image-to-image

Edita hasta 16 imágenes de referencia con mayor fidelidad de referencia usando GPT Image 2.5.

ParámetroValores y notas
prompt string · obligatorioObligatorio, no vacío, máximo 20000 caracteres.
images string[] · obligatorio1-16 URLs de imágenes de referencia.
gptImage25Version string predeterminado "flare""flare", "sunburst" Nivel de calidad; flare y sunburst actualmente cuestan lo mismo.
resolution string afecta el precio predeterminado "1K""1K", "2K", "4K"
aspect_ratio string predeterminado "auto""auto", "1:1", "3:2", "2:3", "4:3", "3:4", "16:9", "9:16", "21:9", "27:16", "16:27", "9:8", "8:9" Omitido = auto. 27:16, 16:27, 9:8, 8:9 son solo 1K.
background string predeterminado "auto""auto", "opaque", "transparent" Disponible en todas las resoluciones.
duration string predeterminado "0"Enviar "0".

Archivos de entrada

  • images: 1-16 URLs de imágenes de referencia.

Carpetas de carga para /api/storage/upload

  • image: image-generator

Reglas

  • generation_type debe ser text-to-image o image-to-image; prompt obligatorio, máximo 20000 caracteres (422).
  • 27:16, 16:27, 9:8, 8:9 solo están disponibles en 1K (422).
  • image-to-image requiere un array de images no vacío (o image) (400).
  • Como máximo 16 imágenes de referencia (400).
  • Asíncrono: POST devuelve {generation_id, status:'processing'}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url.

Ejemplo de cuerpo de solicitud

{
  "mode": "gpt-image-2-5",
  "generation_type": "image-to-image",
  "prompt": "A cinematic night city poster with neon reflections on a rainy street",
  "duration": "0",
  "aspect_ratio": "auto",
  "resolution": "1K",
  "gptImage25Version": "flare",
  "background": "auto",
  "images": [
    "https://example.com/ref.jpg"
  ]
}

Modo Qwen Image 2.1: qwen-image-2-1

text-to-image

Genera imágenes (incluidos PNG transparentes nativos) a partir de un prompt con Qwen Image 2.1.

ParámetroValores y notas
prompt string · obligatorioObligatorio, no vacío, máximo 5000 caracteres.
resolution string afecta el precio predeterminado "1K""1K", "2K"
aspect_ratio string predeterminado "1:1""1:1", "4:3", "3:4", "3:2", "2:3", "16:9", "9:16" Text-to-image predeterminado 1:1; auto no está disponible.
background string predeterminado "opaque""opaque", "transparent" transparent devuelve un PNG transparente nativo; 'auto' se rechaza.
duration string predeterminado "0"Enviar "0".

Reglas

  • generation_type debe ser text-to-image o image-to-image; prompt obligatorio, máximo 5000 caracteres (422).
  • resolution debe ser 1K o 2K (422).
  • background debe ser opaque o transparent (422).
  • Relaciones de aspecto text-to-image: 1:1, 4:3, 3:4, 3:2, 2:3, 16:9, 9:16 (auto se rechaza, 422).
  • mask_url se rechaza para text-to-image (422).
  • Asíncrono: POST devuelve {generation_id, status:'processing'}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url.

Ejemplo de cuerpo de solicitud

{
  "mode": "qwen-image-2-1",
  "generation_type": "text-to-image",
  "prompt": "A glossy cartoon sticker of a corgi astronaut, transparent background",
  "duration": "0",
  "aspect_ratio": "1:1",
  "resolution": "1K",
  "background": "transparent",
  "images": []
}

image-to-image

Edita hasta 10 imágenes de referencia, o realiza inpainting en una imagen con máscara, usando Qwen Image 2.1.

ParámetroValores y notas
prompt string · obligatorioObligatorio, no vacío, máximo 5000 caracteres.
images string[] · obligatorio1-10 URLs de imágenes de referencia (exactamente 1 con mask_url).
resolution string afecta el precio predeterminado "1K""1K", "2K"
aspect_ratio string predeterminado "auto""auto", "1:1", "4:3", "3:4", "3:2", "2:3", "16:9", "9:16" Image-to-image predeterminado auto. Cuando mask_url está configurado, auto siempre se usa.
background string predeterminado "opaque""opaque", "transparent" transparent devuelve un PNG transparente nativo; 'auto' se rechaza.
mask_url stringURL de máscara en blanco y negro para inpainting; blanco = área a cambiar.
duration string predeterminado "0"Enviar "0".

Archivos de entrada

  • images: 1-10 URLs de imágenes de referencia (exactamente 1 al usar máscara).
  • mask: mask_url opcional (PNG en blanco y negro, blanco = área de edición).

Carpetas de carga para /api/storage/upload

  • image: image-generator
  • mask: image-generator

Reglas

  • generation_type debe ser text-to-image o image-to-image; prompt obligatorio, máximo 5000 caracteres (422).
  • resolution debe ser 1K o 2K (422).
  • background debe ser opaque o transparent (422).
  • image-to-image requiere un array de images no vacío (o image) (400).
  • Como máximo 10 imágenes de referencia (422).
  • mask_url requiere exactamente 1 imagen y no se puede combinar con background=transparent (422); con máscara, aspect_ratio siempre es auto.
  • Relaciones de aspecto image-to-image: auto, 1:1, 4:3, 3:4, 3:2, 2:3, 16:9, 9:16 (422).
  • Asíncrono: POST devuelve {generation_id, status:'processing'}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url.

Ejemplo de cuerpo de solicitud

{
  "mode": "qwen-image-2-1",
  "generation_type": "image-to-image",
  "prompt": "A glossy cartoon sticker of a corgi astronaut, transparent background",
  "duration": "0",
  "aspect_ratio": "auto",
  "resolution": "1K",
  "background": "opaque",
  "images": [
    "https://example.com/ref.jpg"
  ]
}

Modo Virtual Try-On: virtual-try-on

image-to-image

Viste a la persona en una foto con 1-3 imágenes de prendas.

ParámetroValores y notas
images string[] · obligatorio[foto de la persona, 1-3 imágenes de prendas]; images[0] siempre es la persona.
prompt stringInstrucción adicional opcional añadida a la instrucción integrada de probador virtual, máximo 1000 caracteres.
aspect_ratio string predeterminado "auto""auto", "1:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9" Omítelo o envía auto para seguir la proporción de la foto de la persona.
duration string predeterminado "0"Envía "0".

Archivos de entrada

  • images: images[0] = URL de la foto de la persona, images[1..3] = 1-3 URLs de imágenes de prendas.

Carpetas de subida para /api/storage/upload

  • image: virtual-try-on

Reglas

  • generation_type debe ser image-to-image (422).
  • images debe ser [persona, 1-3 imágenes de prendas] (422).
  • prompt máximo 1000 caracteres (422).
  • aspect_ratio debe ser auto o uno de 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9 (422).
  • Asíncrono: POST devuelve {generation_id, status:'processing'}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url.

Ejemplo de cuerpo de solicitud

{
  "mode": "virtual-try-on",
  "generation_type": "image-to-image",
  "prompt": "",
  "duration": "0",
  "images": [
    "https://example.com/person.jpg",
    "https://example.com/garment.jpg"
  ]
}

Modo Product Holding: product-holding

image-to-image

Coloca 1-3 imágenes de producto en las manos de la persona en una foto.

ParámetroValores y notas
images string[] · obligatorio[foto de la persona, 1-3 imágenes de producto]; images[0] siempre es la persona.
prompt stringInstrucción adicional opcional añadida a la instrucción integrada de product-holding, máximo 1000 caracteres.
aspect_ratio string predeterminado "auto""auto", "1:1", "2:3", "3:2", "3:4", "4:3", "4:5", "5:4", "9:16", "16:9" Omítelo o envía auto para seguir la proporción de la foto de la persona.
duration string predeterminado "0"Envía "0".

Archivos de entrada

  • images: images[0] = URL de la foto de la persona, images[1..3] = 1-3 URLs de imágenes de producto.

Carpetas de subida para /api/storage/upload

  • image: virtual-try-on

Reglas

  • generation_type debe ser image-to-image (422).
  • images debe ser [persona, 1-3 imágenes de producto] (422).
  • prompt máximo 1000 caracteres (422).
  • aspect_ratio debe ser auto o uno de 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9 (422).
  • Asíncrono: POST devuelve {generation_id, status:'processing'}. Consulta GET /api/video-generation/{generation_id}/status hasta que status='completed'; la primera URL de imagen está en video_url y todas las imágenes de salida están en result_images (array). La respuesta de estado no tiene campo image_url.

Ejemplo de cuerpo de solicitud

{
  "mode": "product-holding",
  "generation_type": "image-to-image",
  "prompt": "",
  "duration": "0",
  "images": [
    "https://example.com/person.jpg",
    "https://example.com/product.jpg"
  ]
}

Modelos de audio

Texto a voz, música, voz a texto y limpieza de audio. Los resultados de audio se devuelven en video_url con media_kind "audio".

Modelomodegeneration_type
Grok TTSgrok-ttstext-to-speech
Eleven v4eleven-v4text-to-speech
Eleven v4 Turboeleven-v4-turbotext-to-speech
Lyria 3.5 (Texto a Música)lyria-musictext-to-music
Lyria 3.5 (Imagen a Música)lyria-musictext-to-music
Scribe V2scribe-v2speech-to-text
VEED Clean Audioveed-clean-audioremove-background-noise

Modo Grok TTS: grok-tts

text-to-speech

Convierte texto a voz con xAI Grok TTS, con voz, idioma y códec de salida seleccionables.

ParámetroValores y notas
prompt string · obligatorio afecta el precio1–15000 Texto a hablar (se envía tal cual, nunca se traduce automáticamente). La longitud se cuenta en caracteres.
duration string predeterminado "0""0" Envía "0" (el audio no tiene entrada de duración).
voice string predeterminado "eve""carina", "zagan", "helix", "orion", "luna", "iris", "altair", "zenith", "perseus", "helios", "lux", "kepler", "rigel", "cosmo", "celeste", "ursa", "sirius", "lumen", "castor", "naksh", "atlas", "aurora", "liora", "ara", "eve", "leo", "rex", "sal" Nombre de la voz.
language string predeterminado "auto""auto", "en", "zh", "ja", "ko", "fr", "de", "it", "es-ES", "es-MX", "pt-BR", "pt-PT", "ru", "tr", "vi", "id", "hi", "bn", "ar-EG", "ar-SA", "ar-AE" Idioma BCP-47; 'auto' = detección automática.
audio_codec string predeterminado "mp3""mp3", "wav", "pcm", "mulaw", "alaw" Formato de salida. pcm/mulaw/alaw son datos sin procesar sin cabecera (solo descarga, no reproducibles en un navegador).
sample_rate number predeterminado 240008000, 16000, 22050, 24000, 44100, 48000 Frecuencia de muestreo de salida en Hz.
bit_rate number predeterminado 12800032000, 64000, 96000, 128000, 192000 Solo se aplica cuando audio_codec es mp3. El máximo depende de sample_rate: hasta 8000 Hz → 64000, hasta 24000 Hz → 160000 (por lo que 128000 es el valor más alto permitido), por encima → 192000.
seed numberAceptado por compatibilidad con versiones anteriores; puede omitirse.

Reglas

  • prompt es obligatorio y debe ser no vacío después de recortar; máximo 15000 caracteres.
  • generation_type debe ser 'text-to-speech'; text-to-speech solo acepta modos eleven-v4-turbo, eleven-v4, grok-tts.
  • voice, language, audio_codec, sample_rate y bit_rate deben ser uno de los valores listados cuando se proporcionen, de lo contrario 400.
  • bit_rate por encima del máximo para sample_rate (sample_rate predeterminado a 24000 cuando se omite) se rechaza con 400.
  • Campos solo de Eleven (stability, similarity_boost, audio_output_format, text_normalization, timestamps=true) se rechazan con 400.

Resultado

Async: POST devuelve {generation_id, status:'processing'}. Consulta GET /api/video-generation/{id}/status; cuando status='completed', video_url es el archivo de audio generado, media_kind es 'audio', y video_metadata da content_type/file_name/file_size. Sin letras/transcripción/marcas de tiempo.

Ejemplo de cuerpo de solicitud

{
  "mode": "grok-tts",
  "generation_type": "text-to-speech",
  "prompt": "Welcome to Veevid. Let's make something amazing today.",
  "duration": "0",
  "voice": "eve",
  "language": "auto",
  "audio_codec": "mp3",
  "sample_rate": 24000,
  "bit_rate": 128000
}

Modo Eleven v4: eleven-v4

text-to-speech

Convierte texto a voz con ElevenLabs Eleven v4, el nivel de mayor calidad.

ParámetroValores y notas
prompt string · obligatorio afecta el precio1–5000 Texto a hablar (no se traduce automáticamente). Máximo 5000 caracteres.
duration string predeterminado "0""0" Envía "0".
voice string predeterminado "Rachel""Rachel", "Aria", "Roger", "Sarah", "Laura", "Charlie", "George", "Callum", "River", "Liam", "Charlotte", "Alice", "Matilda", "Will", "Jessica", "Eric", "Chris", "Brian", "Daniel", "Lily", "Bill" Nombre de voz preestablecido (sensible a mayúsculas).
language string predeterminado "auto""auto", "en", "zh", "yue", "es", "pt", "fr", "de", "it", "ja", "ko", "hi", "ar", "ru", "af", "as", "ast", "az", "be", "bg", "bn", "bs", "ca", "ceb", "cs", "cy", "da", "el", "et", "fa", "fi", "fil", "gl", "gu", "ha", "he", "hr", "hu", "hy", "id", "is", "jv", "ka", "kk", "kn", "ky", "lb", "ln", "lt", "lv", "mi", "mk", "ml", "mn", "mr", "ms", "mt", "my", "ne", "nl", "no", "oc", "or", "pa", "pl", "ps", "ro", "sd", "sk", "sl", "so", "sr", "sv", "sw", "ta", "te", "tg", "th", "tr", "uk", "ur", "uz", "vi" Código ISO 639-1 (algunos códigos de 3 letras: yue, ast, ceb, fil); 'auto' = dejar que el modelo detecte.
stability number predeterminado 0.50–1 Más bajo = más expresivo, más alto = más estable.
similarity_boost number predeterminado 0.750–1 Más alto = más cercano a la voz original.
seed number0–4294967295 Semilla entera; omítela para una semilla aleatoria.
audio_output_format string predeterminado "mp3_44100_128""mp3_22050_32", "mp3_44100_32", "mp3_44100_64", "mp3_44100_96", "mp3_44100_128", "mp3_44100_192", "opus_48000_32", "opus_48000_64", "opus_48000_96", "opus_48000_128", "opus_48000_192", "pcm_8000", "pcm_16000", "pcm_22050", "pcm_24000", "pcm_44100", "pcm_48000", "ulaw_8000", "alaw_8000" codec_samplerate_bitrate. opus ->.ogg; pcm/ulaw/alaw son archivos sin procesar sin cabecera (.pcm/.ulaw/.alaw).
text_normalization string predeterminado "auto""auto", "on", "off" Si los números/fechas/abreviaturas se expanden antes de la síntesis.
timestamps boolean predeterminado falseDevuelve marcas de tiempo por carácter en la respuesta de estado.

Reglas

  • prompt es obligatorio y no vacío después de recortar; máximo 5000 caracteres.
  • generation_type debe ser 'text-to-speech'.
  • Campos solo de Grok audio_codec / sample_rate / bit_rate se rechazan con 400 (usa audio_output_format).
  • voice, language, audio_output_format y text_normalization deben ser uno de los valores listados cuando se proporcionen, de lo contrario 400.
  • stability y similarity_boost deben ser números finitos en [0,1]; seed debe ser un entero en [0, 4294967295].

Resultado

Async: consulta GET /api/video-generation/{id}/status. Al completarse, video_url es el archivo de audio generado y media_kind es 'audio'. Si se envió timestamps:true, la respuesta también tiene 'timestamps': un array de grupos de palabras como {characters:[...], character_start_times_seconds:[...], character_end_times_seconds:[...]} (solo presente cuando no está vacío).

Ejemplo de cuerpo de solicitud

{
  "mode": "eleven-v4",
  "generation_type": "text-to-speech",
  "prompt": "Welcome to Veevid. Let's make something amazing today.",
  "duration": "0",
  "voice": "Rachel",
  "language": "auto",
  "stability": 0.5,
  "similarity_boost": 0.75,
  "audio_output_format": "mp3_44100_128",
  "text_normalization": "auto",
  "timestamps": false
}

Modo Eleven v4 Turbo: eleven-v4-turbo

text-to-speech

Convierte texto a voz con ElevenLabs Eleven v4 Turbo: la mitad del precio de Eleven v4, con menor latencia.

ParámetroValores y notas
prompt string · obligatorio afecta el precio1–5000 Texto a hablar (no se traduce automáticamente). Máximo 5000 caracteres.
duration string predeterminado "0""0" Envía "0".
voice string predeterminado "Rachel""Rachel", "Aria", "Roger", "Sarah", "Laura", "Charlie", "George", "Callum", "River", "Liam", "Charlotte", "Alice", "Matilda", "Will", "Jessica", "Eric", "Chris", "Brian", "Daniel", "Lily", "Bill" Nombre de voz preestablecido (sensible a mayúsculas).
language string predeterminado "auto""auto", "en", "zh", "yue", "es", "pt", "fr", "de", "it", "ja", "ko", "hi", "ar", "ru", "af", "as", "ast", "az", "be", "bg", "bn", "bs", "ca", "ceb", "cs", "cy", "da", "el", "et", "fa", "fi", "fil", "gl", "gu", "ha", "he", "hr", "hu", "hy", "id", "is", "jv", "ka", "kk", "kn", "ky", "lb", "ln", "lt", "lv", "mi", "mk", "ml", "mn", "mr", "ms", "mt", "my", "ne", "nl", "no", "oc", "or", "pa", "pl", "ps", "ro", "sd", "sk", "sl", "so", "sr", "sv", "sw", "ta", "te", "tg", "th", "tr", "uk", "ur", "uz", "vi" Misma lista de idiomas que eleven-v4.
stability number predeterminado 0.50–1
similarity_boost number predeterminado 0.750–1
seed number0–4294967295 Semilla entera; omítela para una semilla aleatoria.
audio_output_format string predeterminado "mp3_44100_128""mp3_22050_32", "mp3_44100_32", "mp3_44100_64", "mp3_44100_96", "mp3_44100_128", "mp3_44100_192", "opus_48000_32", "opus_48000_64", "opus_48000_96", "opus_48000_128", "opus_48000_192", "pcm_8000", "pcm_16000", "pcm_22050", "pcm_24000", "pcm_44100", "pcm_48000", "ulaw_8000", "alaw_8000"
text_normalization string predeterminado "auto""auto", "on", "off"
timestamps boolean predeterminado falseDevuelve marcas de tiempo por carácter en la respuesta de estado.

Reglas

  • Mismas reglas de validación que eleven-v4; solo difiere el precio.

Resultado

Igual que eleven-v4: video_url es el archivo de audio generado; array 'timestamps' opcional cuando timestamps:true.

Ejemplo de cuerpo de solicitud

{
  "mode": "eleven-v4-turbo",
  "generation_type": "text-to-speech",
  "prompt": "Welcome to Veevid. Let's make something amazing today.",
  "duration": "0",
  "voice": "Rachel",
  "language": "auto",
  "stability": 0.5,
  "similarity_boost": 0.75,
  "audio_output_format": "mp3_44100_128",
  "text_normalization": "auto",
  "timestamps": false
}

Modo Lyria 3.5 (Texto a Música): lyria-music

text-to-music

Genera una pista musical (aproximadamente 1-2 minutos, vocal o instrumental) a partir de un prompt de texto con Google Lyria 3.5.

ParámetroValores y notas
prompt string · obligatorio1–5000 Descripción de la música (estilo, estado de ánimo, instrumentos, tempo, estructura). No hay parámetro de duración; la longitud solo puede describirse en el prompt (mínimo observado ~60s).
duration string predeterminado "0""0" Envía "0".
image stringURL https de imagen de referencia única opcional.

Archivos de entrada

  • image: Opcional, 1 URL https de imagen (jpeg/png/webp, máximo 10MB; súbela con POST /api/storage/upload). Solo se usa una imagen.

Carpetas de subida para /api/storage/upload

  • image: lyria-music

Reglas

  • el prompt es obligatorio y no vacío tras recortarlo; máximo 5000 caracteres.
  • generation_type debe ser 'text-to-music' (y text-to-music solo acepta lyria-music).
  • image y cada entrada de images, si se proporcionan, deben comenzar con https://.
  • Los prompts que imitan cantantes reales o letras con derechos de autor son rechazados por el modelo; los créditos no utilizados se reembolsan automáticamente.

Resultado

Asíncrono: consulta GET /api/video-generation/{id}/status. Al completarse, video_url es el archivo de audio de música generado y media_kind es 'audio'. 'lyrics' (cadena) solo está presente cuando la pista tiene voces; es marcado Lyria sin procesar (etiquetas de sección como [[A0]], sincronización de líneas como [12.0:]), así que límpialo antes de mostrarlo.

Ejemplo de cuerpo de solicitud

{
  "mode": "lyria-music",
  "generation_type": "text-to-music",
  "prompt": "Upbeat lo-fi hip hop with warm piano chords, soft vinyl crackle and a relaxed 80 BPM groove. About two minutes long.",
  "duration": "0"
}

Modo Lyria 3.5 (Imagen a Música): lyria-music

text-to-music

Genera música que coincida con el estado de ánimo de una imagen de referencia más un prompt de texto con Google Lyria 3.5 (imagen a música).

ParámetroValores y notas
prompt cadena · obligatorio1–5000 Sigue siendo obligatorio. Ejemplo: 'Música instrumental de fondo que coincida con el estado de ánimo de esta imagen. De aproximadamente un minuto de duración.'
image cadenaURL https de la imagen de referencia; la entrada principal para imagen a música (opcional a nivel de API).
duration cadena predeterminado "0""0" Envía "0".

Archivos de entrada

  • image: 1 URL https de imagen (jpeg/png/webp, máx. 10MB; súbela con POST /api/storage/upload). Solo se usa una imagen.

Carpetas de carga para /api/storage/upload

  • image: lyria-music

Reglas

  • Mismo modo, generation_type, validación y precio que la entrada de text-to-music; no hay un generation_type separado de 'image-to-music'.
  • image debe ser https; aún se requiere un prompt.

Resultado

Igual que text-to-music: video_url es el archivo de audio de música; 'lyrics' opcional.

Ejemplo de cuerpo de solicitud

{
  "mode": "lyria-music",
  "generation_type": "text-to-music",
  "prompt": "Instrumental background music that matches the mood of this image. About one minute long.",
  "duration": "0",
  "image": "https://cdn.veevid.ai/image-to-music/i2m-sample-coffee.webp"
}

Modo Scribe V2: scribe-v2

speech-to-text

Transcribe un archivo de audio a texto con diarización de hablantes y etiquetas de eventos de audio usando ElevenLabs Scribe V2.

ParámetroValores y notas
audio cadena · obligatorioURL https del archivo de audio a transcribir.
input_audio_duration número · obligatorio afecta el precio0–3600 Duración del audio en segundos (debe ser > 0, máx. 3600); envía la duración real. Base de facturación: ceil(segundos/60) minutos, mín. 1.
duration cadena predeterminado "0""0" Envía "0".
diarize booleano predeterminado trueIdentifica hablantes.
tag_audio_events booleano predeterminado trueEtiqueta eventos no verbales como [laughter].
keyterms matriz<string> afecta el precioNombres propios/marcas para sesgar el reconocimiento; máx. 100 elementos, cada uno no vacío y <=50 caracteres. Envíalo solo cuando no esté vacío; keyterms aumentan el precio.

Archivos de entrada

  • audio: 1 URL https de audio; solo.mp3,.wav,.m4a,.ogg,.flac,.aac (no se admiten archivos de video como mp4). Máx. 60 minutos; súbelo con POST /api/storage/upload (máx. 100MB).

Carpetas de carga para /api/storage/upload

  • audio: speech-to-text/audio

Reglas

  • generation_type debe ser 'speech-to-text' y viceversa.
  • audio es obligatorio y debe ser una URL https; audios (matriz) se rechaza: solo un archivo.
  • Si la URL tiene una extensión de archivo, debe ser una de.mp3.wav.m4a.ogg.flac.aac; se aceptan URLs sin extensión.
  • input_audio_duration es obligatorio, > 0 y <= 3600 segundos.
  • keyterms: máx. 100, cada uno no vacío y <= 50 caracteres tras recortarlo.
  • Envía input_audio_duration igual a la duración real del audio (segundos); si se declara de menos, la diferencia se cobra después de la transcripción.
  • Las transcripciones fallidas se reembolsan automáticamente.
  • Para cotizar, envía la URL https audio y input_audio_duration (la cotización verifica la URL pero no la descarga).

Resultado

Asíncrono y rápido (consulta GET /api/video-generation/{id}/status, p. ej., cada 4s). Al completarse: objeto 'transcript' {v:1, language (ISO 639-3, p. ej., 'eng', o null), duration (segundos, fin de la última palabra), speakers (recuento), text (texto completo), cues: [{s: start_sec, e: end_sec, p: speaker_index_or_null, t: text}]}. Nota: video_url aquí es la URL del audio fuente original (no un archivo de resultado) y se conserva durante 14 días. media_kind 'audio'.

Ejemplo de cuerpo de solicitud

{
  "mode": "scribe-v2",
  "generation_type": "speech-to-text",
  "duration": "0",
  "audio": "https://example.com/interview.mp3",
  "input_audio_duration": 95.4,
  "diarize": true,
  "tag_audio_events": true
}

Modo VEED Clean Audio: veed-clean-audio

remove-background-noise

Elimina el ruido de fondo de un archivo de audio o video y devuelve un archivo de audio limpio y normalizado en sonoridad con VEED Clean Audio.

ParámetroValores y notas
audio cadena · obligatorioURL https del archivo de audio O video a limpiar (video: solo se usa la pista de audio).
input_audio_duration número · obligatorio afecta el precio0–1800 Duración del medio en segundos (debe ser > 0, máx. 1800); envía la duración real.
duration cadena predeterminado "0""0" Envía "0".
strength número predeterminado 0.8740–1 Cuánto del fondo original se conserva bajo el habla; piso de supresión = 1 - strength (0.874 = -18 dB). El silencio entre palabras siempre se limpia.
target_lufs número|null predeterminado -19-40–-8 Sonoridad integrada de salida (LUFS). null = deshabilitar normalización de sonoridad (conservar volumen original); omitido = -19. Solo ganancia, pico limitado a -1.1 dBTP, por lo que los objetivos altos pueden no alcanzarse.
audio_output_format cadena predeterminado "flac""flac", "wav" La salida siempre es 48kHz mono 16-bit

Archivos de entrada

  • audio: 1 URL https; audio.mp3.wav.m4a.aac.ogg.opus.flac o video.mp4.mov.m4v.webm. Máx. 30 minutos y 512MB (súbelo con POST /api/storage/presign-upload, consulta Cargas de Archivos). El video sin pista de audio falla y los créditos se reembolsan automáticamente.

Reglas

  • generation_type debe ser 'remove-background-noise' y viceversa.
  • audio es obligatorio y debe ser una URL https; audios (matriz) se rechaza: solo un archivo.
  • Si la URL tiene una extensión de archivo, debe ser una de.mp3.wav.m4a.aac.ogg.opus.flac.mp4.mov.m4v.webm; se aceptan URLs sin extensión.
  • input_audio_duration es obligatorio, > 0 y <= 1800 segundos (30 minutos).
  • strength debe estar en [0,1]; target_lufs debe ser null o estar en [-40,-8]; audio_output_format debe ser flac o wav.
  • Envía input_audio_duration igual a la duración real del medio (segundos); si se declara de menos, la diferencia se cobra después del procesamiento.
  • Las generaciones fallidas (p. ej., 'File has no audio track') se reembolsan automáticamente.
  • Para cotizar, envía la URL https audio y input_audio_duration (la cotización verifica la URL pero no la descarga).

Resultado

Asíncrono (el procesamiento toma aproximadamente 0.2-0.35x la duración del medio; consulta GET /api/video-generation/{id}/status). Al completarse, video_url es el archivo de audio limpio (.flac o.wav) y media_kind es 'audio'. Sin lyrics/transcript/timestamps.

Ejemplo de cuerpo de solicitud

{
  "mode": "veed-clean-audio",
  "generation_type": "remove-background-noise",
  "duration": "0",
  "audio": "https://example.com/noisy-recording.mp3",
  "input_audio_duration": 162.3,
  "strength": 0.874,
  "target_lufs": -19,
  "audio_output_format": "flac"
}

Herramientas y Efectos de Video

Mejora, redimensiona, edita, extiende, inserta tomas, intercambia personajes, sincroniza labios, controla movimiento y aplica efectos de video.

Modelomodegeneration_type
Kling 3.0 Motion Controlmotion-control-standardmotion-control
Kling 3.0 Motion Controlmotion-control-promotion-control
AI Hug Video Generatorai-hugai-hug
AI Kissing Video Generatorai-kissingai-kissing
AI Video Upscalerupscalevideo-upscale
AI Video Resizerreframevideo-reframe
Wan 2.7 Editwan-2.7-editedit-video
Wan 3.0wan-3.0edit-video, video-extend
Seedance 2.0seedance-2.0edit-video, video-extend
Seedance 2.5seedance-2.5edit-video, video-extend
LTX 2.3ltx-2-3video-extend
MiniMax H3 Maxminimax-h3-max-extendvideo-extend
MiniMax H3 Maxminimax-h3-max-insertvideo-insert
MiniMax H3 Maxminimax-h3-max-recastcharacter-swap
Video Lip Syncvideo-lip-synclip-sync
Google Veo 3.1veo3video-extend
Grok Imaginegrok-imaginevideo-extend

Modo Kling 3.0 Motion Control: motion-control-standard

motion-control

Transfiere el movimiento de un video guía al personaje en una imagen de referencia (Kling 3.0 Motion Control, Standard).

ParámetroValores y notas
image cadena · obligatorioURL pública de la imagen del personaje.
video cadena · obligatorioURL pública del video guía (referencia de movimiento).
duration cadena (segundos enteros) · obligatorio afecta el precioDuración del video guía como un número entero de segundos, redondeado hacia arriba (p. ej., "5"; los decimales se rechazan); determina el precio. Cuando el video guía está en el almacenamiento de Veevid, el servidor también lo mide y cobra por la duración medida si esta es mayor.
character_orientation cadena · obligatorio"image", "video" 'image' conserva la orientación del personaje de la imagen (video hasta 10s); 'video' sigue el video (hasta 30s).
model_version cadena afecta el precio predeterminado "motion-control-standard""motion-control-standard", "motion-control-pro" Opcional; el nivel Pro se usa cuando mode o model_version es motion-control-pro.
prompt cadenaGuía de texto opcional, p. ej., 'Sin distorsión, los movimientos del personaje son consistentes con el video.' Omítelo si está en blanco.
keep_original_sound booleano predeterminado trueConserva el audio del video guía.
elements matrizComo máximo 1 elemento: {frontal_image_url?: cadena, reference_image_urls: cadena[1-3]}. Solo se permite cuando character_orientation es 'video'. Envía [] cuando no se use.
aspect_ratio cadena"original" Envía 'original'; la salida sigue las entradas.

Archivos de entrada

  • image: 1 URL de imagen del personaje (JPEG/PNG/WebP, máx. 10MB)
  • video: 1 URL de video guía; hasta 10s cuando character_orientation=image, hasta 30s cuando =video (mp4/webm/mov, máx. 200MB)
  • images: imágenes de elementos opcionales mediante elements[0].frontal_image_url y elements[0].reference_image_urls (1-3)

Carpetas de carga para /api/storage/upload

  • image: kling-motion-control/reference-images
  • video: kling-motion-control/reference-videos
  • images: kling-motion-control/reference-images

Reglas

  • image, video y character_orientation son obligatorios (400 de lo contrario).
  • elements solo se permite cuando character_orientation=video; como máximo 1 elemento con 1-3 reference_image_urls.
  • Envía duration igual a la duración del video guía en segundos enteros (redondeado hacia arriba).
  • duration debe ser un número entero de segundos (los decimales se rechazan); máx. 10 cuando character_orientation=image, máx. 30 cuando =video (400 de lo contrario).
  • mode motion-control-standard / motion-control-pro debe usarse con generation_type motion-control, y viceversa (400 de lo contrario).
  • Si el video de salida es más largo que la duración cobrada, la diferencia se cobra después de la generación; si tu saldo no puede cubrirla, el resultado no se entrega y la generación falla sin reembolso.

Ejemplo de cuerpo de solicitud

{
  "mode": "motion-control-standard",
  "generation_type": "motion-control",
  "model_version": "motion-control-standard",
  "prompt": "No distortion, the character's movements are consistent with the video.",
  "image": "https://cdn.veevid.ai/sample/motion-control-image-1.webp",
  "video": "https://cdn.veevid.ai/sample/motion-control-video-1.mp4",
  "duration": "5",
  "aspect_ratio": "original",
  "character_orientation": "image",
  "keep_original_sound": true,
  "elements": []
}

Modo Kling 3.0 Motion Control: motion-control-pro

motion-control

Transfiere el movimiento de un video guía al personaje en una imagen de referencia con calidad Pro (Kling 3.0 Motion Control, Pro).

ParámetroValores y notas
image string · obligatorioURL pública de la imagen del personaje.
video string · obligatorioURL pública del video de conducción (referencia de movimiento).
duration string (segundos enteros) · obligatorio afecta el precioDuración del video de conducción como número entero de segundos, redondeado hacia arriba (p. ej. "5"; los decimales se rechazan); determina el precio. Cuando el video de conducción está en el almacenamiento de Veevid, el servidor también lo mide y cobra por la duración medida si esta es mayor.
character_orientation string · obligatorio"image", "video" 'image': video de hasta 10s; 'video': video de hasta 30s.
model_version string afecta el precio predeterminado "motion-control-pro""motion-control-standard", "motion-control-pro" Opcional; el nivel Pro se usa cuando mode o model_version es motion-control-pro.
prompt stringGuía de texto opcional (omitir si está en blanco).
keep_original_sound boolean predeterminado trueConserva el audio del video de conducción.
elements arrayComo máximo 1 elemento: {frontal_image_url?: string, reference_image_urls: string[1-3]}; solo con character_orientation='video'. Enviar [] cuando no se use.
aspect_ratio string"original" Enviar 'original'; la salida sigue las entradas.

Archivos de entrada

  • image: 1 URL de imagen del personaje (JPEG/PNG/WebP, máx. 10MB)
  • video: 1 URL de video de conducción; hasta 10s cuando character_orientation=image, hasta 30s cuando =video (máx. 200MB)
  • images: imágenes de elementos opcionales mediante elements[0].frontal_image_url y elements[0].reference_image_urls (1-3)

Carpetas de subida para /api/storage/upload

  • image: kling-motion-control/reference-images
  • video: kling-motion-control/reference-videos
  • images: kling-motion-control/reference-images

Reglas

  • image, video y character_orientation son obligatorios (400 en caso contrario).
  • elements solo se permiten cuando character_orientation=video; como máximo 1 elemento con 1-3 reference_image_urls.
  • Enviar duration igual a la duración del video de conducción en segundos enteros (redondeado hacia arriba).
  • duration debe ser un número entero de segundos (los decimales se rechazan); máx. 10 cuando character_orientation=image, máx. 30 cuando =video (400 en caso contrario).
  • mode motion-control-standard / motion-control-pro debe usarse con generation_type motion-control, y viceversa (400 en caso contrario).
  • Si el video de salida es más largo que la duración cobrada, la diferencia se cobra después de la generación; si tu saldo no puede cubrirla, el resultado no se entrega y la generación falla sin reembolso.

Ejemplo de cuerpo de solicitud

{
  "mode": "motion-control-pro",
  "generation_type": "motion-control",
  "model_version": "motion-control-pro",
  "prompt": "No distortion, the character's movements are consistent with the video.",
  "image": "https://cdn.veevid.ai/sample/motion-control-image-1.webp",
  "video": "https://cdn.veevid.ai/sample/motion-control-video-1.mp4",
  "duration": "5",
  "aspect_ratio": "original",
  "character_orientation": "video",
  "keep_original_sound": true,
  "elements": []
}

Modo Generador de Video de Abrazo con IA: ai-hug

ai-hug

Genera un video de dos personas (o una persona y una mascota) a partir de dos fotos separadas abrazándose en una escena descrita.

ParámetroValores y notas
prompt string · obligatorioSolo la frase de la escena (máx. 500 caracteres). Se envuelve automáticamente en una plantilla fija que referencia las dos fotos como @Element1/@Element2; no escribas el prompt completo.
images string[] · obligatorioExactamente 2 URLs de imagen: [persona A, persona B]; images[0] = @Element1.
resolution string afecta el precio predeterminado "720p""720p", "1080p", "4k" Usa resolution, no video_quality.
duration string afecta el precio predeterminado "5"3–15 Segundos enteros.
aspect_ratio string predeterminado "16:9""16:9", "9:16", "1:1"
generate_audio boolean afecta el precio predeterminado falseGenera audio ambiental.

Archivos de entrada

  • images: exactamente 2 URLs de imagen, un sujeto cada una (hasta 10MB por foto)

Carpetas de subida para /api/storage/upload

  • image: ai-hug

Reglas

  • mode y generation_type deben ser ambos 'ai-hug'
  • images debe contener exactamente 2 URLs
  • prompt (escena) es obligatorio y de máximo 500 caracteres
  • resolution debe ser 720p, 1080p o 4k; duration entero 3-15; aspect_ratio 16:9, 9:16 o 1:1
  • scene_template se rechaza para este modo (solo ai-kissing lo acepta)

Ejemplo de cuerpo de solicitud

{
  "mode": "ai-hug",
  "generation_type": "ai-hug",
  "prompt": "They spot each other in a sunlit park, walk closer and share a warm, tight hug.",
  "images": [
    "https://example.com/person-a.jpg",
    "https://example.com/person-b.jpg"
  ],
  "resolution": "720p",
  "duration": "5",
  "aspect_ratio": "16:9",
  "generate_audio": false
}

Modo Generador de Video de Beso con IA: ai-kissing

ai-kissing

Genera un video de dos adultos besándose, ya sea a partir de dos fotos separadas o de una foto de ambas personas.

ParámetroValores y notas
prompt string · obligatorioSolo la frase de la escena (máx. 500 caracteres); puede referirse a las dos personas únicamente como @Element1 y @Element2 (ortografía exacta). Se envuelve automáticamente en una plantilla fija.
images string[] · obligatorio1 URL (una foto de ambas personas, usada como primer fotograma) o 2 URLs ([persona 1, persona 2], images[0] = @Element1). El conteo selecciona el modo de entrada.
scene_template string predeterminado "default""default", "stylized" 'stylized' para escenas de estilo anime/3D (elimina las restricciones de realismo).
resolution string afecta el precio predeterminado "720p""720p", "1080p", "4k" Usa resolution, no video_quality.
duration string afecta el precio3–15 Segundos enteros. Predeterminado 5 con 2 fotos, 8 con 1 foto.
aspect_ratio string predeterminado "16:9""16:9", "9:16", "1:1" Sin efecto en modo de una foto (la salida sigue la foto).
generate_audio boolean afecta el precio predeterminado false

Archivos de entrada

  • images: 1 URL de imagen (foto de pareja) o 2 URLs de imagen (una por persona); hasta 10MB por foto

Carpetas de subida para /api/storage/upload

  • image: ai-kissing

Reglas

  • mode y generation_type deben ser ambos 'ai-kissing' (el modo heredado 'normal' se rechaza)
  • images debe contener 1 o 2 URLs
  • prompt (escena) es obligatorio, máximo 500 caracteres; solo se permiten referencias @Element1/@Element2
  • scene_template debe ser default o stylized
  • resolution 720p/1080p/4k; duration entero 3-15; aspect_ratio 16:9, 9:16 o 1:1
  • Al cotizar con /api/quote, enviar images o input_image_count (1 o 2) — el modo de entrada decide la duración predeterminada (422 en caso contrario).

Ejemplo de cuerpo de solicitud

{
  "mode": "ai-kissing",
  "generation_type": "ai-kissing",
  "prompt": "Standing face to face in a sunlit park at golden hour, @Element1 tilts their head up and closes their eyes while @Element2 gently cups @Element1's face with one hand and leans in; they share a soft, tender kiss on the lips.",
  "images": [
    "https://example.com/person-1.jpg",
    "https://example.com/person-2.jpg"
  ],
  "scene_template": "default",
  "resolution": "720p",
  "duration": "5",
  "aspect_ratio": "16:9",
  "generate_audio": false
}

Modo Escalador de Video con IA: upscale

video-upscale

Escala un video existente a 720p, 1080p o 4K y opcionalmente aumenta su velocidad de fotogramas.

ParámetroValores y notas
video string · obligatorioURL del video fuente (campo singular).
video_quality string · obligatorio afecta el precio"720p", "1080p", "4K" Resolución objetivo. Enviar siempre video_quality.
target_fps number afecta el precio predeterminado 3015–60 Velocidad de fotogramas objetivo. Por encima de 30 fps cuesta más en 1080p y 4K.
duration string afecta el precio predeterminado "5"Duración del video fuente en segundos enteros, como cadena. Enviar la duración real del video fuente; determina el precio (5 cuando se omite).
video_source string"upload", "url" 'upload' para archivos subidos con POST /api/storage/upload, 'url' para un enlace externo. Con 'url', el enlace debe responder a una solicitud HEAD con un tipo de video compatible y ser <=200MB.
prompt string predeterminado "Upscale"Opcional; no tiene efecto y puede omitirse.

Archivos de entrada

  • video: 1 URL de video (mp4, mov, webm, m4v, mkv, avi, wmv, ts, vob, mpg, flv, 3gp o gif), hasta 200MB.

Carpetas de subida para /api/storage/upload

  • video: upscale-input

Reglas

  • video es obligatorio (400 'Video is required for video-upscale generation').
  • Cuando se envía, duration debe ser un entero positivo (400).
  • target_fps debe ser 15-60.
  • Con video_source 'url': la URL debe responder a una solicitud HEAD en 5s, tener un tipo de contenido o extensión de archivo de video compatible, y ser <=200MB.
  • El procesamiento es asíncrono: la respuesta tiene estado 'processing' y un generation_id para consultar.

Ejemplo de cuerpo de solicitud

{
  "mode": "upscale",
  "generation_type": "video-upscale",
  "prompt": "Upscale",
  "video": "https://cdn.veevid.ai/upscale-input/clip.mp4",
  "video_quality": "1080p",
  "target_fps": 30,
  "duration": "10",
  "video_source": "upload"
}

Modo Redimensionador de Video con IA: reframe

video-reframe

Cambia la relación de aspecto de un video usando IA para extender el fotograma (outpainting) en lugar de recortar.

ParámetroValores y notas
video string · obligatorioURL del video fuente (campo singular).
aspect_ratio string predeterminado "16:9""1:1", "16:9", "9:16", "4:3", "3:4", "21:9", "9:21" Relación de aspecto objetivo; usa uno de los valores listados (16:9 cuando se omite).
duration string afecta el precio predeterminado "5"Duración del video fuente en segundos enteros, como cadena. Enviar la duración real del video fuente.
prompt string predeterminado "Reframe Video"Descripción opcional de la escena para guiar las áreas extendidas. El literal 'Reframe Video' significa sin prompt.
video_source string"upload", "url" Opcional: 'upload' o 'url'.
video_quality string predeterminado "standard"Opcional; no tiene efecto (enviar 'standard' u omitir).

Archivos de entrada

  • video: 1 URL de video, hasta 100MB y hasta 30s.

Carpetas de subida para /api/storage/upload

  • video: reframe-input

Reglas

  • video es obligatorio (400 'Video is required for video-reframe generation').
  • Enviar siempre duration igual a la duración del video fuente (segundos enteros).
  • aspect_ratio debe ser uno de los 7 valores listados.
  • El video fuente debe tener como máximo 30s y 100MB.
  • El procesamiento es asíncrono: consulta el generation_id devuelto.

Ejemplo de cuerpo de solicitud

{
  "mode": "reframe",
  "generation_type": "video-reframe",
  "video": "https://cdn.veevid.ai/reframe-input/clip.mp4",
  "aspect_ratio": "9:16",
  "prompt": "Reframe Video",
  "duration": "8",
  "video_source": "upload",
  "video_quality": "standard"
}

Modo Edición Wan 2.7: wan-2.7-edit

edit-video

Edita un video existente de 2-10s según una instrucción de texto, con una imagen de referencia opcional.

ParámetroValores y notas
prompt string · obligatorioInstrucción de edición (obligatoria).
video string · obligatorioURL del video fuente (campo singular). MP4 o MOV, 2-10s, <=100MB.
duration string · obligatorio afecta el precio2–10 Duración de salida en segundos enteros (2-10). Para coincidir con la entrada, enviar la duración fuente redondeada hacia arriba.
video_quality string predeterminado "1080p""720p", "1080p" Resolución de salida. Mismo precio para ambas.
aspect_ratio string"auto", "16:9", "9:16", "1:1", "4:3", "3:4" Omitir (o enviar 'auto') para mantener la relación fuente.
audio_setting string predeterminado "auto""auto", "origin" 'auto' permite que el modelo genere audio; 'origin' conserva el audio fuente.
video_source string"upload", "url" 'upload' para archivos subidos con POST /api/storage/upload; 'url' para un enlace externo, que debe pasar una verificación HEAD (tipo de video compatible, <=100MB).
image stringURL de imagen de referencia opcional (http/https) para la edición.

Archivos de entrada

  • video: 1 URL de video fuente (MP4/MOV, 2-10s, <=100MB)
  • image: 1 URL de imagen de referencia opcional (jpg/png/webp)

Carpetas de subida para /api/storage/upload

  • video: edit-video-input
  • image: edit-video-ref

Reglas

  • Enviar siempre duration.
  • duration debe ser una cadena entera 2-10 (400).
  • video_quality, si se envía, debe ser 720p o 1080p; aspect_ratio, si se envía, debe ser auto, 16:9, 9:16, 1:1, 4:3 o 3:4 (400).
  • video (singular) es obligatorio (400 'Video is required for edit-video generation').
  • Con video_source 'url', el enlace debe pasar una verificación HEAD (tipo de video compatible, <=100MB).
  • Los videos fuente subidos a edit-video-input deben ser .mp4/.mov, hasta 100MB.
  • prompt es obligatorio.

Ejemplo de cuerpo de solicitud

{
  "mode": "wan-2.7-edit",
  "generation_type": "edit-video",
  "prompt": "Change the jacket to red leather",
  "video": "https://cdn.veevid.ai/edit-video-input/clip.mp4",
  "duration": "6",
  "video_quality": "720p",
  "audio_setting": "auto",
  "video_source": "upload"
}

Modo Wan 3.0: wan-3.0

edit-video

Edita un video fuente con una instrucción de texto más imágenes de referencia y audio opcionales, y te permite elegir la duración de salida.

ParámetroValores y notas
prompt string · obligatorioInstrucción de edición (obligatoria). Se le antepone automáticamente 'Edit Video 1: ' cuando no tiene una intención de edición.
videos string[] · obligatorio afecta al precio[URL del video fuente]. Los segundos del video fuente se facturan junto con los segundos de salida.
images string[]Imágenes de referencia opcionales, hasta 10.
audios string[]Archivos de audio de referencia opcionales, hasta 5.
duration string afecta al precio valor predeterminado "5"2–30 Duración de salida en segundos enteros (2-30); -1 (duración inteligente) se rechaza.
video_quality string afecta al precio valor predeterminado "720p""480p", "720p", "1080p" Resolución de salida.
aspect_ratio string valor predeterminado "adaptive""adaptive", "16:9", "9:16", "1:1", "4:3", "3:4" Usa uno de los valores enumerados; 'adaptive' mantiene la proporción del video fuente.
generate_audio boolean valor predeterminado trueGenerar una banda sonora.
input_video_duration number afecta al precio0–15 Duración del video fuente en segundos, redondeada hacia arriba. Envíalo siempre junto con el video fuente.
has_video_input booleanCampo solo para cotización: envía true a /api/quote junto con la duración del video fuente; /api/generate-video lo ignora.

Archivos de entrada

  • video: 1 URL de video fuente en videos[] (1-15s, hasta 100MB)
  • images: 0-10 URLs de imágenes de referencia (hasta 20MB cada una)
  • audio: 0-5 URLs de audio de referencia en audios[]

Carpetas de carga para /api/storage/upload

  • video: wan30/reference-videos
  • image: wan30
  • audio: wan30/audio

Reglas

  • Envía input_video_duration igual a la duración del video fuente (en segundos); los valores > 15 se rechazan (400).
  • duration debe ser un entero 2-30; -1 se rechaza (400).
  • input_video_duration + duration debe ser <= 30 (400).
  • Como máximo 10 imágenes, 5 videos y 5 audios (400).
  • videos[] debe contener el video fuente (400 'Video is required for edit-video generation').
  • prompt es obligatorio.
  • Al cotizar con /api/quote, agrega has_video_input: true y input_video_duration si envías el video fuente (el endpoint de cotización no lee URLs de video, por lo que el precio saldría demasiado bajo).

Ejemplo de cuerpo de solicitud

{
  "mode": "wan-3.0",
  "generation_type": "edit-video",
  "prompt": "Replace the skateboarder with a short-haired woman in a yellow raincoat",
  "videos": [
    "https://cdn.veevid.ai/wan30/reference-videos/clip.mp4"
  ],
  "duration": "5",
  "video_quality": "720p",
  "aspect_ratio": "adaptive",
  "generate_audio": true,
  "input_video_duration": 6
}

video-extend

Continúa un video subido (hasta 15s), manteniendo sus personajes, estilo y sonido.

ParámetroValores y notas
prompt stringQué sucede a continuación. Se le antepone automáticamente 'Extend Video 1 by N seconds.' cuando no hay una intención de extensión presente.
videos string[] · obligatorio afecta al precio[URL del video fuente]. No se necesita taskId.
duration string afecta al precio valor predeterminado "5"2–30 Duración del nuevo metraje en segundos. Debe ser <= 30 - segundos del video fuente.
video_quality string afecta al precio valor predeterminado "720p""480p", "720p", "1080p" Resolución de salida.
aspect_ratio string valor predeterminado "16:9""adaptive" Envía 'adaptive' para que la salida siga al video fuente; cuando se omite, se usa 16:9.
generate_audio boolean valor predeterminado trueGenerar audio.
input_video_duration number afecta al precio0–15 Duración del video fuente en segundos, redondeada hacia arriba. Envíalo siempre junto con el video fuente.

Archivos de entrada

  • video: 1 URL de video fuente en videos[] (1-15s, hasta 100MB)

Carpetas de carga para /api/storage/upload

  • video: wan30-extend

Reglas

  • Envía input_video_duration igual a la duración del video fuente (en segundos); los valores > 15 se rechazan (400).
  • duration debe ser un entero 2-30; -1 se rechaza; video fuente + duration debe ser <= 30 (400).
  • Como máximo 5 videos, 10 imágenes y 5 audios (400); solo se necesita el video fuente.
  • Se requiere un video fuente en videos[].
  • Al cotizar con /api/quote, agrega has_video_input: true y input_video_duration si envías el video fuente (el endpoint de cotización no lee URLs de video, por lo que el precio saldría demasiado bajo).

Ejemplo de cuerpo de solicitud

{
  "mode": "wan-3.0",
  "generation_type": "video-extend",
  "prompt": "She turns around and waves at the camera",
  "videos": [
    "https://cdn.veevid.ai/wan30-extend/clip.mp4"
  ],
  "duration": "5",
  "video_quality": "720p",
  "aspect_ratio": "adaptive",
  "generate_audio": true,
  "input_video_duration": 6
}

Modo Seedance 2.0: seedance-2.0

edit-video

Edita un video fuente (hasta 15s) usando un prompt más imágenes y audio de referencia opcionales.

ParámetroValores y notas
prompt string · obligatorioInstrucción de edición (obligatoria).
videos string[] · obligatorio afecta al precio[URL del video fuente]. La duración del video fuente se factura.
images string[]Imágenes de referencia opcionales; se usan hasta 9.
audios string[]Audio de referencia opcional; se usan hasta 3.
duration string afecta al precio valor predeterminado "5"4–15 Duración de salida en segundos, 4-15. Los valores fuera de rango se ajustan a 4-15.
video_quality string afecta al precio valor predeterminado "480p""480p", "720p", "1080p", "4k" Resolución de salida. 1080p y 4k requieren model_version 'seedance-2.0'; con mini o fast usa 480p o 720p.
aspect_ratio string valor predeterminado "16:9""auto", "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" 'auto' mantiene la proporción del video fuente. Usa uno de los valores enumerados.
model_version string afecta al precio valor predeterminado "seedance-2.0""seedance-2.0-mini", "seedance-2.0-fast", "seedance-2.0" Nivel de calidad/precio. Envía model_version explícitamente.
generate_audio boolean valor predeterminado trueGenerar audio.
input_video_duration number afecta al precio0–15 Duración del video fuente en segundos (se factura como mínimo 2s). Envíalo siempre junto con el video fuente.
has_video_input booleanCampo solo para cotización: envía true a /api/quote junto con la duración del video fuente; /api/generate-video lo ignora.

Archivos de entrada

  • video: 1 URL de video fuente en videos[] (hasta 15s y 200MB)
  • images: 0-9 URLs de imágenes de referencia (hasta 30MB cada una)
  • audio: 0-3 URLs de audio de referencia en audios[] (.wav/.mp3, hasta 15MB cada uno, 15s en total)

Carpetas de carga para /api/storage/upload

  • video: seedance20-edit
  • image: seedance20
  • audio: seedance20-edit/audio

Reglas

  • Envía input_video_duration igual a la duración del video fuente (en segundos); los valores > 15 se rechazan (400).
  • Envía model_version explícitamente; con seedance-2.0-mini o seedance-2.0-fast usa 480p o 720p.
  • videos[] debe contener el video fuente (400 'Video is required for edit-video generation').
  • Solo se usan las primeras 9 imágenes, 3 videos y 3 audios; duration se normaliza a 4-15 en lugar de rechazarse.
  • No compatible: output_format (mp4/mov solo es válido para Seedance 2.5).
  • Al cotizar con /api/quote, agrega has_video_input: true y input_video_duration si envías el video fuente (el endpoint de cotización no lee URLs de video, por lo que el precio saldría demasiado bajo).

Ejemplo de cuerpo de solicitud

{
  "mode": "seedance-2.0",
  "generation_type": "edit-video",
  "prompt": "Make it snow in the scene",
  "videos": [
    "https://cdn.veevid.ai/seedance20-edit/clip.mp4"
  ],
  "duration": "5",
  "video_quality": "480p",
  "aspect_ratio": "auto",
  "model_version": "seedance-2.0-fast",
  "generate_audio": true,
  "input_video_duration": 8
}

video-extend

Continúa un video subido por 4-15s con imágenes y audio de referencia opcionales.

ParámetroValores y notas
prompt stringQué sucede a continuación.
videos string[] · obligatorio afecta al precio[URL del video fuente]. No se necesita taskId.
images string[]Imágenes de referencia opcionales; se usan hasta 9.
audios string[]Audio de referencia opcional; se usan hasta 3.
duration string afecta al precio valor predeterminado "5"4–15 Duración del nuevo metraje en segundos; se ajusta a 4-15.
video_quality string afecta al precio valor predeterminado "480p""480p", "720p", "1080p", "4k" 1080p y 4k requieren model_version 'seedance-2.0'; con mini o fast usa 480p o 720p.
aspect_ratio string valor predeterminado "16:9""auto", "16:9", "9:16", "1:1", "4:3", "3:4", "21:9" 'auto' mantiene la proporción del video fuente.
model_version string afecta al precio valor predeterminado "seedance-2.0""seedance-2.0-mini", "seedance-2.0-fast", "seedance-2.0" Nivel de calidad/precio. Envía model_version explícitamente.
generate_audio boolean valor predeterminado trueGenerar audio.
input_video_duration number afecta al precio0–15 Duración del video fuente en segundos (se factura como mínimo 2s). Envíalo siempre junto con el video fuente.
has_video_input booleanCampo solo para cotización: envía true a /api/quote junto con la duración del video fuente; /api/generate-video lo ignora.

Archivos de entrada

  • video: 1 URL de video fuente en videos[] (<=15s; mp4/mov/webm hasta 200MB)
  • images: 0-9 URLs de imágenes de referencia
  • audio: 0-3 URLs de audio de referencia en audios[] (.wav/.mp3, hasta 15MB cada uno, 15s en total)

Carpetas de carga para /api/storage/upload

  • video: seedance20-extend
  • image: seedance20-extend
  • audio: seedance20-extend/audio

Reglas

  • Envía input_video_duration igual a la duración del video fuente (en segundos); los valores > 15 se rechazan (400).
  • Envía model_version explícitamente; con seedance-2.0-mini o seedance-2.0-fast usa 480p o 720p.
  • El video fuente es obligatorio en videos[].
  • Solo se usan las primeras 9 imágenes, 3 videos y 3 audios.
  • Las imágenes de referencia subidas a la carpeta seedance20-extend deben ser .jpg/.jpeg/.png/.tiff/.gif (no .webp).
  • Al cotizar con /api/quote, agrega has_video_input: true y input_video_duration si envías el video fuente (el endpoint de cotización no lee URLs de video, por lo que el precio saldría demasiado bajo).

Ejemplo de cuerpo de solicitud

{
  "mode": "seedance-2.0",
  "generation_type": "video-extend",
  "prompt": "The camera follows the runner across the bridge",
  "videos": [
    "https://cdn.veevid.ai/seedance20-extend/clip.mp4"
  ],
  "duration": "5",
  "video_quality": "480p",
  "aspect_ratio": "auto",
  "model_version": "seedance-2.0-fast",
  "generate_audio": true,
  "input_video_duration": 8
}

Modo Seedance 2.5: seedance-2.5

edit-video

Edita un video fuente (hasta 30s) con un prompt y referencias opcionales; la salida mantiene la duración y la proporción del video fuente.

ParámetroValores y notas
prompt string · obligatorioInstrucción de edición. Se le antepone automáticamente 'Edit the video: ' cuando no hay una palabra clave de edición (edit/add/remove/replace/change/...) presente.
videos string[] · obligatorio afecta al precio[URL del video fuente].
images string[]Imágenes de referencia opcionales; se usan hasta 30.
audios string[]Audio de referencia opcional; se usan hasta 10.
duration string · obligatorio afecta al precio"-1" Envía "-1". La salida de edición siempre coincide con la duración del video fuente.
video_quality string afecta al precio valor predeterminado "480p""480p", "720p", "1080p" Resolución de salida. Usa uno de los valores enumerados; la salida 1080p es HEVC de 10 bits.
aspect_ratio string valor predeterminado "auto""auto" Envía 'auto' u omítelo; las ediciones siempre mantienen la proporción del video fuente.
generate_audio boolean valor predeterminado trueGenerar audio.
input_video_duration number afecta al precio0–30 Duración del video fuente en segundos (se factura como mínimo 2s). Envíalo siempre junto con el video fuente.
output_format string valor predeterminado "mp4""mp4", "mov" Contenedor de salida opcional: mp4 o mov.
has_video_input booleanCampo solo para cotización: envía true a /api/quote junto con la duración del video fuente; /api/generate-video lo ignora.

Archivos de entrada

  • video: 1 URL de video fuente en videos[] (hasta 30s y 200MB)
  • images: 0-30 URLs de imágenes de referencia (hasta 30MB cada una)
  • audio: 0-10 URLs de audio de referencia en audios[] (.wav/.mp3, hasta 15MB cada uno)

Carpetas de carga para /api/storage/upload

  • video: seedance25-edit
  • image: seedance25
  • audio: seedance25-edit/audio

Reglas

  • duration debe ser un entero 4-30 o -1 (400); para ediciones envía -1.
  • Envía input_video_duration igual a la duración del video fuente (en segundos); los valores > 30 se rechazan (400).
  • output_format solo acepta mp4 o mov (400 en caso contrario).
  • videos[] debe contener el video fuente (400 'Video is required for edit-video generation').
  • Los resultados en 480p suelen ser borradores: la respuesta de estado incluye entonces seedance25_draft, y el borrador se puede mejorar una vez a una versión 1080p dentro de 7 días con POST /api/video-generation/{id}/upgrade-draft.
  • Al cotizar con /api/quote, agrega has_video_input: true y input_video_duration si envías el video fuente (el endpoint de cotización no lee URLs de video, por lo que el precio saldría demasiado bajo).

Ejemplo de cuerpo de solicitud

{
  "mode": "seedance-2.5",
  "generation_type": "edit-video",
  "prompt": "Replace the car with a red vintage convertible",
  "videos": [
    "https://cdn.veevid.ai/seedance25-edit/clip.mp4"
  ],
  "duration": "-1",
  "video_quality": "480p",
  "aspect_ratio": "auto",
  "generate_audio": true,
  "input_video_duration": 10
}

video-extend

Continúa un video subido por 4-30s con imágenes y audio de referencia opcionales.

ParámetroValores y notas
prompt stringQué sucede a continuación. Se le antepone automáticamente 'Continúa el video: ' cuando no hay una palabra clave de extensión (extend/continue/continuation).
videos string[] · obligatorio afecta al precio[URL del video fuente]. No se necesita taskId.
images string[]Imágenes de referencia opcionales; se usan hasta 30.
audios string[]Audio de referencia opcional; se usan hasta 10.
duration string afecta al precio valor por defecto "5"4–30 Duración del nuevo metraje en segundos. -1 permite que el modelo elija y se factura como la duración de la fuente (mínimo 4).
video_quality string afecta al precio valor por defecto "480p""480p", "720p", "1080p" Resolución de salida.
output_format string valor por defecto "mp4""mp4", "mov" mov usa H.264 + audio PCM y normalmente no se puede reproducir en navegadores.
aspect_ratio string valor por defecto "auto""auto" La salida sigue la relación de aspecto de la fuente.
generate_audio boolean valor por defecto trueGenerar audio.
input_video_duration number afecta al precio0–30 Duración de la fuente en segundos, redondeada hacia arriba (se factura al menos 2s). Envíalo siempre con el video fuente.
has_video_input booleanCampo solo para cotización: envía true a /api/quote junto con la duración del video fuente; /api/generate-video lo ignora.

Archivos de entrada

  • video: 1 URL de video fuente en videos[] (<=30s; mp4/mov/webm hasta 200MB)
  • images: 0-30 URLs de imágenes de referencia
  • audio: 0-10 URLs de audio de referencia en audios[] (.wav/.mp3, hasta 15MB cada uno, 30s en total)

Carpetas de carga para /api/storage/upload

  • video: seedance25-extend
  • image: seedance25-extend
  • audio: seedance25-extend/audio

Reglas

  • duration debe ser un entero 4-30 o -1 (400).
  • Envía input_video_duration igual a la duración del video fuente (en segundos); los valores > 30 se rechazan (400).
  • output_format solo acepta mp4 o mov (400).
  • Se requiere un video fuente en videos[].
  • Las imágenes de referencia cargadas en la carpeta seedance25-extend deben ser .jpg/.jpeg/.png/.tiff/.gif (no .webp).
  • Los resultados en 480p suelen ser borradores: la respuesta de estado incluye entonces seedance25_draft, y el borrador se puede mejorar una vez a una versión en 1080p dentro de 7 días con POST /api/video-generation/{id}/upgrade-draft.
  • Al cotizar con /api/quote, añade has_video_input: true y input_video_duration si envías el video fuente (el endpoint de cotización no lee URLs de video, por lo que el precio saldría demasiado bajo).

Ejemplo de cuerpo de solicitud

{
  "mode": "seedance-2.5",
  "generation_type": "video-extend",
  "prompt": "Continue the video: the dog runs to the beach",
  "videos": [
    "https://cdn.veevid.ai/seedance25-extend/clip.mp4"
  ],
  "duration": "5",
  "video_quality": "480p",
  "output_format": "mp4",
  "aspect_ratio": "auto",
  "generate_audio": true,
  "input_video_duration": 8
}

Modo LTX 2.3: ltx-2-3

video-extend

Extiende un video cargado entre 1 y 20 segundos al inicio o al final, con control opcional de la longitud del contexto.

ParámetroValores y notas
video string · obligatorioURL del video fuente (campo singular).
prompt stringDescripción opcional de la extensión.
duration string afecta al precio valor por defecto "5"1–20 Segundos a añadir (1-20). Se permiten decimales (p. ej., pasos de 0.5s).
extend_mode string valor por defecto "end""start", "end" Dónde añadir el metraje.
context number1–20 Segundos de la fuente que se usarán como contexto. Omítelo para que el modelo maximice el contexto.
video_source string"upload", "url" 'upload' para archivos cargados con POST /api/storage/upload; 'url' para un enlace externo, que debe pasar una verificación HEAD (tipo de video compatible, <=200MB).
aspect_ratio string valor por defecto "original""original" Opcional; envía 'original' u omítelo. La salida mantiene la relación de aspecto de la fuente.

Archivos de entrada

  • video: 1 URL de video fuente (mp4/mov/webm/m4v/gif, hasta 20s y 200MB)

Carpetas de carga para /api/storage/upload

  • video: video-generator-ltx23-extend

Reglas

  • duration debe ser un número entre 1 y 20 (400).
  • context, si se envía, debe ser 1-20.
  • video (singular) es obligatorio (400 'Video is required for LTX 2.3 extend generation').
  • No se usa taskId; model_version y video_quality no tienen efecto para extensiones.

Ejemplo de cuerpo de solicitud

{
  "mode": "ltx-2-3",
  "generation_type": "video-extend",
  "prompt": "The waves keep rolling in at sunset",
  "video": "https://cdn.veevid.ai/video-generator-ltx23-extend/clip.mp4",
  "duration": "5",
  "extend_mode": "end",
  "aspect_ratio": "original",
  "video_source": "upload"
}

Modo MiniMax H3 Max: minimax-h3-max-extend

video-extend

Continúa un clip cargado (1.625-60s) entre 5 y 15 segundos a una resolución de hasta 2K.

ParámetroValores y notas
prompt string · obligatorioQué sucede a continuación (obligatorio).
videos string[] · obligatorio[URL del video fuente]; exactamente uno. También se acepta el singular 'video'.
duration string afecta al precio valor por defecto "5"5–15 Segundos de metraje nuevo (segundos enteros).
video_quality string afecta al precio valor por defecto "768p""480p", "768p", "1080p", "2k", "2K" Resolución de salida.
aspect_ratio string valor por defecto "auto""auto", "21:9", "16:9", "4:3", "1:1", "3:4", "9:16" auto (o adaptive) sigue la fuente. Una relación fija recorta la salida. Si se omite, se usa auto, no 16:9.
extend_output string valor por defecto "extended""extended", "continuation" 'extended' devuelve la fuente + el metraje nuevo; 'continuation' devuelve solo el metraje nuevo más ~1.6s de la cola de la fuente.
prompt_expansion_mode string valor por defecto "balanced""balanced", "disabled" 'balanced' activa la expansión del prompt; 'disabled' la desactiva.
input_video_duration number1.625–60 Duración de la fuente en segundos (hasta 2 decimales). Se usa solo para validación; la fuente no se factura.
seed numberEntero opcional >= 0.

Archivos de entrada

  • video: 1 URL de video fuente en videos[] (1.625-60s, <=50MB, relación de aspecto 0.4-2.5; mp4/mov/webm/m4v)

Carpetas de carga para /api/storage/upload

  • video: minimax-h3-max-extend

Reglas

  • La duración de la fuente y extend_output no afectan al precio.
  • generation_type debe ser video-extend; duration debe ser un entero 5-15 (400).
  • Exactamente un video fuente; prompt es obligatorio; se rechazan imágenes y audio (400).
  • aspect_ratio debe ser auto/adaptive/21:9/16:9/4:3/1:1/3:4/9:16; video_quality debe ser 480p/768p/1080p/2k/2K (400).
  • Un input_video_duration declarado debe ser 1.625-60s (400).
  • El video fuente debe ser <=50MB con una relación de aspecto entre 0.4 y 2.5; las fuentes fuera de especificación fallan durante la generación. Carga la fuente con POST /api/storage/upload (la carga solo verifica el tamaño de 50MB).

Ejemplo de cuerpo de solicitud

{
  "mode": "minimax-h3-max-extend",
  "generation_type": "video-extend",
  "prompt": "The cat jumps onto the windowsill and looks outside",
  "videos": [
    "https://cdn.veevid.ai/minimax-h3-max-extend/clip.mp4"
  ],
  "duration": "5",
  "video_quality": "768p",
  "aspect_ratio": "auto",
  "extend_output": "extended",
  "prompt_expansion_mode": "balanced",
  "input_video_duration": 6.04
}

Modo MiniMax H3 Max: minimax-h3-max-insert

video-insert

Inserta una escena recién generada de 5-13 segundos entre dos puntos temporales de un video fuente.

ParámetroValores y notas
video string · obligatorioURL del video fuente (campo singular; 'videos' aquí significa videos de referencia).
prompt stringDescribe la nueva escena. Obligatorio a menos que se proporcionen imágenes o videos.
duration string afecta al precio valor por defecto "5"5–13 Duración de la nueva escena en segundos; se permiten decimales.
video_quality string afecta al precio valor por defecto "768p""480p", "768p" Resolución de salida.
start_time number · obligatorio1.625–60 Punto de corte en segundos (cuadrícula de fotogramas de 24 fps).
resume_time number · obligatorio1.667–60 Punto de reanudación en segundos. Debe estar al menos 1 fotograma (1/24s) después de start_time y dejar >= 33/24s (+0.25s de margen de seguridad) de la fuente después. La fuente entre start y resume se reemplaza.
images string[] afecta al precioImágenes de referencia para la nueva escena, hasta 9.
videos string[] afecta al precioVideos de referencia, hasta 3. Cada uno debe ser >= 2s, <= 15s en total, y cargarse con POST /api/storage/upload.
reference_video_duration number afecta al precio0–15 Envía la duración total de los videos de referencia en segundos. El servidor también mide los archivos y factura el valor medido si es más de 0.5s mayor; si se omite con videos de referencia, se factura el máximo de 15 segundos.
input_video_duration number0–60 Duración del video fuente en segundos; se usa para validar resume_time. La fuente no se factura.
color_match boolean valor por defecto trueIguala la gradación de color de la nueva escena a la de la fuente.
prompt_expansion_mode string valor por defecto "balanced""balanced", "disabled" Solo 'disabled' desactiva la expansión del prompt.
seed numberEntero opcional >= 0.

Archivos de entrada

  • video: 1 URL de video fuente en 'video' (aproximadamente 3.3-60s, <=50MB; mp4/mov/webm/m4v)
  • images: 0-9 URLs de imágenes de referencia en 'images' (jpg/png/webp)
  • videos: 0-3 URLs de videos de referencia en 'videos' (mp4/mov, cada uno >=2s, total <=15s, <=100MB cada uno, cargados con POST /api/storage/upload)

Carpetas de carga para /api/storage/upload

  • video: minimax-h3-max-insert
  • images: minimax-h3-max-insert/reference-images
  • videos: minimax-h3-max-insert/reference-videos

Reglas

  • Al enviar videos de referencia, envía siempre reference_video_duration igual a su duración total (en segundos).
  • generation_type debe ser video-insert; video_quality debe ser 480p o 768p (400).
  • duration debe ser 5-13 (400).
  • Exactamente una fuente en 'video'. Las imágenes de referencia deben usar 'images'; un 'image' singular se rechaza (400).
  • Se requiere un prompt, una imagen de referencia o un video de referencia; se rechaza el audio (400).
  • Los videos de referencia deben cargarse primero con POST /api/storage/upload; las URLs externas se rechazan (400). Cada uno debe ser >= 2s, el total <= 15s, y como máximo 3 videos y 9 imágenes.
  • start_time debe ser 1.625-60. resume_time debe ser > start_time por >= 1/24s y <= 60. Con una duración de fuente declarada, resume_time debe ser <= floor((source - 1.375 - 0.25) x 24)/24 (400).
  • Una duración de fuente declarada debe ser ~3.29-60s (400).
  • Al cotizar, envía input_image_count para imágenes de referencia, y para videos de referencia añade has_video_input: true, input_video_count y reference_video_duration (el endpoint de cotización no lee estos archivos, por lo que el precio saldría demasiado bajo).

Ejemplo de cuerpo de solicitud

{
  "mode": "minimax-h3-max-insert",
  "generation_type": "video-insert",
  "prompt": "A hot air balloon drifts across the sky",
  "video": "https://cdn.veevid.ai/minimax-h3-max-insert/clip.mp4",
  "duration": "5",
  "video_quality": "768p",
  "start_time": 3,
  "resume_time": 3.042,
  "input_video_duration": 10,
  "color_match": true,
  "prompt_expansion_mode": "balanced"
}

Modo MiniMax H3 Max: minimax-h3-max-recast

character-swap

Intercambia a las personas en un video de 5-30 segundos con personas de 1-4 fotos de referencia, manteniendo el movimiento, la cámara y el audio original.

ParámetroValores y notas
video string · obligatorioURL del video fuente (campo singular). Debe cargarse con POST /api/storage/upload, MP4/MOV, 5-30s, y sin ninguna toma individual de más de 15s.
images string[] · obligatorio1-4 fotos de referencia, una por persona nueva, mapeadas de izquierda a derecha por defecto.
prompt stringOpcional (<=2000 caracteres), p. ej., qué persona se convierte en quién.
video_quality string afecta al precio valor por defecto "1080p""768p", "1080p" Resolución de salida. Envía siempre video_quality.
input_video_duration number afecta al precio5–30 Duración de la fuente en segundos (hasta 2 decimales). Envía la duración real; el servidor mide el archivo y factura la duración medida.
seed numberEntero opcional >= 0.

Archivos de entrada

  • video: 1 URL de video fuente en 'video' (MP4/MOV, 5-30s, <=50MB, cargado con POST /api/storage/upload)
  • images: 1-4 URLs de fotos de referencia en 'images' (jpg/png/webp, <=20MB cada una)

Carpetas de carga para /api/storage/upload

  • video: minimax-h3-max-recast
  • images: minimax-h3-max-recast/reference-images

Reglas

  • Segundos = duración de la fuente medida por el servidor (mínimo 5). Las fotos de referencia son gratuitas.
  • generation_type debe ser character-swap; video_quality debe ser 768p o 1080p (400). Envía siempre video_quality.
  • Los archivos de entrada deben cargarse primero con POST /api/storage/upload (las URLs externas se rechazan).
  • Si la duración del video fuente no se puede leer desde su cabecera MP4/MOV, la solicitud devuelve 422 y no se cobra nada.
  • Una duración medida fuera de 5-30s (+-0.1s) se rechaza (400).
  • Si la duración medida supera el input_video_duration declarado en >0.1s, devuelve 409 con measured_duration y required_credits y no cobra nada; vuelve a enviar con input_video_duration = measured_duration.
  • Se requieren 1-4 imágenes; un 'image' singular, videos de referencia o audio se rechazan (400); prompt <= 2000 caracteres.
  • La duración y la relación de aspecto no son entradas: la salida coincide con la fuente.

Ejemplo de cuerpo de solicitud

{
  "mode": "minimax-h3-max-recast",
  "generation_type": "character-swap",
  "prompt": "Replace the man on the left with the person in photo 1",
  "video": "https://cdn.veevid.ai/minimax-h3-max-recast/clip.mp4",
  "images": [
    "https://cdn.veevid.ai/minimax-h3-max-recast/reference-images/person1.jpg"
  ],
  "video_quality": "768p",
  "input_video_duration": 8.04
}

Modo Video Lip Sync: video-lip-sync

lip-sync

Re-sincroniza los movimientos de la boca en un video existente con una nueva pista de voz; la duración de la salida es igual a la duración del audio.

ParámetroValores y notas
videos string[] · obligatorio[URL del video fuente]; solo se usa el primero. También se acepta el singular 'video'. Debe subirse con POST /api/storage/upload.
audios string[] · obligatorio[URL del audio de voz]; solo se usa el primero. También se acepta el singular 'audio'. Debe subirse con POST /api/storage/upload; use vocales limpias.
input_audio_duration number afecta el precio0–61 Envíe la duración del audio en segundos.
lip_sync_mode string predeterminado "lite""lite", "basic" lite: un solo hablante de frente, más rápido. basic: escenas complejas, múltiples tomas.
lip_sync_separate_vocal boolean predeterminado falseAislar vocales / suprimir ruido de fondo.
lip_sync_open_scenedet boolean predeterminado trueDetección de tomas y hablantes (solo basic).
lip_sync_align_audio boolean predeterminado trueRepetir el video cuando el audio es más largo (solo lite; siempre activo en basic).
lip_sync_align_audio_reverse boolean predeterminado falseRepetir reproduciendo en reversa (solo lite; requiere align_audio).
lip_sync_templ_start_seconds number predeterminado 00–3600 Desplazamiento de inicio en el video fuente, redondeado a segundos completos (solo lite).

Archivos de entrada

  • video: 1 URL de video fuente (mp4/mov, <=100MB, short side >=360p, subido con POST /api/storage/upload)
  • audio: 1 URL de audio de voz (mp3/wav/m4a/aac/ogg, <=10MB, <=60s, subido con POST /api/storage/upload)

Carpetas de subida para /api/storage/upload

  • video: video-lip-sync
  • audio: video-lip-sync/audio

Reglas

  • Envíe siempre input_audio_duration igual a la duración del audio (en segundos); si se omite, se le cobra el máximo de 60 segundos. Si la salida es más larga que lo declarado, la diferencia se cobra después del procesamiento (una longitud sobredeclarada no se reembolsa).
  • generation_type debe ser lip-sync (422).
  • El video y el audio deben subirse primero con POST /api/storage/upload; las URL externas se rechazan (422).
  • input_audio_duration > 61 se rechaza (422; el límite es 60s más 1s de tolerancia).
  • Sin prompt, duración ni relación de aspecto: la longitud de salida es igual al audio y la resolución sigue a la fuente.

Ejemplo de cuerpo de solicitud

{
  "mode": "video-lip-sync",
  "generation_type": "lip-sync",
  "videos": [
    "https://cdn.veevid.ai/video-lip-sync/clip.mp4"
  ],
  "audios": [
    "https://cdn.veevid.ai/video-lip-sync/audio/voice.mp3"
  ],
  "input_audio_duration": 12.4,
  "lip_sync_mode": "lite",
  "lip_sync_separate_vocal": false,
  "lip_sync_open_scenedet": true,
  "lip_sync_align_audio": true,
  "lip_sync_align_audio_reverse": false,
  "lip_sync_templ_start_seconds": 0
}

Modo Google Veo 3.1: veo3

video-extend

Extiende un video de Veo 3.1 que generó anteriormente, identificado por su ID de tarea.

ParámetroValores y notas
taskId string · obligatorio afecta el precioEl provider_task_id de una de sus generaciones anteriores de Veo 3.1 (devuelto cuando se creó y por el endpoint de estado).
prompt string · obligatorioQué sucede en la extensión. Obligatorio.
generation_mode string afecta el precio predeterminado "fast""lite", "fast", "quality" Nivel de calidad de la extensión.
watermark stringTexto de marca de agua personalizado opcional, <=200 caracteres.
duration string predeterminado "8""4", "6", "8" Debe ser 4, 6 u 8 si se envía; envíe "8".
aspect_ratio string predeterminado "original""original" Envíe "original" (el valor no se usa).

Reglas

  • taskId es obligatorio (400). Debe coincidir con una de sus generaciones (404 'Task not found') que le pertenezca (403).
  • La fuente debe ser un video de Veo 3.1 o Grok Imagine (400). Un taskId de Grok Imagine se ejecuta y se cobra como una extensión de Grok Imagine.
  • Las fuentes de Veo en 1080p y 4k se pueden extender.
  • Cuando taskId pertenece a un video de Grok Imagine, la solicitud se ejecuta y se factura como una extensión de Grok Imagine: envíe duration "6" o "10" (u omítalo), no "8".

Ejemplo de cuerpo de solicitud

{
  "mode": "veo3",
  "generation_type": "video-extend",
  "taskId": "veo_task_abc123",
  "prompt": "The drone keeps flying over the city at night",
  "generation_mode": "fast",
  "duration": "8",
  "aspect_ratio": "original"
}

Modo Grok Imagine: grok-imagine

video-extend

Extiende un video de Grok Imagine que generó anteriormente en 6 o 10 segundos desde un punto elegido.

ParámetroValores y notas
taskId string · obligatorio afecta el precioEl provider_task_id de una de sus generaciones anteriores de Grok Imagine.
prompt string · obligatorioQué sucede en la extensión. Obligatorio.
duration string afecta el precio predeterminado "6""6", "10" Segundos a añadir.
extend_at number predeterminado 0Posición de inicio en segundos (>= 0); 0 extiende desde el final del video.
aspect_ratio string predeterminado "original""original" Envíe "original" (el valor no se usa).

Reglas

  • duration debe ser '6' o '10' (400 'Grok Imagine Extend only supports 6s or 10s durations').
  • taskId es obligatorio, debe existir (404) y pertenecerle (403). La fuente debe ser un video de Grok Imagine o Veo 3.1; un taskId de Veo 3.1 se ejecuta y se cobra como una extensión de Veo 3.1.

Ejemplo de cuerpo de solicitud

{
  "mode": "grok-imagine",
  "generation_type": "video-extend",
  "taskId": "grok_task_abc123",
  "prompt": "The knight raises his sword as the dragon lands",
  "duration": "6",
  "extend_at": 0,
  "aspect_ratio": "original"
}

Ejemplos de código

Generar una imagen (curl)

curl -X POST https://veevid.ai/api/generate-video \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "mode": "nano-banana-2",
    "generation_type": "text-to-image",
    "prompt": "A cozy coffee shop interior, morning light, watercolor style",
    "aspect_ratio": "1:1",
    "video_quality": "1K"
  }'

Para editar su propia foto, súbala a /api/storage/upload primero y envíe "generation_type": "image-to-image" con "images": ["UPLOADED_URL"].

Texto a voz (curl)

curl -X POST https://veevid.ai/api/generate-video \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "mode": "eleven-v4-turbo",
    "generation_type": "text-to-speech",
    "prompt": "Welcome to Veevid. Let us make something amazing today.",
    "voice": "Rachel"
  }'

Consulte el endpoint de estado; el archivo de audio está en video_url.

Python

import requests
import time

API_KEY = "vv_sk_your_key_here"
BASE = "https://veevid.ai/api"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}

# 1. Upload a first frame
with open("first_frame.jpg", "rb") as f:
    upload = requests.post(
        f"{BASE}/storage/upload",
        headers=HEADERS,
        files={"file": f},
        data={"folder": "video-generator-veo3"},
    ).json()

body = {
    "mode": "veo3",
    "generation_type": "image-to-video",
    "prompt": "The camera slowly pushes in, leaves rustle in the wind",
    "images": [upload["url"]],
    "video_quality": "standard",
}

# 2. Quote
quote = requests.post(f"{BASE}/quote", headers=HEADERS, json=body).json()
print(f"Cost: {quote['required_credits']} credits")

# 3. Generate
result = requests.post(f"{BASE}/generate-video", headers=HEADERS, json=body).json()
gen_id = result["generation_id"]

# 4. Poll
while True:
    status = requests.get(
        f"{BASE}/video-generation/{gen_id}/status", headers=HEADERS
    ).json()
    if status["status"] == "completed":
        print(f"Ready: {status['video_url']}")
        break
    if status["status"] == "failed":
        print(f"Failed: {status['error_message']}")
        break
    time.sleep(10)

JavaScript / TypeScript

const API_KEY = "vv_sk_your_key_here";
const BASE = "https://veevid.ai/api";
const headers = {
  Authorization: \`Bearer ${API_KEY}\`,
  "Content-Type": "application/json",
};

async function generate(body: Record<string, unknown>) {
  // 1. Quote
  const quote = await fetch(\`${BASE}/quote\`, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
  }).then((r) => r.json());
  console.log(\`Cost: ${quote.required_credits} credits\`);

  // 2. Generate
  const result = await fetch(\`${BASE}/generate-video\`, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
  }).then((r) => r.json());

  // 3. Poll
  while (true) {
    const status = await fetch(
      \`${BASE}/video-generation/${result.generation_id}/status\`,
      { headers }
    ).then((r) => r.json());

    if (status.status === "completed") return status.video_url;
    if (status.status === "failed") throw new Error(status.error_message);
    await new Promise((r) => setTimeout(r, 10000));
  }
}

await generate({
  mode: "kling-3",
  generation_type: "text-to-video",
  prompt: "A drone shot flying over a neon-lit city at night",
  duration: "5",
  generate_audio: true,
});

Agente OpenClaw

Instale la habilidad Veevid:

npx clawhub@latest install veevid

Luego dígale a su agente: "Genera un video de producto de 10 segundos con Kling 3.0"

El agente maneja las citas, la confirmación, la generación y la consulta automáticamente.

Códigos de error

CódigoSignificadoQué hacer
400Parámetros no válidosVerifique los valores permitidos para el modelo
401Clave API no válida o faltanteVerifique su clave en /settings/api-keys
402Créditos insuficientesRecargue en /pricing
403Cuenta suspendidaContacte al soporte
404Generación no encontradaVerifique el generation_id
409Conflicto: el video de entrada es más largo que la longitud declarada (intercambio de personaje), o un borrador no está listo / ya fue actualizadoNo se cobró nada; lea el error — para intercambio de personaje, reenvíe con el measured_duration de la respuesta
410El borrador ha expiradoGenere de nuevo
422Combinación de parámetros no compatible con el modeloLea el mensaje de error y las reglas del modelo
500Error del servidorEspere unos segundos y reintente
502No se pudo enviar una actualización de borrador (créditos reembolsados)Espere unos segundos y reintente

Formato de respuesta de error:

{
  "error": "Insufficient credits. You need 140 credits but only have 12.",
  "required": 140,
  "balance": 12
}

Límites

LímiteValor
Claves API por cuenta5 claves activas
Longitud del promptHasta 20,000 caracteres (específico del modelo)
Tamaño de subidaPor carpeta: 10MB para imágenes de forma predeterminada, mayor para carpetas de video/audio, y como máximo 100MB por solicitud de subida; 512MB mediante subida presignada (audio limpio)
Tasa de solicitudesSin límite fijo por clave hoy — su saldo de créditos es el límite. Consulte el estado cada 5–10 segundos en lugar de continuamente.