Passer au contenu principal
POST
/
v1
/
videos
/
generations
curl --request POST \
  --url https://api.apimart.ai/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "happyhorse-1.1",
    "prompt": "A little girl walking down the road, cinematic feel",
    "resolution": "1080P",
    "size": "16:9",
    "duration": 5,
    "seed": 42
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01J9HA7JPQ9A0Z6JZ3V8M9W6PZ"
    }
  ]
}
curl --request POST \
  --url https://api.apimart.ai/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "happyhorse-1.1",
    "prompt": "A little girl walking down the road, cinematic feel",
    "resolution": "1080P",
    "size": "16:9",
    "duration": 5,
    "seed": 42
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01J9HA7JPQ9A0Z6JZ3V8M9W6PZ"
    }
  ]
}

Autorisation

Authorization
string
requis
Tous les endpoints API requièrent une authentification par Bearer TokenObtenez votre API Key :Visitez la page de gestion des API Keys pour obtenir votre API KeyAjoutez-la à l’en-tête de la requête :
Authorization: Bearer YOUR_API_KEY

Routage des modes

happyhorse-1.1 est le point d’entrée unifié pour Text-to-Video / Image-to-Video / Reference-Image-to-Video. Le backend détermine automatiquement le mode en fonction des paramètres entrants. Tous les modes sont facturés selon la même règle (résolution × secondes uniquement) :
Champs transmisRoute versDescription du mode
prompt seulText-to-Video (T2V)Génère une vidéo purement à partir de texte
prompt + first_frame_imageImage-to-Video (I2V)Animer à partir d’une image de première trame
prompt + image_urls (1–9 images)Reference-Image-to-Video (R2V)Générer une nouvelle scène à partir d’images de référence
Priorité de routage (de haute à basse) : first_frame_image > image_urls > prompt seul. Règles d’exclusion mutuelle : les deux champs média (first_frame_image / image_urls) sont mutuellement exclusifs. Transmettre les deux champs mutuellement exclusifs en même temps renvoie 400 mixed_media_not_allowed.

Paramètres de la requête

model
string
requis
Nom du modèle de génération vidéo, fixé à happyhorse-1.1
prompt
string
Description du contenu de la vidéo, jusqu’à 2500 caractères ; ne peut pas contenir de tokens spéciauxExemple : "A little girl walking down the road, cinematic feel"
first_frame_image
string
Image de première trame, déclenche I2V (Image-to-Video). Prend en charge URL ou base64 (data:image/<mime>;base64,<payload>, la passerelle la téléverse automatiquement sur OSS)Mutuellement exclusif avec image_urls
Exigences pour l’image de première trame :
  • Format : JPEG / JPG / PNG / BMP / WEBP
  • Côté court : ≥ 300 px
  • Rapport d’aspect : 1:2.5 à 2.5:1
  • Taille de fichier : ≤ 10 Mo
image_urls
array<string>
Tableau d’images (mode R2V) : 1–9 images, utilisées comme références de sujet/style pour générer une nouvelle scènePrend en charge URL ou base64Mutuellement exclusif avec first_frame_image
Exigences pour les images de référence :
  • Format : JPEG / JPG / PNG / BMP / WEBP
  • Côté court : ≥ 720p recommandé
  • Rapport d’aspect : court / long ≥ 0,4
  • Taille de fichier : ≤ 10 Mo
  • Quantité : 1–9 images
resolution
string
défaut:"1080P"
Résolution de la vidéo (affecte la facturation)Options :
  • 720P — standard
  • 1080P — haute définition (par défaut)
duration
integer
défaut:"5"
Durée de la vidéo en secondes (affecte la facturation)Plage prise en charge : tout entier de 3 à 15Par défaut : 5
size
string
défaut:"16:9"
Rapport d’aspectFormats pris en charge :
  • 16:9 — écran large paysage (par défaut)
  • 9:16 — portrait
  • 1:1 — carré
  • 4:3 — paysage
  • 3:4 — portrait
