Une seule API pour tous les modèles vidéo IA
Si vous connaissez OpenRouter pour les modèles de langage, Revana applique la même idée à la génération vidéo et image : une seule clé API, un seul format de requête et un seul solde prépayé pour Seedance, Veo, Kling, Wan, Nano Banana Pro, GPT Image 2 et le reste du catalogue, avec repli automatique quand une route en amont échoue.
Le problème de l'appel direct à chaque modèle
Chaque éditeur de modèle gère sa propre API, avec son propre compte, ses propres clés, son propre format de requête, son propre flux d'état des tâches et sa propre facturation. Construire sur trois d'entre eux, c'est trois intégrations à maintenir, trois soldes à recharger et trois jeux de codes d'erreur à gérer. Certains modèles sont proposés par plusieurs plateformes à des prix différents, avec des limites différentes et une capacité qui va et vient.
Le coût apparaît quand vous voulez essayer un nouveau modèle, ce qui, en 2026, arrive tous les quelques mois. Chaque nouveau modèle exige une intégration de plus avant même que vous puissiez voir s'il convient à votre produit.
Comment fonctionne Revana
- Une seule clé. Inscrivez-vous et créez une clé API dans le tableau de bord. Elle fonctionne pour tous les modèles du catalogue.
- Une seule requête. Envoyez
POST /v1/generationsavec un identifiantmodelet un objetinput. Les noms de champs sont les mêmes pour tous les modèles :prompt,image_url,end_image_url,image_urls,resolution,duration,aspect_ratioetaudio. - Un prix avant toute exécution. Le prix de la tâche provient du catalogue et est bloqué sur votre solde prépayé. Un champ ou une valeur que le modèle ne prend pas en charge est rejeté avec un
422avant toute facturation. Vous pouvez aussi définirmax_cost_usdcomme plafond. - Routage. Le routeur envoie la tâche vers la route la moins chère pour ce modèle. Si la route échoue ou dépasse le délai, la tâche passe à la suivante.
- Un seul format de résultat. Interrogez
GET /v1/generations/{id}. Quand le statut estsucceeded, les fichiers sont dansoutput.urlset le montant facturé danscost_usd. Si la tâche échoue, le blocage est libéré.
Les tâches sont asynchrones : les images prennent généralement quelques secondes, et la vidéo de moins d'une minute à plusieurs minutes. La documentation contient la référence complète des champs et les codes d'erreur.
La même requête sur trois modèles
Comme le format de requête est partagé, comparer des modèles se résume à une boucle. Ce script envoie un prompt à Seedance 2.0, Veo 3.1 Fast et Wan 3.0, puis affiche chaque résultat et son coût. Chaque modèle garde ses propres options : choisissez donc des valeurs que les trois acceptent ; ici, 720p, 8 secondes et 16:9.
import os
import time
import requests
API = "https://api.revana.si/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['REVANA_API_KEY']}"}
PROMPT = (
"A paper boat sails down a rain-soaked street gutter at dusk, "
"neon signs reflected in the water. Rain, distant traffic."
)
MODELS = ["seedance-2.0", "veo-3.1-fast", "wan-3.0"]
# Submit the same job to every model; each call returns 202 with an id.
jobs = {}
for model in MODELS:
resp = requests.post(f"{API}/generations", headers=HEADERS, json={
"model": model,
"input": {
"prompt": PROMPT,
"resolution": "720p",
"duration": 8,
"aspect_ratio": "16:9",
"audio": True,
},
"max_cost_usd": 1.5,
})
resp.raise_for_status()
jobs[model] = resp.json()["id"]
# Poll each job until it finishes.
for model, job_id in jobs.items():
while True:
job = requests.get(f"{API}/generations/{job_id}", headers=HEADERS).json()
if job["status"] in ("succeeded", "failed"):
break
time.sleep(5)
if job["status"] == "succeeded":
print(model, job["output"]["urls"][0], job["cost_usd"])
else:
print(model, "failed:", job["error"])Aux prix du catalogue d'octobre 2026, les trois tâches coûtent :
| Modèle | Requête | Prix |
|---|---|---|
| Seedance 2.0 | 720p, 8 s, son inclus dans le tarif | $1.20 |
| Veo 3.1 Fast | 720p, 8 s, avec son (tarifé séparément) | $0.80 |
| Wan 3.0 | 720p, 8 s, son inclus dans le tarif | $0.72 |
Le max_cost_usd de 1.5 couvre les trois. Une tâche qui coûterait plus que son plafond ne s'exécute pas.
Repli entre routes
Une route est une source de capacité en amont pour un modèle. De nombreux modèles de Revana en ont plus d'une, et le routeur les utilise dans l'ordre :
- La moins chère d'abord. Chaque tâche part vers la route la moins chère qui accepte ses options.
- La suivante en cas d'échec. Si cette route échoue ou dépasse le délai, la tâche passe automatiquement à la route suivante. Le champ
attemptsindique combien ont été essayées. - Même modèle, même prix. Chaque route sert le modèle que vous avez demandé, au prix listé. Le routeur ne le remplace jamais par un autre modèle.
- Une seule facturation. Seule la route qui réussit est facturée. Si toutes les routes échouent, la tâche se termine en
failedet ne coûte rien.
| Modèle | Type | Routes |
|---|---|---|
| Seedance 2.5 | video | cinq routes |
| Seedance 2.0 | video | trois routes |
| Kling 3.0 | video | deux routes |
| Veo 3.1 Fast | video | deux routes |
| Veo 3.1 | video | deux routes |
| Wan 3.0 | video | trois routes |
| Nano Banana Pro | image | une route |
| GPT Image 2 | image | deux routes |
Un modèle avec une seule route ne peut pas basculer. Le repli augmente les chances qu'une tâche aboutisse, mais ce n'est pas une garantie de disponibilité : gérez les tâches failed dans votre code, par exemple en réessayant plus tard ou en basculant vous-même vers un autre modèle.
Tarifs et crédits
Revana fonctionne à l'usage. Il n'y a ni abonnement, ni sièges, ni minimum mensuel : vous achetez du crédit prépayé par packs de $10, $50, $100, $500, $1,000 ou $5,000 et le dépensez sur n'importe quel modèle à son prix listé.
- La plupart des modèles vidéo sont tarifés à la seconde de sortie, selon la résolution et, pour certains modèles, selon que le son est activé ou non.
- Les modèles d'image sont tarifés à l'image, selon la taille.
- Le prix est bloqué à l'envoi, facturé quand la tâche réussit et libéré quand elle échoue.
La page des tarifs liste les prix de chaque modèle. Nos guides montrent ce que coûtent les travaux courants sur Seedance 2.0, Veo 3.1 et Kling 3.0.
Lire le catalogue dans le code
Le catalogue complet est un fichier JSON public à l'adresse https://revana.si/data/models.json. Les principaux champs de chaque modèle :
| Champ | Ce qu'il contient |
|---|---|
id | la chaîne à envoyer dans model |
name, maker | le nom affiché et la société qui crée le modèle |
kind | video or image |
tasks | ce que le modèle accepte, comme text_to_video ou image_to_video |
options | résolutions, formats d'image, durées, son et limite d'images en entrée |
price | l'unité (à la seconde, à l'image ou à la tâche) et le prix de chaque option |
routes | combien de routes servent le modèle |
Par exemple, pour lister tous les modèles capables de produire une vidéo à partir d'un texte :
# Every model that can make a video from a text prompt
curl -s https://revana.si/data/models.json \
| jq -r '.models[] | select(any(.tasks[]; . == "text_to_video")) | .id'Utilisez-le pour construire un sélecteur de modèle, vérifier les options avant d'envoyer, ou estimer le prix d'une tâche dans votre propre interface. Ces mêmes données alimentent la page des modèles.
Ce qu'il faut savoir avant de changer
- Les options varient selon le modèle. Les noms de champs sont partagés, mais chaque modèle accepte ses propres valeurs. Kling 3.0, par exemple, ne liste aucune option de format d'image. Consultez la page du modèle avant de changer la chaîne
model. - Les liens de sortie expirent. Téléchargez les fichiers terminés et conservez-les dans votre propre stockage.
- Le modèle, c'est vous qui le choisissez. Le routage change l'endroit où une tâche s'exécute, jamais le modèle qui l'exécute. Basculer vers un autre modèle est une décision qui revient à votre code.
- Les prix peuvent changer. Le catalogue affiche toujours les prix actuels, et le prix de chaque tâche est fixé au moment où vous l'envoyez.
Prêt à essayer ? Obtenez une clé API, parcourez les modèles, ou commencez par le démarrage rapide.
Questions fréquentes
Existe-t-il une seule API pour tous les modèles vidéo IA ?
Revana vous donne une seule clé API, un seul format de requête et un seul solde prépayé pour les principaux modèles vidéo et image, dont Seedance, Veo, Kling, Wan, Hailuo, Grok Imagine, Nano Banana et GPT Image. Chaque modèle garde ses propres options et son propre prix.
En quoi Revana ressemble-t-elle à OpenRouter ?
OpenRouter donne aux développeurs une seule API pour de nombreux modèles de langage. Revana fait la même chose pour les modèles de génération vidéo et image : une clé, un solde, et un routage entre plusieurs sources de capacité pour un même modèle.
Que se passe-t-il quand une route en amont échoue ?
Si le modèle a plus d'une route, le routeur fait passer la tâche à la route suivante au même prix listé. Si toutes les routes échouent, la tâche se termine en échec et le montant bloqué est libéré.
Revana basculera-t-elle vers un autre modèle si le mien est indisponible ?
Non. Le routeur change la route, jamais le modèle. Si vous voulez basculer vers un autre modèle, faites-le dans votre code en envoyant une nouvelle requête avec un autre identifiant de modèle.
Comment fonctionne la facturation ?
Vous achetez du crédit prépayé par packs de $10 à $5,000, sans abonnement. Chaque tâche est tarifée d'après le catalogue, bloquée à l'envoi, et facturée uniquement si elle réussit.
Comment obtenir la liste des modèles et des prix dans le code ?
Récupérez https://revana.si/data/models.json. Il liste chaque modèle avec son identifiant, son éditeur, ses tâches, ses options, ses prix et son nombre de routes.
Une seule clé pour tout le catalogue
Créez une clé, ajoutez du crédit prépayé et appelez n'importe quel modèle vidéo ou image avec la même requête.