Search

Search HiAPI models, tools, and resources.

Back to blog
Comparison9 min read

Replicate Alternative for Image & Video Generation: hiapi vs Replicate (2026)

What changes in your prediction calls, webhooks and billing when you move image and video jobs to hiapi, with a 10-step migration checklist.

hiapiFLUXNano BananaComparisonMigration

If you already run image or video generation on Replicate and are looking at alternatives, you probably don't need a sales pitch. You need to know which calls change, what happens to your webhook handler, how billing units compare, and where the switch can go wrong. This page covers those points. It is based on Replicate's public docs and pricing page and on hiapi's live model catalog, pricing endpoint and docs, all checked in November 2026. On the hiapi side we also ran real requests while writing it.

To be clear up front, Replicate is a strong platform. If you depend on a long tail of community models, custom fine-tunes, or deploying your own model, it does things hiapi does not try to do. hiapi fits teams whose workload is mostly well-known commercial image and video models and who want one async contract for all of them.

Platform overview

DimensionReplicatehiapi
What you can runOfficial models, a large community catalog, and your own models/fine-tunesA curated catalog of commercial image, video and audio models (98 models on the async task API at the time of writing)
Create a jobPOST /v1/models/{owner}/{name}/predictions (official models) or POST /v1/predictions with a versionPOST /v1/tasks with model + input for every image, video and audio model
AuthAuthorization: Bearer <token>Authorization: Bearer <key>
Synchronous optionPrefer: wait=n holds the request open for up to 60 sNone. Always async (poll or callback)
Status valuesstarting, processing, succeeded, failed, canceled, abortedqueued, handling, archiving, success, fail
Webhook eventsstart, output, logs, completed (filterable)Terminal only (when: "final"), fires on both success and fail
Webhook signingHMAC-SHA256 over id.timestamp.body, webhook-* headers, whsec_ secretHMAC-SHA256 over timestamp.body, X-HiAPI-* headers, secret set in the console
Submit-side idempotencyNot covered in the docs we reviewedIdempotency-Key header, replays return the original taskId
Output retention (API)Inputs, outputs, files and logs removed after 1 hour by defaulttemp storage kept about 7 days by default; persistent storage optional (billed by size)
Billing unitPer output for some models, per second of hardware time for most othersPer output: per image, per second of video, per song/request for audio

Every cell above comes from each platform's own documentation or from our live requests. We left out dimensions we could not verify for both sides.

Key differences

Model coverage: breadth vs. a curated catalog

Replicate's strength is breadth. Besides official models, you can run community models, pin a specific version hash, and push your own model. Many of the same commercial families appear on both platforms. Replicate has model pages for FLUX, Nano Banana, Seedance, Kling, Veo, Wan and Seedream, and hiapi sells current versions of the same families. If your product depends on a specific community checkpoint or a private fine-tune, hiapi is not a replacement for that part of your stack.

hiapi's catalog is narrower and focused on production commercial models, including current releases such as Seedance 2.5, Kling 3.0, Veo 3.1, Nano Banana Pro and GPT Image 2. The full list with per-model input schemas is on the hiapi models page.

Async contract: what your code actually touches

Both platforms are async-first. The differences show up in your polling loop and webhook handler:

  • No sync shortcut on hiapi. If you rely on Replicate's Prefer: wait to get a fast image back in one request, you need a submit-then-poll loop or a callback on hiapi. On our test (FLUX.1 [schnell] text-to-image), the task went handling → archiving → success, and the task's created→completed timestamps were 6 seconds apart. Polling every 3 seconds caught the result on the fourth check.
  • Terminal-only callbacks. Replicate can send start, streaming output and logs events. hiapi sends one callback when the task reaches success or fail, and the callback body is identical to the data object of GET /v1/tasks/:id. If your UI shows live progress from logs webhooks, you need polling for that on hiapi.
  • At-least-once delivery. hiapi retries a failed callback delivery immediately, then at +1 min, +5 min and +20 min. The same taskId can arrive more than once, so dedupe on it.
  • Status names change. succeeded/failed become success/fail, and canceled/aborted have no equivalent. A failed hiapi task still returns HTTP 200 from the detail endpoint, so check data.status, not the HTTP code.

Billing units and pricing

Replicate bills most public models by hardware time (per second, with the rate set by the GPU), and some models by input and output. Its pricing page lists, for example, FLUX1.1 [pro] at $0.04 per output image and FLUX.1 [schnell] at $3.00 per thousand images. If a prediction is canceled after it started, you pay for the time it ran. A prediction aborted before it starts is free.

hiapi bills every task model per output, so the cost doesn't depend on which GPU the model ran on. List prices from hiapi's live /api/pricing endpoint, checked November 2026:

Model on hiapimodel idListed base price
FLUX.1 [schnell]flux-schnell/text-to-image$0.005 / image
FLUX1.1 [pro]flux-1.1-pro$0.05 / image
FLUX.2 [pro]flux-2/text-to-image$0.05 / image
Nano Banana Pronano-banana-pro$0.0285 / image
GPT Image 2gpt-image-2/text-to-image$0.03 / image
Kling 3.0 text-to-videokling-3.0/text-to-video$0.129 / second
Seedance 2.5 text-to-videoseedance-2.5/text-to-video$0.204 / second
Veo 3.1 Fast text-to-videoveo-3.1-fast/text-to-video$0.25 / second

Some models have resolution or duration tiers above the base price. The current numbers are always on the pricing page.

