Herramientas de medios
Genera imágenes y vídeos con más de 40 modelos de IA. Llama siempre primero a get_models para ver modelos disponibles, costes y si un modelo necesita imagen de entrada.
Clientes HTTP REST: los mismos límites están documentados en Requisitos por modelo (API REST) (y devueltos por modelo desde GET /v1/models).
#generate_media
Inicia una generación de imagen o vídeo.
Parámetros:
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| prompt | string | Sí | Qué generar (p. ej. «Un coche rojo en una carretera de montaña»). |
| model | string | Sí | ID de modelo (desde get_models). Ejemplos: nano-banana, sora-2, kling-2-6-image-to-video. |
| generation_type | string | No | text-to-image, text-to-video, image-to-video o image-to-image. Predeterminado: text-to-image. |
| negative_prompt | string | No | Qué evitar en la salida. |
| source_media_urls | string o array | No | Obligatorio para imagen a vídeo e imagen a imagen. URL(s) de imagen(es), o para algunos modelos (p. ej. Kling 2.6 Motion) imagen + vídeo. Ver límites de entrada abajo. Omite en texto a imagen y texto a vídeo. |
| aspect_ratio | string | No | p. ej. 1:1, 16:9, 9:16, 4:5, 21:9. Predeterminado: 1:1. Nota: cada modelo solo acepta un subconjunto — get_models devuelve la lista permitida. |
| duration | string | No | Duración del vídeo. Solo ciertos modelos de vídeo la usan. Ver abajo. |
| quality | string | No | p. ej. fast, standard, pro, ultra. Predeterminado: standard. |
| resolution | string | No | Nivel de resolución de salida. Solo ciertos modelos de imagen lo usan — gpt-image-2 (1K/2K/4K), nano-banana-pro/nano-banana-2 (1K/2K/4K), flux-2 (1K/2K). Cada nivel es un SKU de precio independiente; get_models devuelve el coste en créditos por nivel. Se ignora en modelos donde la resolución está codificada en el model_id de la variante (Seedance, Kling, Sora, P-Video). Ver la tabla Niveles de resolución más abajo para las restricciones por modelo. |
| sound | boolean | No | Con true, solicita vídeo con audio generado. Solo ciertos modelos de vídeo. Predeterminado: false. Ver abajo. |
| seed | number | No | Semilla para resultados reproducibles. |
Ejemplo (texto a imagen):
{
"prompt": "Ciudad futurista al atardecer con coches voladores",
"model": "nano-banana",
"generation_type": "text-to-image",
"aspect_ratio": "16:9",
"quality": "pro"
}
Ejemplo (imagen a vídeo, se requiere una imagen):
{
"prompt": "Movimiento suave y sutil",
"model": "kling-2-6-image-to-video",
"generation_type": "image-to-video",
"source_media_urls": ["https://example.com/your-image.jpg"],
"aspect_ratio": "16:9",
"duration": "5s"
}
Respuesta: Incluye generation_id, status (p. ej. pending), y a menudo estimated_time_seconds y estimated_cost_credits. Consulta con get_generation_status hasta que el estado sea completed o failed.
Modelos que admiten duration:
| Modelo(s) | Valores admitidos | Notas |
|---|---|---|
| kling-2-6-text-to-video, kling-2-6-image-to-video | 5s, 10s | Opcional con/sin audio (variante del modelo). |
| wan-2-5 (texto a vídeo, imagen a vídeo) | 5s, 10s | |
| v1-pro-fast-i2v | 5s, 10s | |
| seedance-1-5-pro | 4s, 8s, 12s | Admite texto a vídeo (0–1 imagen opcional) e imagen a vídeo (2 imágenes obligatorias). |
| seedance-2 (Standard) / seedance-2-fast (Fast) | Entero 4s–15s | ByteDance Seedance 2. El nivel es la familia de modelo en sí — usa seedance-2-fast para el nivel económico y rápido, seedance-2 para el de mayor calidad. Cada familia expone model_ids concretos por resolución y combinación con vídeo de referencia (p. ej. seedance-2-fast-480p, seedance-2-480p-video-ref). Pasa el id de variante completo a generate_media; una etiqueta de familia sola devuelve un error variant_required con las opciones. Admite referencias multimodales en texto a vídeo (hasta 9 imágenes + 3 vídeos + 3 audios). Facturación con vídeo de referencia: credits = (ref_s + output_s) × rate/s. |
| sora-2, sora-2-pro (texto a vídeo, imagen a vídeo) | 10s, 15s | |
| sora-2-pro-storyboard | 10s, 15s, 25s | Por escenas; duración desde tomas. |
| grok-text-to-video-6s | Fijo 6s | Se ignora el parámetro duration. |
| kling-3-0-std, kling-3-0-pro | 3s–15s | Modo toma única. Máx. 2500 caracteres; admite referencias @element_name. |
| grok-image-to-video, kling-2-5-image-to-video-pro, veo3-1 | No configurable | La duración no se define con este parámetro. |
En modelos solo imagen, duration se ignora.
Modelos que admiten negative_prompt:
| Modelo(s) | Notas |
|---|---|
| imagen-4, imagen-4-fast, imagen-4-ultra | Texto a imagen. |
| wan-2-5 (texto a vídeo, imagen a vídeo) | |
| kling-2-5-image-to-video-pro |
El resto de modelos ignoran negative_prompt.
Modelos que admiten quality (o equivalente):
| Modelo(s) | Cómo funciona | Valores |
|---|---|---|
| sora-2-pro (texto a vídeo, imagen a vídeo) | Mapeado a size (estándar vs HD). | standard, pro/high/hd (para HD). |
| Variantes imagen-4 | Mapeado a model_variant. | standard, fast, ultra (usa quality: standard / fast / ultra). |
| seedream-v4, seedream-v4-edit | Resolución mediante parámetro quality. | 1K (predeterminado), 2K, 4K. |
| seedream-v4-5, seedream-v4-5-edit | Usa quality directamente. | basic (2K, predeterminado), high (4K). |
| 5-lite-text-to-image, 5-lite-image-to-image | Usa quality directamente. | basic (2K, predeterminado), high (4K). |
| veo3-1 vs veo3-1-fast | Distintos IDs de modelo, no un único parámetro quality. | Usa modelo veo3-1 (calidad) o veo3-1-fast (velocidad). |
| flux-2, nano-banana-pro, nano-banana-2 | Resolución (1K/2K/4K), no un string genérico «quality». | Pasa mediante el parámetro dedicado resolution — ver abajo. |
| gpt-image-2 (t2i + i2i) | Resolución mediante el parámetro resolution. | Ver Niveles de resolución abajo. |
En otros modelos, quality se ignora.
<a id="niveles-resolucion"></a>
Niveles de resolución (parámetro resolution):
| Modelo | Valores | Precio | Restricción |
|---|---|---|---|
| gpt-image-2 (t2i + i2i) | 1K (predeterminado), 2K, 4K | 11 / 15 / 21 créditos | 2K y 4K requieren un aspect_ratio explícito, no cuadrado y no auto — uno de 9:16, 16:9, 4:3, 3:4. Llamar a 2K/4K con aspect_ratio=auto o aspect_ratio=1:1 devuelve HTTP 400 (error: "aspect_ratio_incompatible_with_high_res") y los créditos NO se retienen. 1K acepta todas las relaciones, incluso auto/1:1. |
| nano-banana-2 | 1K (predeterminado), 2K, 4K | Ver get_models | Cada nivel es un SKU de precio independiente. La lista de aspect_ratio no cambia entre niveles. |
| nano-banana-pro | 1K (predeterminado), 2K, 4K | Ver get_models | Mismo patrón que nano-banana-2. |
| flux-2, flux-2-edit | 1K (predeterminado), 2K | Ver get_models | Solo dos niveles. |
Cuándo elegir cada nivel (GPT Image 2):
1K— predeterminado. Úsalo para publicaciones sociales, miniaturas, conceptos, vistas previas en app, cualquier cosa ≤ 1024 × 1024. El más barato; sin complicaciones de aspect ratio.2K— úsalo cuando el cliente necesita un hero web nítido, portada de newsletter, ilustración in-product a densidad retina. Debes elegir un aspecto direccional (landscape o portrait).4K— úsalo para impresión, publicidad exterior, banners, o cualquier caso en el que el usuario pida explícitamente el tamaño máximo. Confirma el aspecto con el usuario primero;1:1/autono funcionarán.
Los modelos no listados ignoran resolution. Para familias de vídeo (Seedance, Kling, Sora, P-Video) la resolución forma parte del model_id de la variante concreta — pasa la variante (p. ej. seedance-2-fast-480p, p-video-1080p), no este parámetro.
Límites de caracteres del prompt:
Algunos modelos aplican longitud máxima. Superarla puede devolver error o truncar.
| Modelo(s) | Máx. caracteres |
|---|---|
| wan-2-5 | 800 |
| kling-2-6 (texto a vídeo, imagen a vídeo) | 2.500 |
| kling-3-0-std, kling-3-0-pro | 2.500 |
| seedance-2 | 2.500 |
| kling-2-5-image-to-video-pro | 2.500 |
| seedream-v4, seedream-v4-edit | 2.500 |
| seedream-v4-5, seedream-v4-5-edit | 3.000 |
| 5-lite-text-to-image, 5-lite-image-to-image | 2.995 |
| gpt-1.5-image-medium, gpt-1.5-image-high | 3.000 |
| nano-banana, imagen-4, sora-2, flux-2, veo3-1, v1-pro-fast-i2v, grok (imagen/vídeo), p-image-edit | 5.000 |
| nano-banana-pro (todas las variantes) | 20.000 |
| nano-banana-2 (todas las variantes) | 20.000 |
Otros pueden no tener límite documentado o usar predeterminados del servidor.
Límites de archivos de entrada (imagen y vídeo):
Para imagen a vídeo e imagen a imagen, source_media_urls es una lista de URLs. La mayoría aceptan solo imágenes (JPEG, PNG, WebP, típicamente 10 MB máx. por archivo). Algunos también aceptan vídeo; entonces aplican formato y tamaño (p. ej. MP4, duración máx.).
| Modelo(s) | Tipo de entrada | Límite | Notas |
|---|---|---|---|
| kling-2-6-motion-control-720p, kling-2-6-motion-control-1080p | Imagen + vídeo | 1 imagen + 1 vídeo | Motion Control: el vídeo de referencia guía el movimiento. Vídeo máx. 30 s; archivo típ. hasta 100 MB (MP4/WebM). |
| kling-3-0-motion-control-720p, kling-3-0-motion-control-1080p | Imagen + vídeo | 1 imagen + 1 vídeo | Motion Control Kling 3.0: igual que Kling 2.6. Facturación por segundo — consulta la tabla de Motion Control más abajo. Vídeo máx. 30 s; típ. hasta 100 MB (MP4/WebM). |
| kling-2-6-image-to-video, sora-2 (imagen a vídeo), wan-2-5 (imagen a vídeo), grok-image-to-video, v1-pro-fast-i2v | Solo imágenes | 1 imagen | Exactamente una imagen de entrada. |
| kling-2-5-image-to-video-pro | Solo imágenes | 2 imágenes | Fotograma inicial y final. |
| seedance-1-5-pro | Solo imágenes | Según modo | Texto a vídeo (generation_type: "text-to-video"): 0–1 imágenes opcionales. Imagen a vídeo (generation_type: "image-to-video"): exactamente 2 imágenes (inicio + fin). |
| seedance-2 | Imagen + vídeo + audio | Según modo | Texto a vídeo: hasta 9 imágenes + 3 vídeos + 3 audios de referencia, todas opcionales. Duración combinada de vídeos de referencia ≤ 15s; duración combinada de audios de referencia ≤ 15s. Imagen a vídeo: 1 imagen obligatoria (primer frame) + 1 imagen opcional (último frame) + hasta 3 audios de referencia opcionales; no se admiten vídeos de referencia en este modo. Mete todas las URLs en source_media_urls — el backend clasifica cada URL por extensión (.jpg/.png/.webp → imagen; .mp4/.mov/.webm → vídeo; .mp3/.wav/.m4a → audio). |
| kling-3-0-std, kling-3-0-pro | Solo imágenes | 1–2 imágenes | Fotograma inicial, o inicio + fin. PNG/JPG/JPEG. Admite elementos (ver abajo). |
| seedream-v4-edit | Solo imágenes | 10 | Para edición. |
| 5-lite-text-to-image, 5-lite-image-to-image | Solo imágenes | 10 | Para edición (imagen a imagen). |
| nano-banana, nano-banana-edit | Solo imágenes | 10 | |
| nano-banana-pro (todas las variantes) | Solo imágenes | 8 | |
| nano-banana-2 (todas las variantes) | Solo imágenes | 8 | |
| p-image-edit | Solo imágenes | 1–8 | Pruna AI P Image Edit. Solo imagen a imagen — usa generation_type: "image-to-image". Pasa 1–8 URLs en source_media_urls. aspect_ratio: auto coincide con la primera imagen de entrada, o 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3. turbo opcional (activo por defecto). disable_safety_checker: true por defecto (moderación desactivada); false activa el comprobador. seed opcional. |
| flux-2-edit (imagen a imagen) | Solo imágenes | 8 | |
| gpt-1.5-image (imagen a imagen) | Solo imágenes | 16 | |
| veo3-1 (imagen a vídeo / modos referencia) | Solo imágenes | 1-3 | Depende del modo (1 ref opcional texto a vídeo; 2 primero+último fotograma; 3 referencia). |
| sora-2-pro-storyboard | Solo imágenes | 1 | Opcional. |
Usa get_models para confirmar input_media_types y capacidades. Consulta Herramientas de cuenta para lista y precios.
Kling 3.0 – elementos (opcional):
Los elementos permiten referenciar imágenes o vídeos en el prompt con @element_name. Pasa kling_elements como array de objetos con name, description, y element_input_urls (2–4 URLs de imagen) o element_input_video_urls (1 URL de vídeo). Las imágenes de referencia de cada elemento provienen de su propio element_input_urls; el image_urls principal puede ir vacío para texto-a-vídeo, o contener cuadros de inicio/fin opcionales para imagen-a-vídeo. Cada elemento requiere título (name) y descripción. Elementos imagen: JPG/PNG, mín. 300×300px, máx. 10MB cada uno. Elementos vídeo: MP4/MOV, máx. 50MB.
Seedance 1.5 Pro – dos modos (revisa generation_type antes de usar imágenes):
| Modo | generation_type | source_media_urls | ¿Puedes usar imágenes? |
|---|---|---|---|
| Texto a vídeo | "text-to-video" | Vacío o 1 URL | Opcional: 0–1 imágenes. Omite solo texto; incluye 1 URL para animar esa imagen. |
| Imagen a vídeo | "image-to-video" | Exactamente 2 URLs | Obligatorio: exactamente 2 imágenes (inicio + fin). |
Seedance 2 – dos familias de modelo, dos modos, dos vías de facturación:
Seedance 2 (ByteDance) se expone como dos familias de modelos separadas — seedance-2-fast (económico, rápido) y seedance-2 (estándar, mayor calidad). Cada familia expone model_ids concretos por resolución y combinación con vídeo de referencia; pasa la variante completa (p. ej. seedance-2-fast-480p, seedance-2-720p-video-ref) — pasar solo el nombre de familia devuelve un error variant_required con las opciones disponibles. Resoluciones: 480p y 720p (no hay 1080p). Duración: entero de 4 a 15 segundos. Aspect ratios admitidos: 1:1, 4:3, 3:4, 16:9, 9:16, 21:9, adaptive. Máximo de prompt: 2500 caracteres. El audio se activa con el toggle gratuito generate_audio (por defecto true) — a diferencia de Kling 3.0, no hay recargo por audio.
Modos:
| Modo | generation_type | Referencias admitidas |
|---|---|---|
| Texto a vídeo (multimodal) | "text-to-video" | Hasta 9 imágenes + 3 vídeos + 3 audios de referencia. Todas opcionales. |
| Imagen a vídeo (keyframes) | "image-to-video" | 1 imagen obligatoria (primer frame) + 1 imagen opcional (último frame) + hasta 3 audios de referencia opcionales. No se admiten vídeos de referencia en este modo — se rechazan con error. |
En ambos modos, mete todas las URLs de referencia en source_media_urls. El backend clasifica cada URL por extensión (.jpg/.png/.webp → imagen; .mp4/.mov/.webm → vídeo; .mp3/.wav/.m4a → audio) y la enruta al cubo correcto automáticamente.
Vías de facturación (importante):
- Sin vídeo de referencia:
credits = output_s × base_credits/s - Con vídeo de referencia (vía proveedor upstream):
credits = (ref_s + output_s) × base_credits/s, donderef_ses la duración combinada de todos los vídeos de referencia, limitada a 15 segundos por petición.
Nota para usuarios de API REST / MCP: el backend no puede consultar remotamente la duración de un vídeo desde su URL, así que factura en el peor caso pesimista (15s) para peticiones con vídeo de referencia enviadas desde MCP o la API REST. La web UI mide localmente y factura las duraciones exactas — si trabajas con clips de referencia cortos y quieres optimizar coste, recomendamos usar la web UI.
Tarifas por segundo en vivo (extraídas del catálogo ai_models_config — siempre al día):
| Model | Name | Rate | Unit |
|---|---|---|---|
| seedance-2-1080p | Seedance 2 (1080p) | 93 | credits / sec |
| seedance-2-1080p-video-ref | Seedance 2 (1080p, video ref) | 65 | credits / sec |
| seedance-2-480p | Seedance 2 (480p) | 18 | credits / sec |
| seedance-2-480p-video-ref | Seedance 2 (480p, video ref) | 13 | credits / sec |
| seedance-2-720p | Seedance 2 (720p) | 40 | credits / sec |
| seedance-2-720p-video-ref | Seedance 2 (720p, video ref) | 29 | credits / sec |
| seedance-2-fast-480p | Seedance 2.0 Fast | 16 | credits / sec |
| seedance-2-fast-480p-video-ref | Seedance 2.0 Fast (video ref) | 12 | credits / sec |
| seedance-2-fast-720p | Seedance 2.0 Fast | 34 | credits / sec |
| seedance-2-fast-720p-video-ref | Seedance 2.0 Fast (video ref) | 24 | credits / sec |
Límites estrictos (se aplican con errores 400):
- Más de 3 vídeos de referencia →
too_many_videos. - Más de 3 audios de referencia →
too_many_audios. - Más de 9 imágenes de referencia →
too_many_images. - Duración combinada de vídeos de referencia > 15s → rechazado.
- Duración combinada de audios de referencia > 15s → rechazado.
- Cualquier archivo individual de vídeo o audio de referencia > 15s → rechazado.
Audio en vídeo (dos conceptos):
capabilities.video_audioen get_models — si la salida hay sonido:included— la salida suele incluir pista de audio sin el parámetrosound(p. ej. Veo, Sora, Wan, Grok, Kling 2.5 imagen a vídeo, Motion Control).toggle_via_sound_param— el audio generado se activa/desactiva consound: true/false(Kling 2.6, Kling 3.0, Seedance 1.5 Pro). El precio puede variar. Kling 3.0 enrutasound: truea filas dedicadas-audioen el catálogo — tú sigues usandokling-3-0-std/kling-3-0-procomo model id y solo cambiassound; el servidor escoge la fila con la tarifa correcta. Tarifas en vivo:
| Model | Name | Rate | Unit |
|---|---|---|---|
| kling-3-0-pro | Kling 3.0 Pro | 21 | credits / sec |
| kling-3-0-pro-audio | Kling 3.0 Pro (with audio) | 30 | credits / sec |
| kling-3-0-std | Kling 3.0 | 17 | credits / sec |
| kling-3-0-std-audio | Kling 3.0 Std (with audio) | 23 | credits / sec |
Tarifas por segundo de Motion Control (Kling 3.0 y Kling 2.6):
kling-3-0-motion-control,kling-2-6-motion-controlsilent— sin audio generado (solo Seedance 1.0 /v1-pro-fast-i2v).
supports_sound— solo indica que la API acepta el conmutadorsounden ese modelo; no significa que el resto de vídeo vaya sin sonido; la mayoría tienenvideo_audio: included.
Los modelos solo imagen ignoran sound.
#API REST: URLs para archivos locales o del navegador
Si usas la API HTTP (POST /v1/generate/media) y tus entradas son archivos en disco o seleccionados en el navegador — aún no son URLs públicas — sube cada archivo primero con POST /v1/upload/media. Pasa los valores urls devueltos como source_media_urls.
#get_generation_status
Comprueba el estado de una generación de medios y obtén URLs de salida al terminar.
Parámetros:
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| generation_id | string | Sí | ID devuelto por generate_media. |
Respuesta: Incluye status (pending, queued, processing, completed, failed), progress, y al completarse un array outputs con url, thumbnail_url, optimized_url, media_type, dimensiones, etc.
#get_generation_estimate
Obtiene un tiempo de procesamiento estimado según parámetros (no se inicia ningún trabajo). Para duración estimada por modelo en una sola llamada, usa get_models; cada modelo incluye estimated_time_seconds. Usa get_generation_estimate cuando la estimación dependa de longitud del prompt, duration u otros parámetros.
Parámetros:
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| model | string | Sí | ID de modelo. |
| generation_type | string | No | Igual que en generate_media. Predeterminado: text-to-image. |
| prompt | string | No | Opcional; puede afectar la estimación. |
| negative_prompt | string | No | Opcional. |
| parameters | object | No | Parámetros extra opcionales. |
Respuesta: Tiempo estimado (y opcionalmente confianza/tamaño de muestra) para fijar expectativas antes de llamar a generate_media.
#Reglas de modelo
- Texto a imagen y texto a vídeo: No envíes
source_media_urls(salvo que el modelo admita imagen de referencia opcional). Excepción: seedance-1-5-pro en modo texto a vídeo acepta 0–1 imágenes opcionales. - Imagen a vídeo e imagen a imagen: Envía URL(s) de imagen (y cuando corresponda, vídeo) en
source_media_urls. La mayoría necesitan solo imágenes; algunos (p. ej. Kling 2.6 Motion Control) requieren 1 imagen + 1 vídeo. seedance-1-5-pro en imagen a vídeo exige exactamente 2 imágenes (inicio + fin). Respeta los límites de cada modelo. - Audio en vídeo: Usa
capabilities.video_audiode get_models.included— audio sin el parámetrosound.toggle_via_sound_param— usasoundsolo sisupports_soundes true.silent— sin audio generado (solo Seedance 1.0). No infieras «sin audio» solo porsupports_sound: false. - Usa get_models para ver qué modelos admiten qué tipos de generación,
input_media_types(p. ej. image, video) y recuentos de entrada obligatorios.
Consulta Limitaciones para límites de ritmo y créditos. Para una sola tabla de predeterminados API (máx. prompt, entradas, duración, banderas), consulta Requisitos por modelo (API REST).
