Felo API PlatformFelo API Platform
v0.4.0
OpenAPI 3.1.0

Soumettre une tâche de génération vidéo

Serveur:https://openapi.felo.ai
Bibliothèques clientes

Soumettre une tâche de génération vidéo

​

Crée une tâche de génération vidéo asynchrone et renvoie immédiatement un task_id (HTTP 202). Interrogez GET /api/v1/videos/generations/{task_id} jusqu'à ce que la tâche réussisse. Le corps de la requête peut être fourni à plat ({model, prompt, ...}) ou imbriqué ({model, input: {prompt, ...}}) ; l'objet input est prioritaire lorsqu'il est présent. Les champs callback (callBackUrl / callback_url / callbackUrl) sont ignorés.

Trois modes d'entrée mutuellement exclusifs :

  • texte-vers-vidéo : prompt uniquement ;
  • image-vers-vidéo (première/dernière image) : first_frame_url (+ last_frame_url facultatif) ;
  • omni-référence : reference_image_urls / reference_video_urls / reference_audio_urls. Mélanger le mode première/dernière image avec une entrée de référence multimodale renvoie 400 invalid_request_error.
En-têtes
  • X-Request-Id
    Type: string

    ID de requête facultatif de l'appelant, renvoyé pour le diagnostic.

  • X-Felo-Channel
    Type: string

    Codes de canaux publics ordonnés, séparés par des virgules. Omettre cet en-tête pour utiliser default ; default doit être utilisé seul. En mode portefeuille, default parcourt l'ordre effectif des canaux publics du modèle dans l'ordre inverse, ignore les canaux non publiés ou indisponibles et sélectionne le fournisseur du premier canal disponible. Il inclut les points de terminaison disponibles de ce fournisseur ayant le même ID de modèle amont et le même niveau de service. Les canaux explicites sont validés dans l'ordre spécifié par le client ; seul le groupe de fournisseurs du premier canal est soumis. Aucun repli automatique vers d'autres fournisseurs. Les anciens en-têtes de fournisseur ne peuvent pas remplacer le routage par canaux.

Corps·VideoGenerationRequest
obligatoire
application/json

Entrée de génération vidéo. Soit à plat ({model, prompt, ...}), soit imbriquée ({model, input: {...}}). input est prioritaire. Un seul mode d'entrée doit être utilisé ; le mélange du mode première/dernière image avec des entrées de référence multimodales est rejeté.

  • model
    Type: string
    obligatoire

    Nom du modèle exposé par Felo, par exemple seedance-2.0-mini.

  • aspect_ratio
    Type: string enum
    valeurs
    • 16:9
    • 9:16
    • 1:1
    • 4:3
    • 3:4
    • 21:9
    • adaptive
  • duration
    Type: integer
    min.:  
    4
    max.:  
    15

    Integer numbers.

  • first_frame_url
    Type: string Format: uri
  • generate_audio
    Type: boolean
  • input
    Type: object

    Objet d'entrée imbriqué facultatif ; lorsqu'il est présent, ses champs sont prioritaires sur les champs voisins.

    • aspect_ratio
      Type: string enum

      Format d'image de sortie ; adaptive suit le ratio de l'image d'entrée.

      valeurs
      • 16:9
      • 9:16
      • 1:1
      • 4:3
      • 3:4
      • 21:9
      • adaptive
    • duration
      Type: integer
      min.:  
      4
      max.:  
      15

      Durée de sortie en secondes.

    • first_frame_url
      Type: string Format: uri

      URL de la première image (mode image-vers-vidéo).

    • generate_audio
      Type: boolean

      Indique s'il faut générer une piste audio synchronisée.

    • last_frame_url
      Type: string Format: uri

      URL de la dernière image ; doit être utilisée avec first_frame_url.

    • prompt
      Type: string
      longueur max.:  
      2000

      Prompt. Requis pour les modes texte-vers-vidéo et omni-référence.

    • reference_audio_urls
      Type: array string[] …3Format: uri

      Clips audio de référence omni.

    • reference_image_urls
      Type: array string[] …9Format: uri

      Images de référence omni. Mutuellement exclusives avec le mode première/dernière image.

    • reference_video_urls
      Type: array string[] …3Format: uri

      Vidéos de référence omni. Mutuellement exclusives avec le mode première/dernière image. Fournir une vidéo modifie le prix unitaire facturé et ajoute la durée d'entrée au nombre de tokens.

    • resolution
      Type: string enum

      Résolution de sortie. Une résolution plus élevée consomme plus de tokens et coûte plus cher.

      valeurs
      • 480p
      • 720p
      • 1080p
      • 4k
    • service_tier
      Type: string | null

      Seule la valeur default (standard) est actuellement prise en charge. Une valeur omise, null, un alias ou une chaîne non prise en charge revient à default ; les autres types renvoient HTTP 400. Les canaux et tarifs configurés restent inchangés. Les API de texte envoient la valeur standard du fournisseur ; les API Decisions et de génération omettent le champ amont.

  • last_frame_url
    Type: string Format: uri
  • prompt
    Type: string
    longueur max.:  
    2000
  • reference_audio_urls
    Type: array string[] …3Format: uri
  • reference_image_urls
    Type: array string[] …9Format: uri
  • reference_video_urls
    Type: array string[] …3Format: uri
  • resolution
    Type: string enum
    valeurs
    • 480p
    • 720p
    • 1080p
    • 4k
  • service_tier
    Type: string | null

    Seule la valeur default (standard) est actuellement prise en charge. Une valeur omise, null, un alias ou une chaîne non prise en charge revient à default ; les autres types renvoient HTTP 400. Les canaux et tarifs configurés restent inchangés. Les API de texte envoient la valeur standard du fournisseur ; les API Decisions et de génération omettent le champ amont.

