Comparativa
Alternativa a Replicate: comparativa de generación de imagen y vídeo entre hiapi y Replicate (2026)
Qué hay que cambiar en las llamadas de predicción, los webhooks y la facturación al migrar de Replicate a hiapi, con una lista de migración de 10 pasos.
Si tu generación de imagen o vídeo ya funciona sobre Replicate y estás buscando alternativas, lo que más te preocupa probablemente sea esto: qué llamadas hay que cambiar, cómo afectará a la lógica de gestión de webhooks, cómo se corresponden las unidades de facturación y dónde es fácil equivocarse al migrar. Este artículo responde a cada una de estas cuestiones. La información del lado de Replicate proviene de su documentación pública y su página de precios; la del lado de hiapi proviene del listado de modelos en tiempo real, la interfaz de precios /api/pricing y la documentación oficial, todo verificado en noviembre de 2026. Durante la redacción también enviamos solicitudes reales a hiapi; las respuestas citadas en el texto provienen de esas solicitudes.
Para dejarlo claro desde el principio: Replicate es una plataforma muy potente. Si dependes de una gran cantidad de modelos de la comunidad, de ajustes finos personalizados o de desplegar tus propios modelos, hay cosas que hace y que hiapi no pretende cubrir. hiapi encaja en otro tipo de equipo: el que llama principalmente a modelos comerciales conocidos de imagen y vídeo y quiere que todos los modelos compartan una misma convención de llamada asíncrona.
Visión general de la plataforma
| Dimensión | Replicate | hiapi |
|---|---|---|
| Qué se puede ejecutar | Modelos oficiales, una gran cantidad de modelos de la comunidad, y tus propios modelos y ajustes finos | Modelos comerciales seleccionados de imagen, vídeo y audio (98 modelos en la interfaz de tareas asíncronas en el momento de la redacción) |
| Crear tarea | Para modelos oficiales, POST /v1/models/{owner}/{name}/predictions, o POST /v1/predictions con version |
Todos los modelos de imagen, vídeo y audio usan POST /v1/tasks, pasando model + input |
| Autenticación | Authorization: Bearer <token> |
Authorization: Bearer <key> |
| Espera síncrona | Prefer: wait=n mantiene la solicitud como máximo 60 segundos |
No existe, siempre asíncrono (sondeo o callback) |
| Valores de estado | starting, processing, succeeded, failed, canceled, aborted |
queued, handling, archiving, success, fail |
| Eventos de webhook | start, output, logs, completed (filtrables) |
Solo callback en el estado final (when: "final"), tanto success como fail lo activan |
| Firma del webhook | HMAC-SHA256 sobre id.timestamp.body, cabeceras webhook-*, clave whsec_ |
HMAC-SHA256 sobre timestamp.body, cabeceras X-HiAPI-*, clave configurada en la consola |
| Idempotencia de envío | No se trata en la documentación que consultamos | Cabecera Idempotency-Key; el reintento devuelve el taskId original |
| Retención de salidas (API) | Por defecto, las entradas, salidas, archivos y registros se eliminan tras 1 hora | El almacenamiento temp dura por defecto unos 7 días; almacenamiento persistent opcional (facturado por tamaño) |
| Unidad de facturación | Algunos modelos cobran por salida; la mayoría cobra por segundos de ejecución del hardware | Cobro por salida: imagen por unidad, vídeo por segundo, audio por pista o por uso |
Cada celda de la tabla proviene de la documentación de cada parte o de nuestras solicitudes reales. Las dimensiones que no pudimos verificar en ambos lados no las hemos incluido.
Diferencias clave
Cobertura de modelos: amplitud frente a lista seleccionada
La fortaleza de Replicate es la amplitud. Además de los modelos oficiales, puedes ejecutar modelos de la comunidad, fijar el hash de una version concreta o subir tus propios modelos. Muchas familias de modelos comerciales están en ambos lados: Replicate tiene páginas para modelos de FLUX, Nano Banana, Seedance, Kling, Veo, Wan y Seedream, y hiapi también ofrece las versiones actuales de estas familias. Si tu producto depende de un checkpoint concreto de la comunidad o de un ajuste fino privado, esa parte del negocio no la puede sustituir hiapi.
La lista de hiapi es más reducida y se centra en modelos comerciales listos para producción, incluidas las versiones actuales como Seedance 2.5, Kling 3.0, Veo 3.1, Nano Banana Pro y GPT Image 2. La lista completa y los parámetros de entrada de cada modelo están en la página de modelos de hiapi.
Convención asíncrona: qué hay que cambiar realmente en tu código
Ambas plataformas son principalmente asíncronas; la diferencia se nota en el bucle de sondeo y en el tratamiento de webhooks:
- hiapi no tiene atajo síncrono. Si dependes de
Prefer: waitde Replicate para obtener la imagen en una sola solicitud, al pasar a hiapi necesitarás «enviar y sondear» o usar callbacks. En nuestra prueba real de texto a imagen con FLUX.1 [schnell], la tarea pasó dearchivingasuccess; las marcas de tiempocreatedycompletedde la tarea difirieron en 6 segundos, con sondeo cada 3 segundos obtuvimos el resultado en el cuarto intento. El prompt en chino se puede enviar directamente, sin procesamiento adicional. - Solo callback en el estado final. Replicate puede enviar eventos
start,outputen streaming ylogs. hiapi solo devuelve la llamada una vez cuando la tarea entra ensuccessofail; el cuerpo del callback coincide con el objetodataque devuelveGET /v1/tasks/:id. Si tu interfaz muestra el progreso en tiempo real mediante el webhooklogs, en hiapi tendrás que usar sondeo. - Entrega al menos una vez. Si falla la entrega del callback, hiapi lo reintenta de inmediato y luego a +1 minuto, +5 minutos y +20 minutos. El mismo
taskIdpuede llegar más de una vez; deduplica por él. - Los nombres de estado cambian.
succeeded/failedcorresponden asuccess/fail;canceled/abortedno tienen estado equivalente. Cuando una tarea de hiapi falla, la interfaz de detalles sigue devolviendo HTTP 200, así que hay que comprobardata.statusy no solo el código de estado HTTP.
Unidades de facturación y precios
Replicate cobra la mayoría de los modelos públicos por tiempo de hardware (por segundo, con precio según la GPU); algunos modelos cobran por entrada y salida. En su página de precios, FLUX1.1 [pro] cuesta $0.04 por imagen y FLUX.1 [schnell] $3.00 por cada mil imágenes. Si cancelas después de que empiece la predicción, el tiempo ya ejecutado se sigue cobrando; las predicciones abortadas antes de empezar no se cobran.
hiapi cobra todos los modelos de tareas por salida, y el coste no depende del tipo de GPU en que se ejecute el modelo. La siguiente tabla proviene de la interfaz en tiempo real /api/pricing de hiapi, verificada en noviembre de 2026:
| Modelo en hiapi | id de model |
Precio base |
|---|---|---|
| FLUX.1 [schnell] | flux-schnell/text-to-image |
$0.005 / imagen |
| FLUX1.1 [pro] | flux-1.1-pro |
$0.05 / imagen |
| FLUX.2 [pro] | flux-2/text-to-image |
$0.05 / imagen |
| Nano Banana Pro | nano-banana-pro |
$0.0285 / imagen |
| GPT Image 2 | gpt-image-2/text-to-image |
$0.03 / imagen |
| Kling 3.0 texto a vídeo | kling-3.0/text-to-video |
$0.129 / segundo |
| Seedance 2.5 texto a vídeo | seedance-2.5/text-to-video |
$0.204 / segundo |
| Veo 3.1 Fast texto a vídeo | veo-3.1-fast/text-to-video |
$0.25 / segundo |
Algunos modelos tienen tarifas por resolución o duración, y los tramos superiores cuestan más que el precio base. Las cifras más recientes están en la página de precios.
En los dos modelos FLUX para los que ambos publican el precio por imagen, Replicate es más barato: FLUX1.1 [pro] cuesta $0.04 frente a $0.05, y schnell $0.003 frente a $0.005. Lo reconocemos con honestidad. La diferencia de precio de otros modelos depende de qué versión y qué resolución compares; conviene comparar precio modelo por modelo con tus tres modelos de mayor volumen antes de decidir. Además, en hiapi las tareas fallidas no se cobran: el importe retenido al crear la tarea se devuelve íntegramente cuando la tarea termina en fail.
Lista de migración (Replicate → hiapi)
Los siguientes pasos cubren lo que hay que cambiar en una integración típica de Replicate. Los pasos 3, 4 y 6 son situaciones que encontramos realmente en nuestras pruebas.
- Inventario de modelos. Enumera cada modelo y versión de Replicate que llamas, junto con el volumen mensual de llamadas. Marca por separado los modelos de la comunidad y los ajustes finos privados; esa parte se queda en Replicate o se gestiona de otra forma.
- Encuentra el id de
modelexacto de hiapi para cada modelo. Los id de hiapi suelen llevar sufijo de ruta, como/text-to-imageo/image-to-video. Cópialo de la página del modelo, no lo deduzcas a partir delowner/namede Replicate. - Un id mal escrito devuelve 400. Enviamos
black-forest-labs/flux-schnellyflux-schnellsin sufijo, y ambos devolvieron HTTP 400:{"error_code":"MODEL_UNAVAILABLE","message":"model not available via /v1/tasks"}. El id correcto esflux-schnell/text-to-image. - Envía JSON de forma explícita. Si usas directamente
curl -d '{...}'sin Content-Type, curl lo envía como tipo de formularioapplication/x-www-form-urlencodedy hiapi devuelve HTTP 415UNSUPPORTED_MEDIA_TYPE. Basta con añadir-H "Content-Type: application/json"; si tu cliente HTTP no establece automáticamente el tipo de formulario, también puedes omitir esta cabecera. - Vuelve a mapear los campos de
inputsegún el modelo. Los nombres de campo pueden diferir entre ambas plataformas y entre distintos modelos (por ejemplo,aspect_ratioysize, odurationcomo entero y como cadena). Compáralos uno a uno con la descripción de parámetros del modelo en la documentación de hiapi. - Incluye
Idempotency-Keyen cada envío. Enviamos dos veces el mismo cuerpo de solicitud con la misma clave; la segunda devolvió eltaskIdoriginal con la cabecera de respuestaIdempotent-Replay: true, sin crear una segunda tarea. Así, reintentar tras un tiempo de espera de red en el cliente es seguro. - Reescribe el tratamiento de la respuesta. Lee
data.taskIdde la respuesta de creación, consultaGET /v1/tasks/<taskId>y, cuandodata.statusseasuccess, obtén el resultado dedata.output[].url. - Reescribe el receptor del webhook. Coloca la URL de callback en el campo de nivel superior
callback: {"url": "..."}(no dentro deinput), verificaX-HiAPI-Signaturecon la clave de firma de la consola, que es el HMAC-SHA256 hexadecimal detimestamp + "." + body, y deduplica portaskId. - Revisa la política de retención de archivos. Las salidas de la API de Replicate se eliminan al cabo de una hora, así que probablemente ya tengas la costumbre de transferir los archivos en cuanto los recibes; esa costumbre sigue siendo válida en hiapi. En nuestras pruebas, el
expireAtde las salidastempera 7 días después de completarse la tarea. Si necesitas que hiapi los conserve más tiempo, configura"storage": "persistent". - Ejecuta en paralelo durante una semana. Desvía primero una pequeña parte del tráfico a hiapi, compara con tus propios prompts el coste de cada salida correcta y el tiempo de extremo a extremo, y luego cambia por completo.
La solicitud mínima que usamos en las pruebas, con la clave sustituida por un marcador de posición, es la siguiente:
# 1. Enviar tarea (reintentar con la misma Idempotency-Key es seguro)
curl -s https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-42-thumbnail" \
-d '{
"model": "flux-schnell/text-to-image",
"input": { "prompt": "Una ilustración isométrica minimalista: dos racks de servidores conectados por un cable de datos brillante, colores pastel suaves, fondo blanco puro" }
}'
# -> {"code":200,"data":{"taskId":"tk-hiapi-..."},"message":"success"}
# 2. Sondear hasta que data.status sea "success" o "fail"
curl -s https://api.hiapi.ai/v1/tasks/tk-hiapi-... \
-H "Authorization: Bearer $HIAPI_API_KEY"
# -> data.output[0] = {"type":"image","url":"https://temp.hiapi.ai/...jpg","expireAt":<segundos unix>, ...}
La convención completa (enumeración de estados, códigos de error, firma de callbacks, política de reintentos) está en la documentación de introducción a la API asíncrona.
Cómo elegir
Casos en los que conviene elegir hiapi:
- Tu negocio llama principalmente a modelos comerciales de imagen y vídeo de referencia y quieres que todos los modelos usen el mismo formato de solicitud.
- Quieres precios por salida, sin que el coste varíe según el tipo de GPU o el tiempo de ejecución.
- Necesitas idempotencia de envío y reembolso por fallo integrados en la API.
- Tu equipo también necesita modelos de texto o documentación en chino y prefiere tenerlo todo en la misma cuenta.
Casos en los que conviene quedarse en Replicate:
- Ejecutas modelos de la comunidad, fijas versiones concretas o despliegas tus propios modelos y ajustes finos.
- Dependes de webhooks
output/logsen streaming o del modo síncronoPrefer: wait. - Los modelos que usas son más baratos en Replicate. En el caso de FLUX1.1 [pro] y FLUX.1 [schnell], actualmente es así.
- Para ti, descubrir modelos y probar rápidamente una gran cantidad de modelos de código abierto es más importante que una lista de modelos reducida.
Muchos equipos acaban usando ambos: Replicate para experimentar y ejecutar modelos personalizados, y un proveedor de producción para los pocos modelos comerciales de alto volumen.
Preguntas frecuentes
¿Es hiapi una alternativa adecuada a Replicate? Si llamas principalmente a modelos comerciales de imagen y vídeo como FLUX, Nano Banana, GPT Image, Kling, Seedance o Veo y quieres una API asíncrona y facturación por salida, es adecuada. No sustituye a los modelos de la comunidad ni a tus propios ajustes finos.
¿Qué es más barato, Replicate o hiapi? Depende del modelo. En los dos modelos FLUX para los que ambos publican el precio por imagen, Replicate es más barato. Para el resto, compara con los precios actuales de cada parte y modelo por modelo con tus modelos de mayor volumen. Además, en Replicate el coste de los modelos facturados por tiempo varía con el tiempo de ejecución, mientras que hiapi tiene un precio fijo por salida.
¿Cómo migrar de Replicate a hiapi?
Asigna cada modelo a su id exacto de model de hiapi, cambia la interfaz a POST https://api.hiapi.ai/v1/tasks, vuelve a mapear los campos de input según el modelo, cambia la comprobación de estado a success/fail y reescribe el receptor del webhook según el callback firmado de estado final de hiapi. La lista anterior detalla los 10 pasos.
¿Tiene hiapi webhooks similares a los de Replicate?
Sí, pero solo se activan en el estado final. Configura callback.url en el nivel superior de la solicitud de creación; hiapi envía una notificación cuando la tarea tiene éxito o falla, con un máximo de 4 intentos en caso de fallo de entrega, y puede firmarse con HMAC-SHA256. No hay eventos de proceso como start, output o logs.
¿Cuánto tiempo se conservan los archivos de salida?
Replicate elimina por defecto los datos de predicción de la API, incluidos los archivos de salida, al cabo de una hora. Las salidas temp de hiapi se conservan por defecto unos 7 días, y con el almacenamiento persistent más tiempo. En cualquier caso, los archivos que necesites conservar a largo plazo debes descargarlos y transferirlos tú mismo.
Conclusión
Para amplitud de modelos, modelos personalizados y eventos de progreso en streaming, Replicate es más adecuado. Si el tráfico de producción se concentra en unos pocos modelos comerciales de imagen y vídeo, hiapi es más sencillo: una interfaz, cinco valores de estado, precios por salida e idempotencia integrada. La forma más rápida de decidir es migrar primero el modelo de mayor volumen: busca su id en la página de modelos de hiapi, ejecuta el curl anterior con tus propios prompts y compara con tu coste y tiempo actuales. Si quieres probarlo, puedes registrar una clave HiAPI gratuita.
Lecturas complementarias
Artículos relacionados
Ver todos los artículos →-
Comparativa
Wan 2.6 Flash vs Wan 2.7: ¿conviene actualizar?
Presupuesto en 720P y resultados en 1080P del zorro y el coche; condiciones de audio y nivel real indicados grupo por grupo.
-
Comparativa
Vidu Q4 Preview vs Kling 3.0: ¿cómo elegir para imagen a video?
Si quieres sonido por defecto, 16 segundos y 5 niveles de resolución, elige Vidu Q4 Preview; si quieres fijar la imagen con fotogramas inicial y final, elige Kling 3.0. Incluye dos comparativas con el mismo prompt: hidroavión y barista.
-
Comparativa
Recraft V4.1 vs Ideogram 4.5: ¿cómo elegir entre logotipo tipográfico y póster?
Ejemplos de logotipos tipográficos y pósteres generados con los mismos prompts enviados en dos grupos, que ilustran las diferencias en el interruptor de expansión, el nivel de calidad y los píxeles, proporciones y formatos reales.