
Guide HappyHorse 1.1 API : générer des vidéos avec EvoLink

Utiliser HappyHorse 1.1 API sur EvoLink
Pour utiliser HappyHorse 1.1 via EvoLink, le workflow pratique est le suivant :
- Choisir le model ID HappyHorse 1.1 adapté au type d'entrée.
- Créer une tâche vidéo avec
POST /v1/videos/generations. - Stocker le task ID retourné.
- Interroger
GET /v1/tasks/{task_id}ou configurercallback_url. - Télécharger ou déplacer le résultat vidéo avant d'en dépendre en production.
Réponse rapide
HappyHorse 1.1 propose trois routes sur EvoLink :
| Cas d'usage | Model ID | À utiliser quand |
|---|---|---|
| Text-to-video | happyhorse-1.1-text-to-video | L'application part uniquement d'un prompt |
| Image-to-video | happyhorse-1.1-image-to-video | Vous avez une image de premier frame |
| Reference-to-video | happyhorse-1.1-reference-to-video | Vous avez 1-9 images de référence ordonnées |
callback_url optionnel et facturation par seconde générée.Ne mélangez pas HappyHorse 1.1 avec d'anciennes routes HappyHorse 1.0. La surface actuelle de HappyHorse 1.1 sur EvoLink correspond aux trois routes ci-dessus.
Faits confirmés
| Élément | HappyHorse 1.1 sur EvoLink |
|---|---|
| Disponibilité API | Disponible sur EvoLink |
| Création de tâche | POST /v1/videos/generations |
| Statut de tâche | GET /v1/tasks/{task_id} |
| Mode de livraison | Tâche async et récupération du statut |
| Callback | callback_url disponible dans la requête |
| Résolutions | 720p et 1080p |
| Durée | Secondes entières de 3 à 15 |
| Liens de résultat | Valides 24 heures ; sauvegarder ou déplacer les assets rapidement |
| Facturation | Par seconde générée, selon résolution et durée |
| Source de prix | Table de prix HappyHorse 1.1 |
La génération vidéo doit être traitée comme un job async de production, pas comme un appel synchrone bloquant.
Choisir la bonne route
L'erreur fréquente consiste à choisir par nom au lieu de partir des assets disponibles.
| Entrée disponible | Route recommandée | Pourquoi |
|---|---|---|
| Prompt sans image | happyhorse-1.1-text-to-video | Génération prompt-first avec planification explicite du format |
| Une image produit, personnage ou scène | happyhorse-1.1-image-to-video | Utilise l'image comme premier frame et déduit le format depuis la source |
| Plusieurs références de personnages, objets ou styles | happyhorse-1.1-reference-to-video | Le prompt peut référencer les images ordonnées via character1, character2, etc. |
Utilisez text-to-video pour l'idéation, image-to-video pour animer un asset et reference-to-video quand la cohérence entre références compte.
Préparer l'intégration
| Besoin | À préparer |
|---|---|
| EvoLink API key | Créer une API key dans le compte EvoLink |
| URLs publiques d'images | Requises pour image-to-video et reference-to-video |
| Model ID | Choisir l'une des trois routes HappyHorse 1.1 |
| Stockage | Décider où stocker les vidéos terminées |
| Endpoint de callback | Optionnel, recommandé pour la production |
| Garde-fous de coût | Définir durée, résolution et retries avant les batchs |
Les entrées image doivent être des URLs HTTP ou HTTPS publiques. Les liens intranet, storage authentifié et fichiers locaux ne sont pas adaptés à la production.
Workflow API de base
| Étape | Action API | À stocker dans l'application |
|---|---|---|
| Créer la tâche | POST /v1/videos/generations | Task ID, model ID, user ID, durée et qualité demandées |
| Suivre la tâche | GET /v1/tasks/{task_id} | Statut, progression, lien de sortie, usage |
| Terminer | Polling ou callback_url | Asset final, statut final, métadonnées de facturation |
| Persister | Votre stockage | URL stable, historique, audit trail |
model et de valider les champs propres à chaque route.Exemple text-to-video
model et prompt.curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <EVOLINK_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "happyhorse-1.1-text-to-video",
"prompt": "A cinematic product shot of a transparent electric scooter moving through a clean studio space, slow dolly camera, soft reflections",
"quality": "720p",
"aspect_ratio": "16:9",
"duration": 5,
"callback_url": "https://your-domain.com/webhooks/video-task-completed"
}'| Paramètre | Conseil |
|---|---|
prompt | Décrire sujet, scène, caméra, mouvement, lumière et style |
quality | Commencer en 720p, passer en 1080p après stabilisation |
aspect_ratio | Choisir le canal final tôt : 16:9, 9:16, 1:1 |
duration | Tester d'abord 3-5 secondes |
seed | Fixer seulement pour des itérations reproductibles |
Exemple image-to-video
model et image_urls.curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <EVOLINK_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "happyhorse-1.1-image-to-video",
"image_urls": ["https://cdn.example.com/product-hero.png"],
"prompt": "Animate the product with a smooth camera orbit and subtle studio lighting movement",
"quality": "720p",
"duration": 5,
"callback_url": "https://your-domain.com/webhooks/video-task-completed"
}'| Règle | Exigence |
|---|---|
| Nombre d'images | Exactement une image de premier frame |
| Formats | JPEG, JPG, PNG, WEBP |
| Taille minimale | Largeur et hauteur d'au moins 300 px |
| Ratio | L'image doit rester dans la plage supportée |
| Taille fichier | Jusqu'à 10MB par image |
| Accès URL | HTTP ou HTTPS public |
aspect_ratio explicite.Exemple reference-to-video
model, prompt et image_urls.curl --request POST \
--url https://api.evolink.ai/v1/videos/generations \
--header 'Authorization: Bearer <EVOLINK_API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
"model": "happyhorse-1.1-reference-to-video",
"prompt": "character1 walks into the scene, picks up the object shown as character2, and places it on the table beside character3",
"image_urls": [
"https://cdn.example.com/person.png",
"https://cdn.example.com/object.png",
"https://cdn.example.com/scene.png"
],
"quality": "720p",
"aspect_ratio": "16:9",
"duration": 5,
"callback_url": "https://your-domain.com/webhooks/video-task-completed"
}'| Règle | Exigence |
|---|---|
| Nombre d'images | 1-9 images de référence |
| Convention prompt | Utiliser character1, character2, character3, etc. |
| Ordre | Première URL = character1, deuxième = character2 |
| Formats | JPEG, JPG, PNG, WEBP |
| Qualité recommandée | Images nettes, petit côté au moins 400 px et ratio petit/grand côté au moins 0.4 |
| Taille fichier | Jusqu'à 10MB par image |
| URL | HTTP ou HTTPS public |
character1 / character2, le modèle peut confondre les personnages ou objets. Stockez l'ordre affiché à l'utilisateur avec le tableau image_urls.Async status et callback_url
Après création, l'application reçoit un task ID. Stockez-le immédiatement et interrogez le statut :
curl --request GET \
--url https://api.evolink.ai/v1/tasks/<TASK_ID> \
--header 'Authorization: Bearer <EVOLINK_API_KEY>'Les réponses peuvent contenir statut, progression, model, informations de tâche, résultats et usage.