Ignoré en mode I2V — le rapport d’aspect de sortie est déterminé automatiquement par le média d’entrée (image de première trame)
watermark
boolean
défaut:"false"
Ajouter un filigrane à la vidéo générée
  • true : ajouter un filigrane
  • false : ne pas ajouter de filigrane (par défaut)
seed
integer
Graine aléatoire utilisée pour contrôler le caractère aléatoire du contenu généréPlage de valeurs : [0, 2147483647]. Si omise, une graine aléatoire est utilisée.
  • Pour des requêtes identiques, le modèle génère des résultats différents lorsqu’il reçoit des valeurs de graine différentes (par exemple, omettre la graine)
  • Pour des requêtes identiques, le modèle génère des résultats similaires lorsqu’il reçoit la même valeur de graine, mais une cohérence exacte n’est pas garantie

Réponse

code
integer
Code de statut de la réponse, 200 en cas de succès
data
array
Tableau de données de la réponse

Cas d’utilisation

Cas 1 : Texte vers vidéo T2V (requête la plus simple)

{
  "model": "happyhorse-1.1",
  "prompt": "A little girl walking down the road, cinematic feel"
}

Cas 2 : Texte vers vidéo T2V (paramètres complets)

{
  "model": "happyhorse-1.1",
  "prompt": "A coastal road at sunset, slow-motion camera push-in, cinematic feel",
  "resolution": "1080P",
  "size": "16:9",
  "duration": 8,
  "seed": 42
}

Cas 3 : Image vers vidéo I2V (first_frame_image)

{
  "model": "happyhorse-1.1",
  "prompt": "Bring the scene in the image to life",
  "first_frame_image": "https://example.com/first_frame.png",
  "resolution": "1080P",
  "duration": 5
}

Cas 4 : Référence-Image vers vidéo R2V (références multiples)

{
  "model": "happyhorse-1.1",
  "prompt": "The protagonist from image 1 runs through the scene from image 2, then picks up the prop from image 3. Keep a 3D cartoon style with smooth motion.",
  "image_urls": [
    "https://example.com/img_01.jpg",
    "https://example.com/img_02.png",
    "https://example.com/img_03.jpeg"
  ],
  "resolution": "1080P",
  "size": "16:9",
  "duration": 5
}

Cas 5 : 720P pour économiser

{
  "model": "happyhorse-1.1",
  "prompt": "Waves crashing on the beach at sunset",
  "resolution": "720P",
  "size": "16:9",
  "duration": 5
}

Guide de sélection du mode

BesoinApproche recommandée
Générer une vidéo uniquement à partir de texteTransmettre uniquement prompt (T2V)
Donner « vie » à une image (l’utiliser comme première trame)Transmettre first_frame_image (I2V)
Générer une nouvelle scène à partir d’un ensemble d’images de référenceTransmettre image_urls (1–9, R2V)
ÉconomiserUtiliser resolution: "720P"

Conseils d’utilisation

  1. Logique du point d’entrée unifié : les champs d’entrée déterminent le mode. Notez que les deux champs média (first_frame_image / image_urls) sont mutuellement exclusifs
  2. size n’a d’effet qu’en T2V/R2V : dans le mode I2V, size est ignoré — le rapport d’aspect de sortie est déterminé par le média d’entrée
  3. Durée : 5–10 secondes est la plage optimale. Trop court entraîne des mouvements saccadés ; trop long augmente significativement le temps de traitement amont
  4. Qualité de l’image de première trame : claire, bien composée, sujet centré — améliore significativement le résultat I2V
  5. Rédaction du prompt : décrivez le mouvement / la caméra / l’atmosphère (par exemple, « slow push-in, cinematic, warm tones ») pour de meilleurs résultats que des descriptions purement statiques de la scène
Interroger les résultats de la tâcheLa génération vidéo est une tâche asynchrone qui renvoie un task_id lors de la soumission. Utilisez l’endpoint Obtenir le statut de la tâche pour interroger la progression et les résultats de la génération.