On the two FLUX models where both platforms publish a per-image price, Replicate is cheaper: $0.04 vs $0.05 for FLUX1.1 [pro], and $0.003 vs $0.005 for schnell. We are not going to argue otherwise. Price differences on other models depend on which version and resolution you compare, so compare your own top three models by volume before deciding. On hiapi, failed tasks are never charged: the amount reserved at creation is refunded in full when a task ends in fail.

Migration checklist (Replicate → hiapi)

These steps cover the changes a typical Replicate integration needs. Steps 3, 4 and 6 come from issues we hit while writing this.

  1. Inventory your models. List each Replicate model and version you call, with monthly volume. Mark any community models or private fine-tunes. Those stay on Replicate or need a different plan.
  2. Map each to an exact hiapi model id. hiapi ids often carry a route suffix such as /text-to-image or /image-to-video. Copy them from the model page; don't derive them from Replicate's owner/name.
  3. Expect a 400 for wrong ids. We sent both black-forest-labs/flux-schnell and bare flux-schnell. Both returned HTTP 400 {"error_code":"MODEL_UNAVAILABLE","message":"model not available via /v1/tasks"}. The working id is flux-schnell/text-to-image.
  4. Send JSON explicitly. A plain curl -d '{...}' without a content-type header is sent as form data, and hiapi rejects it with HTTP 415 UNSUPPORTED_MEDIA_TYPE. Add -H "Content-Type: application/json", or omit the header entirely in an HTTP client that doesn't set a form type.
  5. Re-map input fields per model. Field names differ between platforms and between models (for example aspect_ratio vs size, integer vs string duration). Check each model's schema on its hiapi docs page.
  6. Add an Idempotency-Key to every submit. We submitted the same body twice with one key. The second call returned the original taskId with the header Idempotent-Replay: true, and no second task was created. This makes client retries on network timeouts safe.
  7. Replace the response handling. Read data.taskId from the create response, poll GET /v1/tasks/<taskId>, and take results from data.output[].url when data.status is success.
  8. Rewrite the webhook receiver. Move the URL into a top-level callback: {"url": "..."} field (never inside input), verify X-HiAPI-Signature = hex HMAC-SHA256 of timestamp + "." + body using the signing key from your console settings, and dedupe on taskId.
  9. Revisit file retention. Replicate deletes API outputs after an hour, so you likely copy files right away already, and that habit still works. hiapi temp outputs carried an expireAt 7 days after completion in our test. Set "storage": "persistent" if you want hiapi to keep them longer.
  10. Run both in parallel for a week. Send a small share of traffic to hiapi, compare cost per successful output and end-to-end latency with your own prompts, then cut over.

Here is the minimal request we used, with the key placeholder swapped in:

# 1. Submit (safe to retry with the same Idempotency-Key)
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": "A minimalist isometric illustration of two server racks connected by a glowing cable, flat pastel colors, clean white background" }
  }'
# -> {"code":200,"data":{"taskId":"tk-hiapi-..."},"message":"success"}

# 2. Poll until data.status is "success" or "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":<unix seconds>, ...}

The full contract (status enum, error codes, callback signing, retries) is in the async API introduction.

When to choose each

Choose hiapi when:

  • Your workload is mostly mainstream commercial image and video models and you want one request format for all of them.
  • You want per-output pricing that doesn't depend on GPU type or run time.
  • You want submit-side idempotency and refunds on failed tasks built into the API.
  • Your team also needs text models or Chinese-language documentation under the same account.

Stay on Replicate when:

  • You run community models, pin specific versions, or deploy your own models and fine-tunes.
  • You depend on streaming output/logs webhooks or the Prefer: wait synchronous mode.
  • The specific models you use are cheaper there. For FLUX1.1 [pro] and FLUX.1 [schnell], they currently are.
  • Model discovery and trying many open-source models quickly matters more than a small catalog.

Many teams end up using both: Replicate for experiments and custom models, and a single production provider for the few high-volume commercial models.

FAQ

Is hiapi a good Replicate alternative? It is for teams that mainly call commercial image and video models such as FLUX, Nano Banana, GPT Image, Kling, Seedance and Veo, and want one async API and per-output billing. It is not a replacement for running community models or your own fine-tunes.

Which is cheaper, Replicate or hiapi? It depends on the model. On the two FLUX models where both publish per-image prices, Replicate is cheaper. For other models, compare your own high-volume models on each platform's current pricing. Replicate's time-billed models also vary with run time, while hiapi charges a fixed price per output.

How do I migrate from Replicate to hiapi? Map each model to an exact hiapi model id, change the endpoint to POST https://api.hiapi.ai/v1/tasks, re-map input fields per model, switch your status checks to success/fail, and rewrite the webhook receiver for hiapi's terminal-only signed callback. The checklist above lists all ten steps.

Does hiapi have webhooks like Replicate? Yes, but only for terminal states. Set callback.url at the top level of the create request. hiapi posts once when the task succeeds or fails, retries up to four attempts in total, and can sign the request with HMAC-SHA256. There are no start, output or logs events.

How long do output files last? Replicate removes API prediction data, including output files, after one hour by default. hiapi keeps temp outputs for about 7 days by default, or longer with persistent storage. Either way, download files you need to keep.

Conclusion

Replicate is the better fit for model breadth, custom models and streaming progress events. hiapi is the simpler fit when production traffic is concentrated on a handful of commercial image and video models: one endpoint, five status values, per-output prices and built-in idempotency. The quickest way to decide is to port your highest-volume model first. Pick its id on the hiapi models page, run the curl above with your own prompt, and compare cost and latency against what you pay today.

Generate it with HiAPI

Choose a model, enter your prompt, and see the result.

HiAPI Blog

Related articles

HiAPI

Generate it with HiAPI

Start generating