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ón | Valor |
|---|---|
| Endpoint | https://veevid.ai/api/mcp |
| Transporte | HTTP transmisible (POST, sin estado) |
| Autenticación | Encabezado 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.
| Herramienta | Qué hace |
|---|---|
list_models | Lista 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_credits | Devuelve tu saldo de créditos actual. |
get_quote | Devuelve el costo exacto en créditos de una solicitud (required_credits, current_balance, sufficient) sin ejecutarla. Gratis. |
generate | Inicia 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_generation | Devuelve 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_file | Sube 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_url | Devuelve 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_creations | Lista 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 presupuesto | Descripción |
|---|---|
input_image_count | Número de imágenes (0–16), para los modelos cuyas reglas lo solicitan |
has_video_input | Siempre 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_count | Número de videos de referencia (también lo leen MiniMax H3 Max y el modelo insert-shot) |
input_video_duration | Duración en segundos del video o videos de entrada / referencia |
reference_video_duration | Duración total de los videos de referencia para un insert-shot |
| has_audio_input, input_audio_count, input_audio_duration | Lo 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ámetro | Tipo | Descripción |
|---|---|---|
mode | string | Selector de modelo (ver Modelos). Requerido en la práctica: el valor predeterminado del servidor es un modelo heredado. |
generation_type | string | Qué 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". |
prompt | string | Prompt 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_ratio | string | "16:9", "9:16", "1:1", etc.: los valores permitidos dependen del modelo |
duration | string | Duración de salida en segundos, como string (específico del modelo). Para herramientas, suele ser la duración de tu video de entrada. |
video_quality | string | Nivel o resolución, según el modelo (p. ej. nivel Veo 3.1 "lite" / "standard" / "pro"; "720p" / "1080p"; modelos de imagen "1K" / "2K" / "4K") |
resolution | string | Resolución de salida para modelos que la toman por separado (p. ej. Veo 3.1 "720p" / "1080p" / "4k") |
image | string | URL de imagen única (primer fotograma, foto de personaje…) |
images | string[] | Múltiples URLs de imágenes (fotogramas de inicio/fin, imágenes de referencia, imágenes para editar) |
video | string | URL de video único (video fuente para herramientas) |
videos | string[] | URLs de videos de referencia |
audio | string | URL de audio (audio guía, audio para transcribir…). Algunos modelos toman un array audios en su lugar. |
model_version | string | Subvariante (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"]
}
| Campo | Descripción |
|---|---|
status | "processing" → "completed" o "failed" |
media_kind | "video", "image" o "audio" |
video_url | El archivo de resultado para todo tipo de medio: video, imagen o audio (para imágenes es la primera imagen) |
result_images | Todas las imágenes de salida, cuando un modelo devuelve más de una |
error_message | Por qué falló la generación (los créditos normalmente se reembolsan automáticamente) |
| lyrics, transcript, timestamps | Resultados de audio adicionales: letras de canciones (Lyria), la transcripción (Scribe V2) y marcas de tiempo de palabras (Eleven v4, cuando se solicitan) |
seedance25_draft | Solo 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.
| Consulta | Descripción |
|---|---|
page | Número de página, comenzando en 1 (predeterminado 1) |
pageSize | Elementos por página (predeterminado 12, máximo 50) |
generationType | Devuelve solo un generation_type, p. ej. "text-to-image" (predeterminado: todos) |
includeAudio | Las 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.
| Modelo | modo | generation_type |
|---|---|---|
| Google Veo 3.1 | veo3 | text-to-video, image-to-video, reference-to-video |
| Grok Imagine | grok-imagine | text-to-video, image-to-video |
| Kling 2.6 | kling-2-6 | text-to-video, image-to-video |
| Kling 3.0 | kling-3 | text-to-video, image-to-video |
| LTX 2.5 | ltx-2-5 | text-to-video, image-to-video |
| LTX 2.3 | ltx-2-3 | text-to-video, image-to-video |
| Wan Animate | wan-animate | image-to-video |
| Veevid 2.0 Pro | veevid-2.0-pro | text-to-video, image-to-video |
| Veevid 2.5 Pro | veevid-2.5-pro | text-to-video, image-to-video |
| Seedance 2.0 | seedance-2.0 | text-to-video, image-to-video, reference-to-video |
| Seedance 2.5 | seedance-2.5 | text-to-video, image-to-video, reference-to-video |
| Wan 2.6 | wan-2-6 | text-to-video, image-to-video, reference-to-video |
| Wan 2.7 | wan-2.7 | text-to-video, image-to-video, reference-to-video |
| Wan 3.0 | wan-3.0 | text-to-video, image-to-video, reference-to-video |
| MiniMax H3 | minimax-h3 | text-to-video, image-to-video, reference-to-video |
| MiniMax H3 Max | minimax-h3-max | text-to-video, image-to-video, reference-to-video |
| MiniMax H3 Max Camera Controls | minimax-h3-max-camera | camera-controls |
| MiniMax H3 Max Lip Sync | minimax-h3-max-lip-sync | lip-sync |
| Gemini Omni | gemini-omni | text-to-video, image-to-video, reference-to-video |
| Boreal | creatify-boreal | text-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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Descripció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 string | Texto 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Descripció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 string | Texto 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Descripción de la escena (obligatorio, no vacío). |
| images string[] · obligatorio | 1-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 string | Texto 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt 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 array | Array opcional de todas las URLs de imagen cuando se usa más de una imagen (la primera también va en image). |
| image string | URL 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt de texto (obligatorio, no vacío, máximo 20000 caracteres). |
| negative_prompt string | Cosas 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 true | Generar 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt de texto que describe el movimiento (obligatorio, no vacío). |
| image string · obligatorio | URL pública de la imagen del fotograma inicial. |
| negative_prompt string | Opcional: 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 true | Generar 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ámetro | Valores y notas |
|---|---|
| prompt string | Prompt 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 array | Prompts 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 false | Audio 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.5 | 0–1 Adherencia al prompt, 0-1 (paso 0.01). |
| negative_prompt string | Opcional: 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
durationa 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ámetro | Valores y notas |
|---|---|
| prompt string | Prompt de texto. Obligatorio a menos que se use multi_prompt; nunca enviar ambos no vacíos. |
| image string | URL 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 array | Array 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 false | Audio 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.5 | 0–1 |
| negative_prompt string | Prompt 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. 10MBimages: 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt 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 25 | 24, 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 true | Generar 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 precio | Audio 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 precio | 2–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 number | 1–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.
audiodebe subirse primero conPOST /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
audiosubida (la cotización mide el archivo). Antes de subir, envíahas_audio_input: trueyinput_audio_durationen 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ámetro | Valores y notas |
|---|---|
| prompt string | Prompt de texto que describe el movimiento. Obligatorio a menos que se envíe audio. |
| image string | URL 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 25 | 24, 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 true | Generar 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 precio | Audio 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 precio | 2–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 number | 1–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 fotogramaimages: Opcional: [start, end] - 2 URLs de imagen; la segunda se usa como último fotogramaaudio: 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.
audiodebe cargarse primero conPOST /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
audiocargada (la cotización mide el archivo). Antes de cargar, envíahas_audio_input: trueyinput_audio_durationen 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt 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 24 | 24, 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 true | Genera 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt de texto que describe el movimiento (obligatorio, no vacío, máx. 20000 caracteres). |
| image string | URL 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 24 | 24, 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 true | Genera 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ámetro | Valores y notas |
|---|---|
| image string · obligatorio | URL pública de la imagen del personaje. |
| video string · obligatorio | URL 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 string | Guía de texto opcional, máx. 5000 caracteres; puede estar vacío. |
| aspect_ratio string | Opcional; 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
durationigual 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt 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 true | Genera audio nativo. No cambia el precio. |
| seed integer predeterminado -1 | Semilla 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ámetro | Valores y notas |
|---|---|
| prompt string | Prompt de texto opcional (máx. 20000 caracteres). |
| image string | URL 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 true | Genera audio nativo. No cambia el precio. |
| seed integer predeterminado -1 | Semilla 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt 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 true | Generar audio nativo. No cambia el precio. |
| seed integer predeterminado -1 | Semilla 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 conPOST /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ámetro | Valores y notas |
|---|---|
| prompt string | Prompt de texto (máx. 20000 caracteres). Se requiere un prompt o al menos una imagen. |
| image string | URL 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 true | Generar audio nativo. No cambia el precio. |
| seed integer predeterminado -1 | Semilla 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 conPOST /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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt 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 true | Generar pista de audio nativa. |
| seed integer predeterminado -1 | Semilla 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ámetro | Valores y notas |
|---|---|
| prompt string | Prompt 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 true | Generar pista de audio nativa. |
| seed integer predeterminado -1 | Semilla aleatoria; -1 = aleatorio. |
| image string | URL 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ámetro | Valores y notas |
|---|---|
| prompt string | Prompt 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 true | Generar pista de audio nativa. |
| seed integer predeterminado -1 | Semilla 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 precio | URLs de videos de referencia (rol reference_video), mp4/mov. Máx. 3; los extras se ignoran. |
| input_video_duration number afecta el precio | 0–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 string | Opcional; 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_durationigual 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ñadehas_video_input: trueyinput_video_durationsi 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt 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 true | Genera una pista de audio nativa. Predeterminado true. |
| seed integer predeterminado -1 | Semilla 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_qualitycomo 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 conPOST /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ámetro | Valores y notas |
|---|---|
| prompt string | Prompt 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 true | Genera una pista de audio nativa. Predeterminado true. |
| seed integer predeterminado -1 | Semilla aleatoria; -1 = aleatoria. |
| image string | URL 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_qualitycomo 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
imageoimages(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 conPOST /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ámetro | Valores y notas |
|---|---|
| prompt string | Prompt 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 true | Genera una pista de audio nativa. Predeterminado true. |
| seed integer predeterminado -1 | Semilla aleatoria; -1 = aleatoria. |
| images array<string> | URLs de imágenes de referencia. Máx. 30. |
| videos array<string> afecta el precio | URLs 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 precio | 0–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 string | URL 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_qualitycomo 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_durationigual a la duración total de los videos de referencia (segundos) siempre que se envíevideos; 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 conPOST /api/video-generation/{id}/upgrade-draft. - Al cotizar con
/api/quote, añadehas_video_input: trueyinput_video_durationsi 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt de texto (máx. 20000 caracteres). Envía siempre un prompt no vacío. |
| negative_prompt string | Prompt 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 -1 | Semilla aleatoria; -1 = aleatoria, de lo contrario 0-2147483647. |
| enable_prompt_expansion boolean predeterminado true | Permite 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 string | URL 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt de texto (máx. 20000 caracteres). Envía siempre un prompt no vacío. |
| negative_prompt string | Prompt negativo opcional (máx. 2000 caracteres). Omítelo si está vacío. |
| image string · obligatorio | URL 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 -1 | Semilla aleatoria; -1 = aleatoria, si no 0-2147483647. |
| enable_prompt_expansion boolean valor por defecto true | Permite que el modelo reescriba/expanda el prompt. |
| shot_type string valor por defecto "single" | "single", "multi" multi = vídeo de múltiples tomas. |
| audio string | URL 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. 10MBaudio: 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt de texto (máx. 20000 caracteres). Envía siempre un prompt no vacío. |
| negative_prompt string | Prompt negativo opcional (máx. 2000 caracteres). Omítelo si está vacío. |
| videos array<string> · obligatorio | 1-3 URLs de vídeos de referencia. |
| video string | URL 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 -1 | Semilla aleatoria; -1 = aleatoria, si no 0-2147483647. |
| enable_prompt_expansion boolean valor por defecto true | Permite 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt de texto (máx. 20000 caracteres). Envía siempre un prompt no vacío. |
| negative_prompt string | Prompt 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 true | Permite que el modelo expanda el prompt. |
| audio string | URL de audio opcional para guiar el vídeo (mp3/ogg/wav/m4a/aac, máx. 15MB). |
| seed integer valor por defecto -1 | Semilla 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt de texto (máx. 20000 caracteres). Envía siempre un prompt no vacío. |
| negative_prompt string | Prompt negativo opcional (máx. 2000 caracteres). Omítelo si está vacío. |
| image string | URL 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 true | Permite que el modelo expanda el prompt. |
| audio string | URL de audio opcional para guiar el vídeo (mp3/ogg/wav/m4a/aac, máx. 15MB). |
| seed integer valor por defecto -1 | Semilla 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 fotogramaaudio: 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt de texto (máx. 20000 caracteres). Envía siempre un prompt no vacío. |
| negative_prompt string | Prompt 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 string | URL 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 -1 | Semilla 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt 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 true | Genera una banda sonora sincronizada (valor por defecto true; envía false para desactivarla). No cambia el precio. |
| seed integer | Aceptado 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ámetro | Valores y notas |
|---|---|
| prompt string | Prompt de movimiento/escena (opcional para imagen-a-vídeo). |
| image string | URL 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 true | Genera una banda sonora sincronizada (valor por defecto true; envía false para desactivarla). No cambia el precio. |
| seed integer | Aceptado 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ámetro | Valores y notas |
|---|---|
| prompt string | Instrucció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 precio | 0–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 string | URL 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 true | Genera una banda sonora sincronizada (predeterminado true; envía false para desactivarla). No cambia el precio. |
| seed integer | Aceptado 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 <= 15saudio: 0-5 URL de audio mediante audios (wav/mp3, máx. 15MB cada uno), combinados <= 15sfiles: 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íainput_video_durationigual a su duración total (segundos) - duration debe ser un entero 2-30; -1 se rechaza
- Al cotizar con
/api/quote, añadehas_video_input: trueyinput_video_durationsi 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt 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 string | URL 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íainput_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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt 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 precio | URL de imágenes de referencia, máx. 9. |
| videos string[] afecta el precio | URL 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 precio | 0–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 string | Audio 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_durationigual 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ñadehas_video_input: trueyinput_video_durationsi 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íainput_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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt 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 integer | Opcional; 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt 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 string | URL 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 integer | Opcional; un valor >= 0 fija la semilla aleatoria. |
Archivos de entrada
image: 1 URL de imagen pública usada como primer fotogramaimages: 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt 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 precio | URL de imágenes de referencia, máx. 9. Redimensiona las imágenes para que el borde largo sea <= 1024 px. |
| videos string[] afecta el precio | URL 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 precio | URL 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 precio | 0–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 precio | 0–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 integer | Opcional; 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_durationigual 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 coninput_image_count,has_video_input+input_video_count+input_video_duration, yhas_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ámetro | Valores y notas |
|---|---|
| image string | URL 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 array | Fotogramas 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 string | Opcional. 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 integer | Entero 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ámetro | Valores y notas |
|---|---|
| image string | URL 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[] · requerido | Exactamente 1 URL de audio conductor. El singular audio se acepta como respaldo si audios está ausente. |
| input_audio_duration number afecta el precio | 5–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 true | Transcribe el audio para guiar las formas de la boca. Por defecto es true. |
| seed integer | Entero 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ámetro | Valores y notas |
|---|---|
| prompt string · requerido | Prompt 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 precio | Opcional, como máximo 1 URL de video usado como referencia de movimiento/estilo. |
| input_video_duration number | 0–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 integer | 0–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ñadehas_video_input: trueyinput_video_durationsi 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ámetro | Valores y notas |
|---|---|
| prompt string · requerido | Prompt de texto, máximo 20000 caracteres. |
| images string[] · requerido | 1-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 precio | Opcional, como máximo 1 URL de video. |
| input_video_duration number | 0–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 integer | 0–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
imageo unimagesno 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ñadehas_video_input: trueyinput_video_durationsi 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ámetro | Valores y notas |
|---|---|
| prompt string · requerido | Prompt 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 precio | 0-1 URL de video de referencia. |
| input_video_duration number | 0–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 integer | 0–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ñadehas_video_input: trueyinput_video_durationsi 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt; 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 string | URL 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt; secciones opcionales [VISUAL]/[SPEECH]/[SOUNDS]/[TEXT]. |
| image string · obligatorio | 1 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 string | URL de audio opcional para guiar; el modelo sincroniza los labios con ella en lugar de generar voz. |
Archivos de entrada
image: 1 URL de imagenaudio: 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
imageoimagesno 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).
| Modelo | mode | generation_type |
|---|---|---|
| Google Nano Banana | nano-banana | text-to-image |
| Google Nano Banana (Edit) | nano-banana-edit | image-to-image |
| Google Nano Banana 2.1 | nano-banana-2-1 | text-to-image, image-to-image |
| Google Nano Banana 2 | nano-banana-2 | text-to-image, image-to-image |
| Flux Kontext | flux-kontext | text-to-image, image-to-image |
| Krea 3 | krea-3 | text-to-image, image-to-image |
| FLUX 3 Image | flux-3-image | text-to-image, image-to-image |
| Seedream 5.0 | seedream-5.0-lite | text-to-image, image-to-image |
| Seedream 5.0 Pro | seedream-5.0-pro | text-to-image, image-to-image |
| Seedream 5.0 Flash | seedream-5.0-flash | text-to-image, image-to-image |
| Ideogram 4.5 | ideogram-4-5 | text-to-image, image-to-image |
| GPT Image 2 | gpt-image-2 | text-to-image, image-to-image |
| GPT Image 2.5 | gpt-image-2-5 | text-to-image, image-to-image |
| Qwen Image 2.1 | qwen-image-2-1 | text-to-image, image-to-image |
| Virtual Try-On | virtual-try-on | image-to-image |
| Product Holding | product-holding | image-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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt de texto, hasta 20000 caracteres. |
| images string[] · obligatorio | URLs 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt de texto, hasta 5000 caracteres. |
| images string[] · obligatorio | 1-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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Prompt 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 false | Habilita la base de búsqueda de Google. |
| image_search boolean predeterminado false | Opcional; 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Indicación de texto, hasta 20000 caracteres. |
| images string[] · obligatorio | URLs 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 false | Habilita la fundamentación con Búsqueda de Google. |
| image_search boolean predeterminado false | Opcional; 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Indicació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 false | Mejora de la indicación (solo flux1). |
| enableTranslation boolean predeterminado false | Traducció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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Indicación de texto. |
| image string | URL 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 false | Mejora de la indicación (solo flux1). |
| enableTranslation boolean predeterminado false | Traducció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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Indicació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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Indicació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 precio | 1-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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Indicació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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Indicación de texto, hasta 5000 caracteres. |
| images string[] · obligatorio | 1-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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Indicació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 1 | 1–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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Indicación de texto. |
| images string[] · obligatorio | URLs 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 1 | 1–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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Indicació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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Indicación de texto, hasta 5000 caracteres. |
| images string[] · obligatorio afecta el precio | 1-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íainput_image_count(el número de imágenes) — la cotización no cuenta el array deimagespara 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Indicació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_ratioexplí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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Indicación de texto, máximo 5000 caracteres. |
| images string[] · obligatorio | 1-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_ratioexplí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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Obligatorio, no vacío, máximo 10000 caracteres. |
| quality string afecta el precio predeterminado "low" | "low", "medium", "high" |
| num_images number afecta el precio predeterminado 1 | 1–8 Imágenes por solicitud (1-8); el precio se multiplica por num_images. |
| enable_prompt_expansion boolean predeterminado true | Solo 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 number | Semilla 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Obligatorio, no vacío, máximo 10000 caracteres. |
| images string[] · obligatorio | images[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 1 | 1–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 string | URL 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 number | Semilla 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Obligatorio, 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Obligatorio, no vacío, máximo 20000 caracteres. |
| images string[] · obligatorio | 1-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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Obligatorio, 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Obligatorio, no vacío, máximo 20000 caracteres. |
| images string[] · obligatorio | 1-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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Obligatorio, 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Obligatorio, no vacío, máximo 5000 caracteres. |
| images string[] · obligatorio | 1-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 string | URL 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ámetro | Valores y notas |
|---|---|
| images string[] · obligatorio | [foto de la persona, 1-3 imágenes de prendas]; images[0] siempre es la persona. |
| prompt string | Instrucció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ámetro | Valores y notas |
|---|---|
| images string[] · obligatorio | [foto de la persona, 1-3 imágenes de producto]; images[0] siempre es la persona. |
| prompt string | Instrucció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".
| Modelo | mode | generation_type |
|---|---|---|
| Grok TTS | grok-tts | text-to-speech |
| Eleven v4 | eleven-v4 | text-to-speech |
| Eleven v4 Turbo | eleven-v4-turbo | text-to-speech |
| Lyria 3.5 (Texto a Música) | lyria-music | text-to-music |
| Lyria 3.5 (Imagen a Música) | lyria-music | text-to-music |
| Scribe V2 | scribe-v2 | speech-to-text |
| VEED Clean Audio | veed-clean-audio | remove-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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio afecta el precio | 1–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 24000 | 8000, 16000, 22050, 24000, 44100, 48000 Frecuencia de muestreo de salida en Hz. |
| bit_rate number predeterminado 128000 | 32000, 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 number | Aceptado 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio afecta el precio | 1–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.5 | 0–1 Más bajo = más expresivo, más alto = más estable. |
| similarity_boost number predeterminado 0.75 | 0–1 Más alto = más cercano a la voz original. |
| seed number | 0–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 false | Devuelve 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio afecta el precio | 1–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.5 | 0–1 |
| similarity_boost number predeterminado 0.75 | 0–1 |
| seed number | 0–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 false | Devuelve 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | 1–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 string | URL 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 conPOST /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ámetro | Valores y notas |
|---|---|
| prompt cadena · obligatorio | 1–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 cadena | URL 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 conPOST /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ámetro | Valores y notas |
|---|---|
| audio cadena · obligatorio | URL https del archivo de audio a transcribir. |
| input_audio_duration número · obligatorio afecta el precio | 0–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 true | Identifica hablantes. |
| tag_audio_events booleano predeterminado true | Etiqueta eventos no verbales como [laughter]. |
| keyterms matriz<string> afecta el precio | Nombres 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 conPOST /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_durationigual 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
audioyinput_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ámetro | Valores y notas |
|---|---|
| audio cadena · obligatorio | URL 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 precio | 0–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.874 | 0–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 conPOST /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_durationigual 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
audioyinput_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.
| Modelo | mode | generation_type |
|---|---|---|
| Kling 3.0 Motion Control | motion-control-standard | motion-control |
| Kling 3.0 Motion Control | motion-control-pro | motion-control |
| AI Hug Video Generator | ai-hug | ai-hug |
| AI Kissing Video Generator | ai-kissing | ai-kissing |
| AI Video Upscaler | upscale | video-upscale |
| AI Video Resizer | reframe | video-reframe |
| Wan 2.7 Edit | wan-2.7-edit | edit-video |
| Wan 3.0 | wan-3.0 | edit-video, video-extend |
| Seedance 2.0 | seedance-2.0 | edit-video, video-extend |
| Seedance 2.5 | seedance-2.5 | edit-video, video-extend |
| LTX 2.3 | ltx-2-3 | video-extend |
| MiniMax H3 Max | minimax-h3-max-extend | video-extend |
| MiniMax H3 Max | minimax-h3-max-insert | video-insert |
| MiniMax H3 Max | minimax-h3-max-recast | character-swap |
| Video Lip Sync | video-lip-sync | lip-sync |
| Google Veo 3.1 | veo3 | video-extend |
| Grok Imagine | grok-imagine | video-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ámetro | Valores y notas |
|---|---|
| image cadena · obligatorio | URL pública de la imagen del personaje. |
| video cadena · obligatorio | URL pública del video guía (referencia de movimiento). |
| duration cadena (segundos enteros) · obligatorio afecta el precio | Duració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 cadena | Guí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 true | Conserva el audio del video guía. |
| elements matriz | Como 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
durationigual 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ámetro | Valores y notas |
|---|---|
| image string · obligatorio | URL pública de la imagen del personaje. |
| video string · obligatorio | URL pública del video de conducción (referencia de movimiento). |
| duration string (segundos enteros) · obligatorio afecta el precio | Duració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 string | Guía de texto opcional (omitir si está en blanco). |
| keep_original_sound boolean predeterminado true | Conserva el audio del video de conducción. |
| elements array | Como 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
durationigual 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Solo 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[] · obligatorio | Exactamente 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 false | Genera 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Solo 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[] · obligatorio | 1 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 precio | 3–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, enviarimagesoinput_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ámetro | Valores y notas |
|---|---|
| video string · obligatorio | URL 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 30 | 15–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ámetro | Valores y notas |
|---|---|
| video string · obligatorio | URL 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
durationigual 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Instrucción de edición (obligatoria). |
| video string · obligatorio | URL del video fuente (campo singular). MP4 o MOV, 2-10s, <=100MB. |
| duration string · obligatorio afecta el precio | 2–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 string | URL 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Instrucció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 true | Generar una banda sonora. |
| input_video_duration number afecta al precio | 0–15 Duración del video fuente en segundos, redondeada hacia arriba. Envíalo siempre junto con el video fuente. |
| has_video_input boolean | Campo 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, agregahas_video_input: trueyinput_video_durationsi 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ámetro | Valores y notas |
|---|---|
| prompt string | Qué 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 true | Generar audio. |
| input_video_duration number afecta al precio | 0–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, agregahas_video_input: trueyinput_video_durationsi 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Instrucció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 true | Generar audio. |
| input_video_duration number afecta al precio | 0–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 boolean | Campo 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_versionexplí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, agregahas_video_input: trueyinput_video_durationsi 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ámetro | Valores y notas |
|---|---|
| prompt string | Qué 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 true | Generar audio. |
| input_video_duration number afecta al precio | 0–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 boolean | Campo 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 referenciaaudio: 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_versionexplí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, agregahas_video_input: trueyinput_video_durationsi 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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Instrucció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 true | Generar audio. |
| input_video_duration number afecta al precio | 0–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 boolean | Campo 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 conPOST /api/video-generation/{id}/upgrade-draft. - Al cotizar con
/api/quote, agregahas_video_input: trueyinput_video_durationsi 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ámetro | Valores y notas |
|---|---|
| prompt string | Qué 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 true | Generar audio. |
| input_video_duration number afecta al precio | 0–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 boolean | Campo 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 referenciaaudio: 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 conPOST /api/video-generation/{id}/upgrade-draft. - Al cotizar con
/api/quote, añadehas_video_input: trueyinput_video_durationsi 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ámetro | Valores y notas |
|---|---|
| video string · obligatorio | URL del video fuente (campo singular). |
| prompt string | Descripció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 number | 1–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ámetro | Valores y notas |
|---|---|
| prompt string · obligatorio | Qué 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 number | 1.625–60 Duración de la fuente en segundos (hasta 2 decimales). Se usa solo para validación; la fuente no se factura. |
| seed number | Entero 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ámetro | Valores y notas |
|---|---|
| video string · obligatorio | URL del video fuente (campo singular; 'videos' aquí significa videos de referencia). |
| prompt string | Describe 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 · obligatorio | 1.625–60 Punto de corte en segundos (cuadrícula de fotogramas de 24 fps). |
| resume_time number · obligatorio | 1.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 precio | Imágenes de referencia para la nueva escena, hasta 9. |
| videos string[] afecta al precio | Videos 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 precio | 0–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 number | 0–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 true | Iguala 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 number | Entero 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_countpara imágenes de referencia, y para videos de referencia añadehas_video_input: true,input_video_countyreference_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ámetro | Valores y notas |
|---|---|
| video string · obligatorio | URL 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[] · obligatorio | 1-4 fotos de referencia, una por persona nueva, mapeadas de izquierda a derecha por defecto. |
| prompt string | Opcional (<=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 precio | 5–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 number | Entero 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ámetro | Valores 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 precio | 0–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 false | Aislar vocales / suprimir ruido de fondo. |
| lip_sync_open_scenedet boolean predeterminado true | Detección de tomas y hablantes (solo basic). |
| lip_sync_align_audio boolean predeterminado true | Repetir el video cuando el audio es más largo (solo lite; siempre activo en basic). |
| lip_sync_align_audio_reverse boolean predeterminado false | Repetir reproduciendo en reversa (solo lite; requiere align_audio). |
| lip_sync_templ_start_seconds number predeterminado 0 | 0–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ámetro | Valores y notas |
|---|---|
| taskId string · obligatorio afecta el precio | El 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 · obligatorio | Qué 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 string | Texto 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ámetro | Valores y notas |
|---|---|
| taskId string · obligatorio afecta el precio | El provider_task_id de una de sus generaciones anteriores de Grok Imagine. |
| prompt string · obligatorio | Qué sucede en la extensión. Obligatorio. |
| duration string afecta el precio predeterminado "6" | "6", "10" Segundos a añadir. |
| extend_at number predeterminado 0 | Posició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ódigo | Significado | Qué hacer |
|---|---|---|
| 400 | Parámetros no válidos | Verifique los valores permitidos para el modelo |
| 401 | Clave API no válida o faltante | Verifique su clave en /settings/api-keys |
| 402 | Créditos insuficientes | Recargue en /pricing |
| 403 | Cuenta suspendida | Contacte al soporte |
| 404 | Generación no encontrada | Verifique el generation_id |
| 409 | Conflicto: el video de entrada es más largo que la longitud declarada (intercambio de personaje), o un borrador no está listo / ya fue actualizado | No se cobró nada; lea el error — para intercambio de personaje, reenvíe con el measured_duration de la respuesta |
| 410 | El borrador ha expirado | Genere de nuevo |
| 422 | Combinación de parámetros no compatible con el modelo | Lea el mensaje de error y las reglas del modelo |
| 500 | Error del servidor | Espere unos segundos y reintente |
| 502 | No 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ímite | Valor |
|---|---|
| Claves API por cuenta | 5 claves activas |
| Longitud del prompt | Hasta 20,000 caracteres (específico del modelo) |
| Tamaño de subida | Por 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 solicitudes | Sin 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. |