| Approche | À utiliser quand | Compromis |
|---|---|---|
| Polling | Tests locaux ou petit outil admin | Simple, mais peut charger la file |
callback_url | Génération utilisateur à l'échelle | Workflow plus propre, nécessite un endpoint HTTPS sécurisé |
callback_url doit utiliser HTTPS et ne pas pointer vers des IP privées. Le handler doit être idempotent.Planification des coûts
| Facteur de coût | Pourquoi c'est important | Garde-fou |
|---|---|---|
| Durée | Plus de secondes augmente le coût | Démarrer avec 3-5 secondes |
| Résolution | La résolution plus élevée affecte la facturation | Valider les prompts en 720p |
| Retries | Les retries aveugles multiplient la dépense | Retry seulement les erreurs transitoires connues |
| Route | Reference peut être plus complexe | Utiliser image-to-video si un premier frame suffit |
| Taille de batch | Les batchs cachent les pics | Limites par utilisateur et par job |
Liste de vérification production
| Zone | Liste de vérification |
|---|---|
| Model routing | Mapper les actions produit vers les bons model IDs |
| Validation | Prompt, nombre d'images, URLs publiques, format et taille |
| Queue | Traiter chaque vidéo comme un job async |
| Sécurité du callback | HTTPS, validation du payload, idempotence |
| Coûts | Defaults de durée, qualité et limites par compte |
| Stockage | Déplacer les vidéos dans votre stockage dans la fenêtre de 24 heures |
| Fallback | Garder une autre route vidéo EvoLink disponible |
| Monitoring | Suivre erreurs, temps moyen, retries et dépense |
Avec EvoLink, passer de HappyHorse à Seedance, Kling, Sora ou une autre route vidéo doit être une décision de sélection de modèle, pas une nouvelle intégration fournisseur.
Troubleshooting
| Symptôme | Cause probable | Correction |
|---|---|---|
model_access_denied | API key sans accès au modèle | Vérifier l'accès et utiliser le model ID de la page HappyHorse 1.1 |
| Image-to-video échoue | image_urls absent ou URL non publique | Fournir une URL publique |
| Reference confond les personnages | Prompt sans character1, character2 | Aligner prompt et ordre du tableau |
| Ratio inattendu | Image-to-video utilisé avec attente de contrôle explicite | Ajuster le ratio de l'image source |
| Coût trop élevé | Durée, résolution, retries ou batch size ont augmenté | Démarrer court en 720p et ajouter des limites |
| Timeout côté utilisateur | L'app traite la génération comme synchrone | Stocker le task ID et utiliser polling ou callback |
Modèle d'implémentation
type HappyHorseRoute =
| 'text-to-video'
| 'image-to-video'
| 'reference-to-video'
const happyHorseModelIdByRoute: Record<HappyHorseRoute, string> = {
'text-to-video': 'happyhorse-1.1-text-to-video',
'image-to-video': 'happyhorse-1.1-image-to-video',
'reference-to-video': 'happyhorse-1.1-reference-to-video',
}La couche de routage doit rester derrière la logique produit. L'UI collecte les assets disponibles ; le backend produit un model ID et un request body validé.
Quand utiliser un autre modèle vidéo EvoLink
| Besoin | À considérer |
|---|---|
| Références vidéo ou audio | Seedance 2.0 |
| Production short-form répétable | Kling 3.0 |
| Style créatif différent | Comparer les routes du catalogue EvoLink |
FAQ
Quel endpoint utiliser pour HappyHorse 1.1 ?
POST /v1/videos/generations avec le model ID HappyHorse 1.1 adapté à l'entrée.Quels sont les model IDs HappyHorse 1.1 ?
happyhorse-1.1-text-to-video, happyhorse-1.1-image-to-video et happyhorse-1.1-reference-to-video.Quel model ID utiliser pour un prompt seul ?
happyhorse-1.1-text-to-video.Quel model ID utiliser pour animer un premier frame ?
happyhorse-1.1-image-to-video.Quel model ID utiliser pour plusieurs images de référence ?
happyhorse-1.1-reference-to-video avec 1-9 images ordonnées et des références character1, character2, etc.Image-to-video supporte-t-il aspect_ratio ?
Non. Le ratio vient de l'image source. Pour un contrôle explicite, utilisez text-to-video ou reference-to-video.
Puis-je utiliser callback_url ?
Oui. Utilisez HTTPS et rendez le handler idempotent.
Où trouver les prix actuels ?
Puis-je réutiliser la même API key EvoLink ?
Oui. HappyHorse 1.1 utilise la même API key et le même système de facturation EvoLink.
HappyHorse 1.1 supporte-t-il video-edit ?
La page actuelle et la référence API exposent text-to-video, image-to-video et reference-to-video. N'utilisez pas une route video-edit HappyHorse 1.0 comme route HappyHorse 1.1.


