HiAPI
Blog

Comparatif et évaluation

Alternative à Replicate : comparatif hiapi vs Replicate pour la génération d'images et de vidéos (2026)

Ce qui doit changer dans les appels de prédiction, les webhooks et la facturation lors d'une migration de Replicate vers hiapi, avec une liste de migration en 10 étapes.

Nov 3, 2026
Alternative à Replicate : comparatif hiapi vs Replicate pour la génération d'images et de vidéos (2026)

Si votre génération d'images ou de vidéos tourne déjà sur Replicate et que vous cherchez une alternative, ce qui vous préoccupe probablement, c'est ceci : quels appels doivent changer, quel impact sur la logique de traitement des webhooks, comment les unités de facturation se correspondent, et où se trouvent les pièges lors de la migration. Cet article répond point par point. Les informations côté Replicate proviennent de sa documentation publique et de sa page de tarifs ; côté hiapi, elles proviennent de la liste des modèles en temps réel, de l'API de tarification /api/pricing et de la documentation officielle, vérifiées en novembre 2026. Pendant la rédaction, nous avons également envoyé de vraies requêtes sur hiapi ; les réponses citées dans l'article proviennent de ces requêtes.

Précisons d'emblée : Replicate est une plateforme très solide. Si vous dépendez de nombreux modèles communautaires, de fine-tunings personnalisés, ou si vous devez déployer vos propres modèles, ce qu'il permet de faire, hiapi ne cherche pas à le couvrir. hiapi convient à un autre type d'équipe : celle qui appelle principalement des modèles commerciaux d'image et de vidéo bien connus et souhaite que tous les modèles partagent une même convention d'appel asynchrone.

Vue d'ensemble des plateformes

