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ámetroTipoObligatorioDescripción
    promptstringQué generar (p. ej. «Un coche rojo en una carretera de montaña»).
    modelstringID de modelo (desde get_models). Ejemplos: nano-banana, sora-2, kling-2-6-image-to-video.
    generation_typestringNotext-to-image, text-to-video, image-to-video o image-to-image. Predeterminado: text-to-image.
    negative_promptstringNoQué evitar en la salida.
    source_media_urlsstring o arrayNoObligatorio 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_ratiostringNop. 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.
    durationstringNoDuración del vídeo. Solo ciertos modelos de vídeo la usan. Ver abajo.
    qualitystringNop. ej. fast, standard, pro, ultra. Predeterminado: standard.
    resolutionstringNoNivel de resolución de salida. Solo ciertos modelos de imagen lo usangpt-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.
    soundbooleanNoCon true, solicita vídeo con audio generado. Solo ciertos modelos de vídeo. Predeterminado: false. Ver abajo.
    seednumberNoSemilla 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 admitidosNotas
    kling-2-6-text-to-video, kling-2-6-image-to-video5s, 10sOpcional con/sin audio (variante del modelo).
    wan-2-5 (texto a vídeo, imagen a vídeo)5s, 10s
    v1-pro-fast-i2v5s, 10s
    seedance-1-5-pro4s, 8s, 12sAdmite 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 4s15sByteDance 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-storyboard10s, 15s, 25sPor escenas; duración desde tomas.
    grok-text-to-video-6sFijo 6sSe ignora el parámetro duration.
    kling-3-0-std, kling-3-0-pro3s15sModo toma única. Máx. 2500 caracteres; admite referencias @element_name.
    grok-image-to-video, kling-2-5-image-to-video-pro, veo3-1No configurableLa 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-ultraTexto 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 funcionaValores
    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-4Mapeado a model_variant.standard, fast, ultra (usa quality: standard / fast / ultra).
    seedream-v4, seedream-v4-editResolución mediante parámetro quality.1K (predeterminado), 2K, 4K.
    seedream-v4-5, seedream-v4-5-editUsa quality directamente.basic (2K, predeterminado), high (4K).
    5-lite-text-to-image, 5-lite-image-to-imageUsa quality directamente.basic (2K, predeterminado), high (4K).
    veo3-1 vs veo3-1-fastDistintos 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-2Resolució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):

    ModeloValoresPrecioRestricción
    gpt-image-2 (t2i + i2i)1K (predeterminado), 2K, 4K11 / 15 / 21 créditos2K 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-21K (predeterminado), 2K, 4KVer get_modelsCada nivel es un SKU de precio independiente. La lista de aspect_ratio no cambia entre niveles.
    nano-banana-pro1K (predeterminado), 2K, 4KVer get_modelsMismo patrón que nano-banana-2.
    flux-2, flux-2-edit1K (predeterminado), 2KVer get_modelsSolo 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 / auto no 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-5800
    kling-2-6 (texto a vídeo, imagen a vídeo)2.500
    kling-3-0-std, kling-3-0-pro2.500
    seedance-22.500
    kling-2-5-image-to-video-pro2.500
    seedream-v4, seedream-v4-edit2.500
    seedream-v4-5, seedream-v4-5-edit3.000
    5-lite-text-to-image, 5-lite-image-to-image2.995
    gpt-1.5-image-medium, gpt-1.5-image-high3.000
    nano-banana, imagen-4, sora-2, flux-2, veo3-1, v1-pro-fast-i2v, grok (imagen/vídeo), p-image-edit5.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 entradaLímiteNotas
    kling-2-6-motion-control-720p, kling-2-6-motion-control-1080pImagen + vídeo1 imagen + 1 vídeoMotion 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-1080pImagen + vídeo1 imagen + 1 vídeoMotion 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-i2vSolo imágenes1 imagenExactamente una imagen de entrada.
    kling-2-5-image-to-video-proSolo imágenes2 imágenesFotograma inicial y final.
    seedance-1-5-proSolo imágenesSegún modoTexto 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-2Imagen + vídeo + audioSegún modoTexto 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-proSolo imágenes1–2 imágenesFotograma inicial, o inicio + fin. PNG/JPG/JPEG. Admite elementos (ver abajo).
    seedream-v4-editSolo imágenes10Para edición.
    5-lite-text-to-image, 5-lite-image-to-imageSolo imágenes10Para edición (imagen a imagen).
    nano-banana, nano-banana-editSolo imágenes10
    nano-banana-pro (todas las variantes)Solo imágenes8
    nano-banana-2 (todas las variantes)Solo imágenes8
    p-image-editSolo imágenes1–8Pruna 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ágenes8
    gpt-1.5-image (imagen a imagen)Solo imágenes16
    veo3-1 (imagen a vídeo / modos referencia)Solo imágenes1-3Depende del modo (1 ref opcional texto a vídeo; 2 primero+último fotograma; 3 referencia).
    sora-2-pro-storyboardSolo imágenes1Opcional.

    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):

    Modogeneration_typesource_media_urls¿Puedes usar imágenes?
    Texto a vídeo"text-to-video"Vacío o 1 URLOpcional: 0–1 imágenes. Omite solo texto; incluye 1 URL para animar esa imagen.
    Imagen a vídeo"image-to-video"Exactamente 2 URLsObligatorio: 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 separadasseedance-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:

    Modogeneration_typeReferencias 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, donde ref_s es 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):

    ModelNameRateUnit
    seedance-2-1080pSeedance 2 (1080p)93credits / sec
    seedance-2-1080p-video-refSeedance 2 (1080p, video ref)65credits / sec
    seedance-2-480pSeedance 2 (480p)18credits / sec
    seedance-2-480p-video-refSeedance 2 (480p, video ref)13credits / sec
    seedance-2-720pSeedance 2 (720p)40credits / sec
    seedance-2-720p-video-refSeedance 2 (720p, video ref)29credits / sec
    seedance-2-fast-480pSeedance 2.0 Fast16credits / sec
    seedance-2-fast-480p-video-refSeedance 2.0 Fast (video ref)12credits / sec
    seedance-2-fast-720pSeedance 2.0 Fast34credits / sec
    seedance-2-fast-720p-video-refSeedance 2.0 Fast (video ref)24credits / 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):

    1. capabilities.video_audio en get_models — si la salida hay sonido:
      • included — la salida suele incluir pista de audio sin el parámetro sound (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 con sound: true / false (Kling 2.6, Kling 3.0, Seedance 1.5 Pro). El precio puede variar. Kling 3.0 enruta sound: true a filas dedicadas -audio en el catálogo — tú sigues usando kling-3-0-std / kling-3-0-pro como model id y solo cambias sound; el servidor escoge la fila con la tarifa correcta. Tarifas en vivo:
    ModelNameRateUnit
    kling-3-0-proKling 3.0 Pro21credits / sec
    kling-3-0-pro-audioKling 3.0 Pro (with audio)30credits / sec
    kling-3-0-stdKling 3.017credits / sec
    kling-3-0-std-audioKling 3.0 Std (with audio)23credits / sec

    Tarifas por segundo de Motion Control (Kling 3.0 y Kling 2.6):

    No models matched this family. kling-3-0-motion-control,kling-2-6-motion-control
    • silent — sin audio generado (solo Seedance 1.0 / v1-pro-fast-i2v).
    1. supports_sound — solo indica que la API acepta el conmutador sound en ese modelo; no significa que el resto de vídeo vaya sin sonido; la mayoría tienen video_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ámetroTipoObligatorioDescripción
    generation_idstringID 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ámetroTipoObligatorioDescripción
    modelstringID de modelo.
    generation_typestringNoIgual que en generate_media. Predeterminado: text-to-image.
    promptstringNoOpcional; puede afectar la estimación.
    negative_promptstringNoOpcional.
    parametersobjectNoPará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_audio de get_models. included — audio sin el parámetro sound. toggle_via_sound_param — usa sound solo si supports_sound es true. silent — sin audio generado (solo Seedance 1.0). No infieras «sin audio» solo por supports_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).