Tutoriel
Tutoriel d'intégration de l'API Wan 3.0 : curl, Python et tous les paramètres
Comment appeler Wan 3.0 Standard : soumission et récupération du résultat, première et dernière image, mode référence, tous les paramètres, erreurs courantes, 480P 5 secondes à $0.20.
Wan 3.0 Standard (wan3.0-video) utilise sur HiAPI l'interface asynchrone unifiée : soumission via POST /v1/tasks, obtention d'un taskId, puis récupération du résultat via GET /v1/tasks/{taskId}. Il suffit d'un seul prompt pour générer une vidéo avec son ; vous pouvez aussi ajouter une première image, une dernière image, ou jusqu'à 10 images de référence, 5 vidéos de référence et 5 audios de référence pour contrôler ensemble la génération. Cet article fournit des exemples curl et Python directement exécutables, l'ensemble des paramètres actuels, ainsi que quelques points à vérifier avant la mise en production.
Prix d'abord
| Résolution | Par seconde | 5 secondes |
|---|---|---|
| 480P | $0.04 | $0.20 |
| 720P | $0.08 | $0.40 |
| 1080P (par défaut) | $0.16 | $0.80 |
Tarif actuel de HiAPI, vérifié le 18 octobre 2026. Le son est activé par défaut, sans surcoût.
Attention aux valeurs par défaut : sans resolution, c'est 1080P ; sans duration, c'est 5 secondes, soit $0.80 la vidéo. Pour tester un prompt, pensez à indiquer explicitement "resolution": "480P".
Pour une génération plus rapide, vous pouvez utiliser la version accélérée wan3.0-video-prime, facturée plus du double du tarif standard (480P à $0.0875 par seconde).
Une vidéo réelle
480P, 16:9, 5 secondes, avec son :
A steaming noodle stall at a night market, close on the cook's hands as she lifts a tangle of noodles from a boiling pot and swirls them into a blue-rimmed bowl; slow push-in, warm tungsten light against cool blue street glow, steam drifting through the frame. Sound: rolling boil, the clink of a ladle, crowd murmur and a scooter passing in the distance.
wan3.0-video, 480P, 5 secondes, $0.20.
Réaliser la première génération
Préparation : créez une clé API dans la console. Les nouveaux utilisateurs reçoivent 200 crédits à l'inscription.
curl : soumettre la tâche
curl -s -X POST https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer $HIAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video",
"input": {
"prompt": "A steaming cup of coffee on a wooden table, soft morning light, gentle steam rising. Sound: a quiet cafe.",
"resolution": "480P",
"duration": 5,
"aspect_ratio": "16:9"
}
}'
Le taskId est renvoyé immédiatement, la génération se poursuit en arrière-plan :
{"code": 200, "message": "success", "data": {"taskId": "tk-hiapi-..."}}
curl : consulter le résultat
curl -s https://api.hiapi.ai/v1/tasks/tk-hiapi-... \
-H "Authorization: Bearer $HIAPI_KEY"
Une fois que data.status passe à success, data.output[0].url correspond à l'adresse de la vidéo. Cette adresse temporaire expire au bout d'environ 7 jours ; téléchargez-la et archivez-la rapidement. fail indique un échec, sans facturation.
Python
import os, time, requests
KEY = os.environ["HIAPI_KEY"]
BASE = "https://api.hiapi.ai/v1"
H = {"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"}
r = requests.post(f"{BASE}/tasks", headers=H, json={
"model": "wan3.0-video",
"input": {
"prompt": "A steaming cup of coffee on a wooden table, soft morning light, gentle steam rising. Sound: a quiet cafe.",
"resolution": "480P",
"duration": 5,
},
})
task_id = r.json()["data"]["taskId"]
while True:
d = requests.get(f"{BASE}/tasks/{task_id}", headers=H).json()["data"]
if d["status"] in ("success", "fail"):
break
time.sleep(10)
print(d["output"][0]["url"] if d["status"] == "success" else d)
Une courte vidéo est généralement générée en quelques minutes ; un intervalle de polling de 10 secondes suffit.
Tous les paramètres
| Champ | Obligatoire | Valeurs | Description |
|---|---|---|---|
prompt |
Oui | Texte | Indiquez ici la scène, l'action, le cadrage, la lumière et le son ; en mode référence, utilisez Image1, Video1, Audio1 pour désigner les éléments |
resolution |
Non | 480P / 720P / 1080P (par défaut) |
Détermine le prix par seconde |
duration |
Non | Entier 2–30, par défaut 5 | La durée totale des vidéos de référence plus la durée de sortie ne doit pas dépasser 30 secondes |
aspect_ratio |
Non | adaptive (par défaut) / 16:9 / 4:3 / 1:1 / 3:4 / 9:16 |
adaptive choisit automatiquement selon les éléments et le prompt |
audio |
Non | Booléen, par défaut true |
Indique si une piste audio synchronisée est incluse |
seed |
Non | 0–2147483647 | Fixez-la pour faciliter la reproduction |
first_frame_url |
Non | 1 URL d'image | Mode première image |
last_frame_url |
Non | 1 URL d'image | À utiliser avec la première image pour spécifier la dernière image |
reference_image_urls |
Non | 10 maximum | Images de référence |
reference_video_urls |
Non | 5 maximum, 1–15 secondes par segment, 15 secondes au total maximum | Vidéos de référence |
reference_audio_urls |
Non | 5 maximum, WAV/MP3 | À utiliser avec des images ou des vidéos |
reference_file_urls |
Non | 1 maximum | Document ou présentation |
reference_link_urls |
Non | 1 maximum | Page web sans authentification |
Les deux modes ne peuvent pas être combinés : le mode première/dernière image et le mode référence reference_* sont mutuellement exclusifs ; une requête ne peut en choisir qu'un seul.
Exemple d'utilisation du mode référence :
{
"model": "wan3.0-video",
"input": {
"prompt": "Use Image1 as the product: slow quarter orbit around it on a wooden counter, soft morning window light. Sound: gentle pouring water.",
"reference_image_urls": ["https://example.com/product.jpg"],
"resolution": "480P",
"duration": 5
}
}
Erreurs courantes
Toutes sont renvoyées synchroniquement en HTTP 400 lors de la soumission ; aucune tâche n'est créée et aucun crédit n'est débité :
duration: maximum: got 99, want 30: la durée dépasse 30 secondes.resolution: value must be one of '480P', '720P', '1080P': le P de la résolution doit être en majuscule.additional properties 'negative_prompt', 'image_urls' not allowed: ce modèle n'a pas de prompt négatif ; le champ des images de référence s'appellereference_image_urls, et nonimage_urls.- Une clé API incorrecte renvoie HTTP 401 ; un solde insuffisant renvoie 402.
Si une tâche échoue après sa création, le résultat de la requête indique status: "fail", mais le code HTTP reste 200 ; il faut donc consulter data.status.
À vérifier avant la mise en production
- Utiliser un callback au lieu du polling : ajoutez au niveau supérieur du corps de la requête
"callback": {"url": "https://votre-domaine/hiapi/callback", "when": "final"}, et HiAPI vous notifiera à la fin de la tâche.callbackse place au niveau supérieur, pas dansinput. - Éviter la double facturation : incluez l'en-tête
Idempotency-Keylors de la soumission. En cas de nouvelle tentative après un délai réseau, utilisez la même clé : le mêmetaskIdest renvoyé et aucune tâche supplémentaire n'est créée. - Archiver rapidement : l'adresse temporaire expire au bout d'environ 7 jours. Pour une conservation à long terme, passez
"storage": "persistent"à la création, ou convertissez ensuite en stockage persistant ; voir la documentation de création de tâche.
Questions fréquentes
Peut-on l'utiliser sans image de référence ?
Oui. Un simple prompt suffit pour générer une vidéo ; les éléments de référence sont facultatifs.
Le son est-il facturé en supplément ?
Non. audio est activé par défaut et le prix dépend uniquement de la résolution et du nombre de secondes. Pour désactiver le son, passez false.
Comment obtenir un format vertical ?
Passez aspect_ratio à 9:16.
Peut-on utiliser la première image et des images de référence ensemble ?
Non, il faut choisir l'un ou l'autre.
Pour plus d'exemples de prompts, consultez le recueil de prompts Wan 3.0, avec une vidéo réelle pour chacun des 4 scénarios. Vous pouvez aussi copier directement le prompt du stand de nouilles ci-dessus et en générer une pour $0.20.
Articles similaires
Voir tous les articles →-
Tutoriel
Comment appeler hailuo-2.3-fast/image-to-video via l'API HiAPI : curl et Python en pratique
La première requête exploitable du palier image-vers-vidéo rapide et économique — de l'ID du modèle au téléchargement du MP4
-
Tutoriel
Comment appeler hailuo-2.3/text-to-video via l'API HiAPI : curl, Python et exemples de requêtes exécutables
-
Tutoriel
Utiliser Kandinsky 6.0 Pro texte-vers-vidéo sur HiAPI : tutoriel curl et Python
Démonstration pratique axée sur la requête : construire l'appel du prompt au clip vidéo, soumettre la requête, interroger l'état d'achèvement et télécharger le résultat