Dimension Replicate hiapi
Ce qui peut être exécuté Modèles officiels, nombreux modèles communautaires, ainsi que vos propres modèles et fine-tunings Modèles commerciaux sélectionnés d'image, de vidéo et d'audio (98 modèles sur l'interface de tâches asynchrones au moment de la rédaction)
Création de tâche Modèles officiels via POST /v1/models/{owner}/{name}/predictions, ou POST /v1/predictions avec version Tous les modèles d'image, de vidéo et d'audio via POST /v1/tasks unifié, avec model + input
Authentification Authorization: Bearer <token> Authorization: Bearer <key>
Attente synchrone Prefer: wait=n maintient la requête jusqu'à 60 secondes Aucune, toujours asynchrone (polling ou callback)
Valeurs d'état starting, processing, succeeded, failed, canceled, aborted queued, handling, archiving, success, fail
Événements Webhook start, output, logs, completed (filtrables) Callback uniquement à l'état terminal (when: "final"), déclenché à la fois par success et fail
Signature Webhook HMAC-SHA256 sur id.timestamp.body, en-têtes webhook-*, secret whsec_ HMAC-SHA256 sur timestamp.body, en-têtes X-HiAPI-*, secret défini dans la console
Idempotence de soumission Non abordé dans la documentation que nous avons consultée En-tête Idempotency-Key, un rejeu renvoie le taskId d'origine
Conservation des sorties (API) Suppression par défaut des entrées, sorties, fichiers et journaux après 1 heure Stockage temp par défaut d'environ 7 jours ; stockage persistent optionnel (facturé à la taille)
Unité de facturation Certains modèles facturés à la sortie, la plupart facturés à la seconde d'exécution matérielle Facturation à la sortie : images à l'unité, vidéos à la seconde, audio à la piste ou à l'appel

Chaque cellule du tableau provient de la documentation respective des deux parties ou de nos requêtes réelles. Nous n'avons pas inclus les dimensions que les deux parties ne pouvaient pas vérifier simultanément.

Différences clés

Couverture des modèles : étendue vs liste sélectionnée

La force de Replicate, c'est l'étendue. Outre les modèles officiels, vous pouvez exécuter des modèles communautaires, verrouiller un hash de version spécifique, ou téléverser vos propres modèles. De nombreuses familles de modèles commerciaux existent des deux côtés : Replicate propose des pages de modèles pour FLUX, Nano Banana, Seedance, Kling, Veo, Wan, Seedream, et hiapi fournit également les versions actuelles de ces familles. Si votre produit dépend d'un checkpoint communautaire spécifique ou d'un fine-tuning privé, cette partie de votre activité ne peut pas être remplacée par hiapi.

La liste de hiapi est plus restreinte, centrée sur des modèles commerciaux prêts pour la production, incluant les versions actuelles comme Seedance 2.5, Kling 3.0, Veo 3.1, Nano Banana Pro, GPT Image 2, etc. La liste complète et les paramètres d'entrée de chaque modèle se trouvent sur la page des modèles hiapi.

Convention asynchrone : ce que votre code doit réellement modifier

Les deux plateformes sont principalement asynchrones ; la différence se situe au niveau de la boucle de polling et du traitement des webhooks :

  • hiapi n'a pas de raccourci synchrone. Si vous comptiez sur le Prefer: wait de Replicate pour récupérer une image en une seule requête, passer à hiapi nécessite « soumettre puis interroger » ou utiliser un callback. Lors de notre test réel avec FLUX.1 [schnell] en génération texte-image, la tâche est passée de archiving à success, avec un écart de 6 secondes entre les horodatages created et completed de la tâche ; en interrogeant toutes les 3 secondes, le résultat est arrivé au 4e polling. Les prompts en chinois peuvent être transmis directement, sans traitement supplémentaire.
  • Callback uniquement à l'état terminal. Replicate peut pousser les événements start, output en streaming et logs. hiapi ne rappelle qu'une seule fois lorsque la tâche atteint success ou fail, et le corps du callback est identique à l'objet data renvoyé par GET /v1/tasks/:id. Si votre interface s'appuie sur les webhooks logs pour afficher la progression en temps réel, vous devrez passer au polling sur hiapi.
  • Livraison au moins une fois. En cas d'échec de livraison du callback, hiapi réessaie immédiatement, puis à +1 minute, +5 minutes et +20 minutes. Le même taskId peut arriver plus d'une fois ; dédupliquez en fonction de celui-ci.
  • Les noms d'état changent. succeeded/failed correspondent à success/fail, et canceled/aborted n'ont pas d'équivalent. Lorsqu'une tâche hiapi échoue, l'interface de détail renvoie toujours HTTP 200 ; il faut donc évaluer data.status, et non se fier uniquement au code de statut HTTP.

Unités de facturation et prix

Replicate facture la plupart des modèles publics au temps matériel (à la seconde, le prix unitaire dépendant du GPU), certains modèles étant facturés à l'entrée et à la sortie. Sur sa page de tarifs, FLUX1.1 [pro] est à 0,04 $ par image, FLUX.1 [schnell] à 3,00 $ pour mille images. Si une prédiction est annulée après son démarrage, le temps déjà écoulé est quand même facturé ; une prédiction interrompue (aborted) avant son démarrage n'est pas facturée.

hiapi facture tous les modèles de tâches à la sortie, le coût étant indépendant du type de GPU sur lequel tourne le modèle. Le tableau suivant provient de l'interface /api/pricing en temps réel de hiapi, vérifiée en novembre 2026 :

Modèle sur hiapi id model Tarif de base
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 Pro nano-banana-pro 0,0285 $ / image
GPT Image 2 gpt-image-2/text-to-image 0,03 $ / image
Kling 3.0 texte-vidéo kling-3.0/text-to-video 0,129 $ / seconde
Seedance 2.5 texte-vidéo seedance-2.5/text-to-video 0,204 $ / seconde
Veo 3.1 Fast texte-vidéo veo-3.1-fast/text-to-video 0,25 $ / seconde

Certains modèles sont tarifés par paliers selon la résolution ou la durée, les paliers supérieurs étant plus chers que le tarif de base. Les chiffres les plus récents font foi sur la page de tarifs.

Sur les deux modèles FLUX pour lesquels les deux parties publient un prix à l'image, Replicate est moins cher : FLUX1.1 [pro] à 0,04 $ contre 0,05 $, schnell à 0,003 $ contre 0,005 $. Nous le reconnaissons honnêtement. Pour les autres modèles, l'écart de prix dépend de la version et de la résolution comparées ; nous vous conseillons de comparer un par un vos trois modèles les plus utilisés avant de décider. Par ailleurs, les tâches échouées sur hiapi ne sont pas facturées : le montant prélevé à la création est intégralement remboursé lorsque la tâche se termine en fail.

Liste de migration (Replicate → hiapi)

Les étapes ci-dessous couvrent les points à modifier dans une intégration Replicate typique. Les étapes 3, 4 et 6 correspondent à des situations réellement rencontrées lors de nos tests.

  1. Inventorier les modèles. Listez chaque modèle et version Replicate que vous appelez, ainsi que le volume d'appels mensuel. Identifiez séparément les modèles communautaires et les fine-tunings privés ; cette partie reste sur Replicate ou fait l'objet d'un autre arrangement.
  2. Trouver l'id model hiapi exact pour chaque modèle. Les ids hiapi comportent souvent un suffixe de routage, comme /text-to-image ou /image-to-video. Copiez-les depuis la page du modèle, ne les déduisez pas du owner/name de Replicate.
  3. Un id erroné renvoie 400. Nous avons envoyé respectivement black-forest-labs/flux-schnell et flux-schnell sans suffixe, et les deux ont renvoyé HTTP 400 : {"error_code":"MODEL_UNAVAILABLE","message":"model not available via /v1/tasks"}. L'id correct est flux-schnell/text-to-image.
  4. Envoyer explicitement du JSON. Avec curl -d '{...}' sans Content-Type, curl envoie le type formulaire application/x-www-form-urlencoded, et hiapi renvoie HTTP 415 UNSUPPORTED_MEDIA_TYPE. Ajoutez -H "Content-Type: application/json" ; si votre client HTTP ne définit pas automatiquement le type formulaire, vous pouvez aussi omettre cet en-tête.
  5. Remapper les champs input selon le modèle. Les noms de champs peuvent différer entre les deux plateformes et entre modèles (par exemple aspect_ratio et size, duration en entier ou en chaîne). Comparez un par un avec la description des paramètres du modèle dans la documentation hiapi.
  6. Inclure Idempotency-Key à chaque soumission. Nous avons soumis deux fois le même corps de requête avec la même clé ; la deuxième fois a renvoyé le taskId d'origine, avec l'en-tête de réponse Idempotent-Replay: true, sans créer de seconde tâche. Ainsi, une nouvelle tentative du client après un timeout réseau est sans risque.
  7. Réécrire le traitement des réponses. Lisez data.taskId dans la réponse de création, interrogez GET /v1/tasks/<taskId>, et lorsque data.status vaut success, récupérez le résultat dans data.output[].url.
  8. Réécrire le récepteur de webhook. Placez l'adresse de callback dans le champ de premier niveau callback: {"url": "..."} (pas dans input), vérifiez X-HiAPI-Signature avec le secret de signature de la console ; il s'agit du HMAC-SHA256 hexadécimal de timestamp + "." + body, et dédupliquez par taskId.
  9. Revoir la politique de conservation des fichiers. Les sorties de l'API Replicate sont supprimées au bout d'une heure, vous avez donc probablement déjà l'habitude de transférer les fichiers immédiatement après réception ; cette habitude s'applique aussi à hiapi. Dans nos tests, l'expireAt d'une sortie temp se situe 7 jours après l'achèvement de la tâche. Si vous avez besoin d'une conservation plus longue par hiapi, définissez "storage": "persistent".
  10. Faire tourner les deux en parallèle pendant une semaine. Basculez d'abord une petite partie du trafic vers hiapi, comparez avec vos propres prompts le coût par sortie réussie et le temps de bout en bout, puis basculez l'ensemble.

Voici la requête minimale utilisée pour nos tests, avec la clé remplacée par un espace réservé :

# 1. Soumettre la tâche (une nouvelle tentative avec la même Idempotency-Key est sans risque)
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": "一张极简等距插画:两台服务器机柜由一根发光的数据线相连,柔和马卡龙配色,纯白背景" }
  }'
