GetVibe ofrece una API multimedia asíncrona además de sus APIs de texto. El flujo no es el de OpenAI Chat Completions: se envía un job, se recibe un ID y se consultan estado y resultado. Los modelos de imagen, vídeo y audio/voz tienen entradas y unidades de cobro distintas. Elige en el catálogo multimedia; no supongas que todos aceptan el mismo payload.
Consulta el modelo y sus requisitos
El catálogo multimedia y /v1/models?type=image,video,audio muestran los tipos disponibles en tu cuenta. Comprueba ID exacto, modalidad de entrada, opciones, formato de salida y unidad de precio. Imagen puede cobrarse por opciones de salida; vídeo puede depender de duración y resolución; voz puede medirse por texto, segundos u otra unidad documentada. No estimes todo en tokens de texto.
gpt-image-2 es un modelo de imagen del catálogo. La página correspondiente y la documentación indican relaciones de aspecto, resolución y modos de generación/edición. Los modelos de vídeo tienen sus propias opciones y pueden tardar más. Las operaciones de voz también dependen del modelo; confirma la lista actual antes de prometer una función concreta.
Envía un job de imagen
Mantén la clave en el servidor. Este ejemplo muestra la estructura documentada para generación de imagen con texto: el prompt va en el nivel superior y las opciones, dentro de opts.
curl https://getvibeapi.com/api/media/generate \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "A clean editorial illustration of a developer desk, no text",
"opts": {"aspect_ratio":"16:9", "resolution":"1K", "mode":"text-to-image"}
}'Guarda el jobId devuelto junto al usuario y la tarea. La llamada inicia la generación; la imagen final no viene dentro de esa respuesta.
Consulta o recibe el resultado por webhook
Para una integración pequeña, consulta el job cada cierto intervalo y detente cuando llegue a estado terminal. Los estados incluyen submitting, processing, success, fail y expired. Consultar cada pocos milisegundos añade tráfico, pero no acelera el trabajo. Para producción, usa el webhook documentado y haz que el callback sea idempotente para que una entrega duplicada no cree varios archivos.
curl "https://getvibeapi.com/api/media/jobs/$JOB_ID" \
-H "Authorization: Bearer $GETVIBE_API_KEY"Si tiene éxito, descarga las URLs devueltas y copia el archivo a un almacenamiento propio si debe persistir. Si falla, guarda el ID del job para soporte y muestra un error útil. No reintentes todo automáticamente: una opción inválida fallará de nuevo y una generación duplicada puede cobrarse aparte.
Vídeo y voz requieren lógica propia
Antes de generar vídeo, revisa duración, dimensiones, entrada de imagen y opciones admitidas. Comprueba que una URL fuente remota sea accesible. Muestra progreso al usuario porque el render puede tardar bastante más que texto. Para lotes, utiliza el webhook en lugar de mantener abierta una petición web.
En audio distingue síntesis de voz, transcripción y comprensión de audio: son modalidades distintas. Usa endpoint y payload indicados por la ficha del modelo, limita texto o duración si está permitido y guarda el formato que acepta tu reproductor. No afirmes que todos los modelos multimedia producen voz.
Presupuesta y define los fallos
Antes de un lote, consulta precio actual y calcula con su unidad real. La tarifa de un modelo de texto no sirve como proxy de una generación de imagen o vídeo. Haz primero un job de muestra con la resolución, duración o parámetros de voz previstos. Registra ID, modelo, opciones, tiempo, estado final y usage. Limita el tamaño del lote y añade revisión humana para resultados caros o visibles al cliente.
No guardes prompts ni URLs de medios en logs generales salvo que tu política lo permita. Limita archivos subidos, protege credenciales y evita servir medios privados desde URLs públicas. En edición, conserva el original hasta aprobar el resultado.
Checklist antes de producción
- Confirma ID, modalidad y entradas del modelo.
- Conserva la API key en el servidor.
- Usa prompt superior y opciones documentadas.
- Persiste job IDs y haz idempotente polling/webhook.
- Define estados de fallo y expiración.
- Calcula el presupuesto con la unidad real.
- Copia a almacenamiento propio los resultados duraderos.
Lee generación multimedia, webhooks multimedia y modelos multimedia. El catálogo público y las opciones pueden cambiar; esas páginas son la referencia para tu cuenta.
Protege los recursos de entrada
Para imagen a imagen o vídeo condicionado por imagen, utiliza la carga o URL que documente ese modelo. Verifica que la URL sea accesible sin la sesión del navegador. No copies una URL firmada de larga duración en un prompt que pueda quedar en logs. Comprueba tipo y tamaño de archivo en tu aplicación.
Si el usuario aporta la imagen, conserva el original según la política de consentimiento y retención. El resultado puede contener detalles reconocibles; aplica las reglas de privacidad y revisión antes de compartirlo.
Diseña la interfaz alrededor del estado del job
Tras recibir el ID, muestra enviado; durante el proceso, pendiente; y presenta estados terminales claros para éxito, fallo o expiración. Guarda tu propio registro para recuperar el estado si el usuario navega fuera. Evita dobles envíos deshabilitando el botón o usando una protección idempotente.
En lotes muestra por separado completados, fallidos y pendientes. Un spinner único no revela si un render largo está activo. Usa backoff de polling con límite y cambia a webhook cuando el volumen crezca.
Planifica la retención del resultado
No trates una URL devuelta como almacenamiento permanente salvo que la documentación lo garantice. Si el recurso debe conservarse, descárgalo a tu bucket y guarda su ID en la base de datos. Aplica control de acceso y eliminación cuando el usuario borre su proyecto.
Registra modelo, opciones, versión del prompt, job ID, objeto resultante, estado final y usage. Así podrás responder a preguntas de soporte sin guardar el prompt sensible completo ni compartir URLs de medios con todo el equipo.