Réponses
  • 202
    Type: object · VideoGenerationAccepted

    Tâche acceptée

    • kind
      enum
      constante:  
      video
      obligatoire
      valeurs
      • video
    • outputs
      Type: array string[]
      obligatoire

      Vide jusqu'à la réussite de la tâche.

    • status
      enum
      constante:  
      queued
      obligatoire
      valeurs
      • queued
    • task_id
      Type: string
      obligatoire

      ID de tâche à utiliser pour l'interrogation.

    application/json
  • 400
    Type: object · GenerationError

    Requête invalide (modèle inconnu, modes d'entrée mélangés, champs invalides)

    Enveloppe d'erreur compatible OpenAI.

    • error
      Type: object
      • message
        Type: string
        obligatoire
      • type
        Type: string enum
        obligatoire
        valeurs
        • invalid_request_error
        • server_error
      • code
        Type: string
      • param
        Type: string nullable
    application/json
  • 401
    Type: object · GenerationError

    Clé API Felo invalide ou manquante

    Enveloppe d'erreur compatible OpenAI.

    • error
      Type: object
      • message
        Type: string
        obligatoire
      • type
        Type: string enum
        obligatoire
        valeurs
        • invalid_request_error
        • server_error
      • code
        Type: string
      • param
        Type: string nullable
    application/json
  • 402
    Type: object · GenerationError

    Solde insuffisant / condition de facturation non remplie

    Enveloppe d'erreur compatible OpenAI.

    • error
      Type: object
      • message
        Type: string
        obligatoire
      • type
        Type: string enum
        obligatoire
        valeurs
        • invalid_request_error
        • server_error
      • code
        Type: string
      • param
        Type: string nullable
    application/json
  • 403
    Type: object · GenerationError

    Compte non autorisé (abonnement requis ou utilisateur suspendu). Les modèles désactivés sont également rejetés avant tout appel amont. Les requêtes acceptées et les tâches en cours se poursuivent.

    Enveloppe d'erreur compatible OpenAI.

    • error
      Type: object
      • message
        Type: string
        obligatoire
      • type
        Type: string enum
        obligatoire
        valeurs
        • invalid_request_error
        • server_error
      • code
        Type: string
      • param
        Type: string nullable
    application/json
  • 429
    Type: object · GenerationError

    Limite de requêtes ou de dépenses atteinte

    Enveloppe d'erreur compatible OpenAI.

    • error
      Type: object
      • message
        Type: string
        obligatoire
      • type
        Type: string enum
        obligatoire
        valeurs
        • invalid_request_error
        • server_error
      • code
        Type: string
      • param
        Type: string nullable
    application/json
  • 502
    Type: object · GenerationError

    Échec du fournisseur amont

    Enveloppe d'erreur compatible OpenAI.

    • error
      Type: object
      • message
        Type: string
        obligatoire
      • type
        Type: string enum
        obligatoire
        valeurs
        • invalid_request_error
        • server_error
      • code
        Type: string
      • param
        Type: string nullable
    application/json
  • 503
    Type: object · GenerationError

    Service de génération ou service de facturation temporairement indisponible

    Enveloppe d'erreur compatible OpenAI.

    • error
      Type: object
      • message
        Type: string
        obligatoire
      • type
        Type: string enum
        obligatoire
        valeurs
        • invalid_request_error
        • server_error
      • code
        Type: string
      • param
        Type: string nullable
    application/json
Request Example for post/api/v1/videos/generations
curl https://openapi.felo.ai/api/v1/videos/generations \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --data '{
  "model": "seedance-2.0-mini",
  "prompt": "a cinematic trailer shot, 720p",
  "resolution": "720p",
  "duration": 5,
  "generate_audio": true
}'
{
  "task_id": "string",
  "status": "queued",
  "kind": "video",
  "outputs": [
    "string"
  ]
}
Submit a video generation task