# -> {"code":200,"data":{"taskId":"tk-hiapi-..."},"message":"success"}

# 2. Interroger jusqu'à ce que data.status soit "success" ou "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 秒>, ...}

La convention complète (énumération des états, codes d'erreur, signature des callbacks, politique de nouvelle tentative) est décrite dans la documentation de présentation de l'API asynchrone.

Comment choisir

Cas où hiapi est adapté :

  • Votre activité appelle principalement des modèles commerciaux d'image et de vidéo courants, et vous souhaitez que tous les modèles utilisent le même format de requête.
  • Vous souhaitez une tarification à la sortie, dont le coût ne varie pas selon le type de GPU ou la durée d'exécution.
  • Vous avez besoin de l'idempotence de soumission et du remboursement en cas d'échec intégrés à l'API.
  • Votre équipe a aussi besoin de modèles de texte, ou de documentation en chinois, et souhaite tout regrouper sous un même compte.

Cas où il vaut mieux rester sur Replicate :

  • Vous exécutez des modèles communautaires, verrouillez des versions spécifiques, ou déployez vos propres modèles et fine-tunings.
  • Vous dépendez des webhooks output/logs en streaming, ou du mode synchrone Prefer: wait.
  • Les quelques modèles que vous utilisez sont moins chers sur Replicate. C'est actuellement le cas pour FLUX1.1 [pro] et FLUX.1 [schnell].
  • La découverte de modèles et l'essai rapide de nombreux modèles open source comptent plus pour vous qu'une liste de modèles resserrée.

De nombreuses équipes finissent par utiliser les deux : Replicate pour l'expérimentation et l'exécution de modèles personnalisés, et un fournisseur de production pour les quelques modèles commerciaux à fort volume d'appels.

Questions fréquentes

hiapi est-il une alternative appropriée à Replicate ? Si vous appelez principalement des modèles commerciaux d'image et de vidéo comme FLUX, Nano Banana, GPT Image, Kling, Seedance, Veo, et que vous voulez une API asynchrone unique avec facturation à la sortie, oui. Il ne remplace pas les modèles communautaires ni vos propres fine-tunings.

Replicate ou hiapi : lequel est le moins cher ? Cela dépend du modèle. Sur les deux modèles FLUX pour lesquels les deux parties publient un prix à l'image, Replicate est moins cher. Pour les autres modèles, utilisez les tarifs actuels des deux parties et comparez un par un vos modèles à fort volume d'appels. Par ailleurs, le coût des modèles Replicate facturés à la durée varie avec le temps d'exécution, tandis que hiapi applique un prix fixe par sortie.

Comment migrer de Replicate vers hiapi ? Faites correspondre chaque modèle à l'id model hiapi exact, changez l'interface en POST https://api.hiapi.ai/v1/tasks, remappez les champs input selon le modèle, remplacez le contrôle d'état par success/fail, puis réécrivez le récepteur de webhook selon le callback signé à l'état terminal de hiapi. La liste ci-dessus détaille les 10 étapes.

hiapi propose-t-il des webhooks similaires à ceux de Replicate ? Oui, mais ils ne se déclenchent qu'à l'état terminal. Définissez callback.url au premier niveau de la requête de création ; hiapi pousse une fois lorsque la tâche réussit ou échoue, avec jusqu'à 4 tentatives au total en cas d'échec de livraison, et une signature HMAC-SHA256 disponible. Il n'y a pas d'événements de progression comme start, output ou logs.

Combien de temps les fichiers de sortie sont-ils conservés ? Replicate supprime par défaut les données de prédiction de l'API, y compris les fichiers de sortie, au bout d'une heure. Les sorties temp de hiapi sont conservées par défaut environ 7 jours, et plus longtemps avec le stockage persistent. Quelle que soit la plateforme, les fichiers à conserver à long terme doivent être téléchargés et transférés par vos soins.

Conclusion

Pour l'étendue des modèles, les modèles personnalisés et les événements de progression en streaming, Replicate est plus adapté. Si votre trafic de production se concentre sur quelques modèles commerciaux d'image et de vidéo, hiapi simplifie les choses : une interface, cinq valeurs d'état, une tarification à la sortie, et l'idempotence intégrée. Le moyen le plus rapide de décider est de migrer d'abord le modèle le plus utilisé : trouvez son id sur la page des modèles hiapi, exécutez le curl ci-dessus avec vos propres prompts, puis comparez avec vos coûts et temps actuels. Pour essayer, vous pouvez d'abord créer une clé HiAPI gratuite.

Pour aller plus loin

Articles similaires

Voir tous les articles →

Commencez avec des artefacts IA persistants

Obtenez votre clé API et appelez des modèles d'image, de vidéo et d'audio via une API unique basée sur les tasks.

Lire la documentation de l'API