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.0",
    "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"
    }
  ]
}

Documentation Index

Fetch the complete documentation index at: https://docs.apimart.ai/llms.txt

Use this file to discover all available pages before exploring further.

curl --request POST \
  --url https://api.apimart.ai/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "happyhorse-1.0",
    "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.0 est le point d’entrée unifié pour Text-to-Video / Image-to-Video / Reference-Image-to-Video / Video Edit. 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
prompt + video_url (optionnellement image_urls 0–5 comme références de style / audio_setting)Video Edit (EDIT)Réécrire / restyliser une vidéo source
Priorité de routage (de haute à basse) : video_url > first_frame_image > image_urls > prompt seul. Règles d’exclusion mutuelle : les trois champs média (first_frame_image / image_urls / video_url) sont mutuellement exclusifs par paires. La seule combinaison valide est video_url + image_urls (mode EDIT + images de référence). Transmettre deux champs mutuellement exclusifs 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.0
prompt
string
Description du contenu de la vidéo, jusqu’à 2500 caractères ; ne peut pas contenir de tokens spéciaux
  • Modes T2V / R2V / EDIT : obligatoire
  • Mode I2V : optionnel, mais recommandé pour guider les mouvements de caméra et les actions
Exemple : "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 / video_url
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 (seul image_urls fourni) : 1–9 images, utilisées comme références de sujet/style pour générer une nouvelle scène
  • Mode EDIT (fourni avec video_url) : 0–5 images, utilisées comme référence de style
Prend en charge URL ou base64Mutuellement exclusif avec first_frame_image ; peut être combiné avec video_url
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é : R2V doit être 1–9 ; EDIT jusqu’à 5
video_url
string
URL de la vidéo source, déclenche EDIT (Video Edit). Base64 n’est pas pris en charge — fournissez un lien direct HTTP/HTTPSMutuellement exclusif avec first_frame_image ; peut être combiné avec image_urls (≤ 5)
Exigences pour la vidéo source :
  • Durée : 3–60 secondes (> 15s sera automatiquement tronqué par l’amont de 0 à 15s)
  • Résolution : minimum 480p, côté court ≥ 360
  • Rapport d’aspect : 1:8 à 8:1
  • Format : MP4 / MOV (H.264 recommandé)
  • Fréquence d’images : > 8 fps
  • Taille de fichier : ≤ 100 Mo
En mode EDIT, la durée de la vidéo générée correspond à celle de la vidéo source (plafonnée aux 15s tronquées lorsque la source est plus longue). Le paramètre duration n’a aucun effet ici. Pour contrôler la longueur de sortie, découpez la vidéo source à la durée cible avant le téléversement.
audio_setting
string
défaut:"auto"
Réglage audio, uniquement effectif en mode EDIT (doit transmettre video_url)Options :
  • auto — générer automatiquement l’audio (par défaut)
  • origin — conserver la piste audio de la vidéo source
Transmettre ce champ en dehors du mode EDIT renvoie 400 audio_setting_only_for_edit
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
Sans effet en mode EDIT (lorsque video_url est fourni) : la durée de la vidéo générée correspond à celle de la vidéo source (facturée selon les 15s tronquées lorsque la source dépasse 15s). Pour contrôler la longueur de sortie, découpez d’abord la vidéo source.
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 modes I2V / EDIT — le rapport d’aspect de sortie est déterminé automatiquement par le média d’entrée (image de première trame / vidéo source)
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.0",
  "prompt": "A little girl walking down the road, cinematic feel"
}

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

{
  "model": "happyhorse-1.0",
  "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.0",
  "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.0",
  "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 : Video Edit EDIT (conserver l’audio original + référence de style)

{
  "model": "happyhorse-1.0",
  "prompt": "Convert the character in the video to a cartoon style, preserving the original motion",
  "video_url": "https://example.com/source.mp4",
  "image_urls": [
    "https://example.com/style_ref.jpg"
  ],
  "resolution": "1080P",
  "audio_setting": "origin",
  "seed": 42
}

Cas 6 : 720P pour économiser

{
  "model": "happyhorse-1.0",
  "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)
Réécrire / restyliser une vidéo existanteTransmettre video_url (EDIT), combiner éventuellement avec image_urls (0–5) comme références de style
É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 trois champs média (first_frame_image / image_urls / video_url) sont mutuellement exclusifs par paires
  2. size n’a d’effet qu’en T2V/R2V : dans les modes I2V / EDIT, 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
  6. Vidéo d’entrée EDIT : > 15 secondes sera automatiquement tronquée par l’amont de 0 à 15s. Si vous avez besoin d’autres segments, découpez d’abord la vidéo vous-même
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.