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": "skyreels-v4-fast",
    "prompt": "A serene forest at sunset with golden light filtering through the trees.",
    "duration": 5,
    "resolution": "1080p",
    "aspect_ratio": "16:9",
    "prompt_optimizer": true
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KPEY5H3NQ2W8D7T6VB3F9GR4"
    }
  ]
}

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": "skyreels-v4-fast",
    "prompt": "A serene forest at sunset with golden light filtering through the trees.",
    "duration": 5,
    "resolution": "1080p",
    "aspect_ratio": "16:9",
    "prompt_optimizer": true
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KPEY5H3NQ2W8D7T6VB3F9GR4"
    }
  ]
}

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

Modes de génération

SkyReels V4 sélectionne automatiquement le bon mode en fonction des champs de la requête — aucun champ mode n’est nécessaire :
ModeDéclencheurCapacité
T2V (Text-to-Video)Uniquement prompt + champs générauxGénération purement textuelle
I2V (Image-to-Video)L’un de first_frame_image / end_frame_image / mid_frame_imagesContrôle de la première/dernière/trames clés
Omni (Référence multimodale)L’un de ref_images / ref_videosRéférence de sujet, collage en grille, référence de mouvement, extension de vidéo, synchronisation audio
Exclusion mutuelle stricte : les champs I2V (first_frame_image / end_frame_image / mid_frame_images) et les champs Omni (ref_images / ref_videos) ne peuvent pas être utilisés ensemble, sinon le code 422 est renvoyé.
Mécanisme @tag : lors de l’utilisation de mid_frame_images / ref_images / ref_videos, chaque élément doit déclarer un tag commençant par @ (par exemple, @image1, @Actor-1, @video1), et ce tag doit apparaître dans le prompt.Considérez le prompt comme un « script » et le tag comme un « pointeur de personnage » vers des ressources spécifiques (images / vidéos). Par exemple, un prompt tel que "@Actor-1 walks into the scene of @video1" indique au système d’injecter dans le processus de génération le sujet de l’image de référence associé à @Actor-1 et la référence de mouvement associée à @video1.

Paramètres de la requête

Champs généraux

model
string
requis
Deux niveaux de modèle sont disponibles :
ModèlePositionnementCas d’utilisation
skyreels-v4-fastPriorité à la vitesseAperçus rapides, génération par lots, contenu quotidien
skyreels-v4-stdPriorité à la qualité (prix 25~30 % plus élevé que Fast)Plans clés, exigences de détail élevées, livraison formelle
Le champ model doit être fourni explicitement — aucune valeur par défaut.
Le prix est fortement lié à la résolution et à l’utilisation de ref_videos : 1080p est nettement plus cher que 480p / 720p ; les niveaux avec ref_videos (entrée vidéo) coûtent environ 1,5 à 2 fois plus que ceux sans. La sortie audio et vidéo simultanée n’est pas encore prise en charge.
prompt
string
requis
Prompt textuel, 1280 tokens maximumDécrivez les scènes, sujets, actions et styles en détail pour de meilleurs résultats.Lors de l’utilisation de ref_images / ref_videos / mid_frame_images, le prompt doit contenir le @tag correspondant (par exemple, @Actor-1, @video1, @image1).Exemple : "@Actor-1 walks through a neon-lit street at night."
duration
integer
défaut:"5"
Durée de la vidéo de sortie (secondes)
  • Plage : [3, 15]
  • Par défaut : 5
Lorsque ref_videos.type=reference est fourni, duration est remplacé par la durée de la vidéo de référence (maximum 10 secondes).
resolution
string
défaut:"1080p"
Résolution de la vidéoOptions :
  • 480p
  • 720p
  • 1080p (par défaut)
aspect_ratio
string
défaut:"16:9"
Rapport d’aspectOptions :
  • 16:9 (par défaut)
  • 4:3
  • 1:1
  • 9:16
  • 3:4
aspect_ratio est ignoré en mode I2V (le rapport de sortie est déterminé par l’image d’entrée) ; également ignoré lorsque Omni est combiné avec ref_videos.
prompt_optimizer
boolean
défaut:"true"
Optimiser automatiquement le promptLorsqu’activé, le système optimise automatiquement votre prompt pour de meilleurs résultats.

Champs spécifiques à I2V

first_frame_image
string
URL de l’image de première trame (jpg / jpeg / png / gif / bmp)Lorsqu’elle est fournie, cette image est utilisée comme trame initiale de la vidéo.
end_frame_image
string
URL de l’image de dernière trame (jpg / jpeg / png / gif / bmp)Lorsqu’elle est fournie, cette image est utilisée comme trame finale de la vidéo. Peut être combinée avec first_frame_image pour contrôler les trames de début et de fin.
mid_frame_images
object[]
Liste des trames clés intermédiaires, jusqu’à 6. Chaque élément a la structure suivante :

Champs spécifiques à Omni

ref_images
object[]
Liste des images de référence (tous les éléments doivent partager le même type). Chaque élément a la structure suivante :
ref_videos
object[]
Liste des vidéos de référence, jusqu’à 1. Chaque élément a la structure suivante :

Scénarios pris en charge

Les scénarios suivants sont pris en charge à la fois par skyreels-v4-fast et skyreels-v4-std :
ScénarioModeChamps requisCas d’utilisation typique
Text-to-VideoT2VpromptPurement textuel, plans conceptuels rapides
Image-to-Video — Première trameI2Vfirst_frame_imageImage fixe vers vidéo avec une trame de départ spécifiée
Image-to-Video — Dernière trameI2Vend_frame_imageSpécifie la trame de fin
Image-to-Video — Trames clésI2Vmid_frame_images (1 ~ 6)Première + dernière + trames clés intermédiaires pour un rythme précis
Omni mono/multi-sujetOmniref_images (type=image)Cohérence des personnages, cadrage multi-sujets
Omni collage en grilleOmniref_images (type=grid, 1 image)Vidéos de processus étape par étape (tutoriels, recettes, démos)
Omni référence de mouvementOmniref_videos (type=reference)Reproduire le mouvement, le sujet ou le style d’une vidéo de référence
Omni extension de vidéoOmniref_videos (type=extend)Continuer une vidéo existante avec un nouveau contenu
Omni synchronisation audioOmniref_images (type=image) + audio_urlNarration de personnage numérique, synchronisation labiale pilotée par audio

Contraintes des paramètres

La violation de l’une des contraintes suivantes entraîne le rejet de la requête avec une réponse 422, aucune facturation n’a lieu :
ParamètreContrainte
promptMax 1280 tokens
duration[3, 15] secondes ; remplacé par la durée de la vidéo de référence (max 10s) lorsque ref_videos.type=reference
resolutionUniquement 480p / 720p / 1080p
aspect_ratio16:9 / 4:3 / 1:1 / 9:16 / 3:4 ; ignoré en I2V ; ignoré lorsque Omni utilise ref_videos
mid_frame_imagesJusqu’à 6 ; time_stamp doit être -1 ou dans (0, duration)
ref_images globalTous les éléments doivent partager le même type ; ne peut pas coexister avec des champs I2V
ref_images.type=gridLongueur de liste doit = 1 ; image_urls doit contenir 1 image
ref_images.type=imageLongueur de liste 1 ~ 3 ; longueur de chaque image_urls 1 ~ 5
ref_images.audio_urlUniquement pris en charge lorsque type=image, audio ≤ 15 secondes
ref_videosJusqu’à 1 ; video_url MP4 / MOV, ≤ 15 secondes
ref_videos.type=referenceRemplace le duration demandé (max 10s), peut être combiné avec ref_images.type=image, conserve par défaut l’audio de la vidéo d’entrée
ref_videos.type=extendFacturé selon le duration demandé ; ne peut pas être combiné avec ref_images
Champ tagDoit commencer par @ et apparaître dans le prompt
Exclusion I2V / OmniLes champs I2V et Omni ne peuvent pas être utilisés ensemble

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

Exemples de requêtes

Cas 1 : Texte vers vidéo (minimal)

{
  "model": "skyreels-v4-fast",
  "prompt": "A serene forest at sunset with golden light filtering through the trees."
}

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

{
  "model": "skyreels-v4-std",
  "prompt": "A serene forest at sunset.",
  "duration": 5,
  "resolution": "720p",
  "aspect_ratio": "16:9",
  "prompt_optimizer": true
}

Cas 3 : Image vers vidéo — Première trame

{
  "model": "skyreels-v4-fast",
  "prompt": "Slowly pull the camera back to reveal the entire scene.",
  "first_frame_image": "https://example.com/start.png",
  "duration": 5
}

Cas 4 : Image vers vidéo — Première/Dernière trame + trames clés intermédiaires

{
  "model": "skyreels-v4-std",
  "prompt": "The King summons a flying dragon. @image1 The dragon lowers. The King mounts and flies away.",
  "duration": 8,
  "resolution": "1080p",
  "first_frame_image": "https://example.com/k2v_0.png",
  "end_frame_image":   "https://example.com/k2v_2.png",
  "mid_frame_images": [
    { "tag": "@image1", "image_url": "https://example.com/k2v_1.png", "time_stamp": 3 }
  ]
}

Cas 5 : Omni — Référence à un sujet unique

{
  "model": "skyreels-v4-fast",
  "prompt": "@Actor-1 walks through a neon-lit street at night.",
  "ref_images": [
    { "tag": "@Actor-1", "type": "image", "image_urls": ["https://example.com/actor.jpg"] }
  ]
}

Cas 6 : Omni — Multi-sujets + référence de mouvement vidéo

{
  "model": "skyreels-v4-fast",
  "prompt": "The man from @image_1 imitates the move on the left in @video_1. The woman from @image_2 imitates the right side.",
  "duration": 5,
  "ref_images": [
    { "tag": "@image_1", "type": "image", "image_urls": ["https://example.com/a.png"] },
    { "tag": "@image_2", "type": "image", "image_urls": ["https://example.com/b.png"] }
  ],
  "ref_videos": [
    { "tag": "@video_1", "type": "reference", "video_url": "https://example.com/motion.mp4" }
  ]
}
Ce cas utilise ref_videos.type=reference, donc le duration demandé sera remplacé par la durée réelle de la vidéo de référence (maximum 10 secondes). Même si "duration": 5 est transmis ici, la durée finale de la vidéo suit la vidéo de référence.

Cas 7 : Omni — Collage en grille

{
  "model": "skyreels-v4-fast",
  "prompt": "Create a video showing how to make tomato and egg noodles based on @image1.",
  "ref_images": [
    { "tag": "@image1", "type": "grid", "image_urls": ["https://example.com/recipe_grid.png"] }
  ]
}

Cas 8 : Omni — Extension de vidéo (extend)

{
  "model": "skyreels-v4-fast",
  "prompt": "Video extended @video1, someone walks over and sits on the sofa.",
  "duration": 8,
  "ref_videos": [
    { "tag": "@video1", "type": "extend", "video_url": "https://example.com/source.mp4" }
  ]
}

Cas 9 : Omni — Synchronisation audio (piloté par voix)

{
  "model": "skyreels-v4-std",
  "prompt": "@Actor-1 speaks with a calm tone.",
  "ref_images": [
    {
      "tag": "@Actor-1",
      "type": "image",
      "image_urls": ["https://example.com/actor.jpg"],
      "audio_url":  "https://example.com/voice.mp3"
    }
  ]
}
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.