Felo API PlatformFelo API Platform
v0.4.0
OpenAPI 3.1.0

Inviare un'attività di generazione video

Server:https://openapi.felo.ai
Librerie client

Inviare un'attività di generazione video

​

Crea un'attività asincrona di generazione video e restituisce subito un task_id (HTTP 202). Eseguire il polling di GET /api/v1/videos/generations/{task_id} finché l'attività non viene completata con successo. Il corpo della richiesta può essere fornito in forma piatta ({model, prompt, ...}) oppure annidata ({model, input: {prompt, ...}}); se presente, l'oggetto input ha la precedenza. I campi callback (callBackUrl / callback_url / callbackUrl) vengono ignorati.

Tre modalità di input mutuamente esclusive:

  • text-to-video: solo prompt;
  • image-to-video (primo/ultimo fotogramma): first_frame_url (+ last_frame_url facoltativo);
  • omni-reference: reference_image_urls / reference_video_urls / reference_audio_urls. La combinazione di primo/ultimo fotogramma con qualsiasi input di riferimento multimodale restituisce 400 invalid_request_error.
Intestazioni
  • X-Request-Id
    Tipo: string

    ID richiesta del chiamante facoltativo, restituito per diagnostica.

  • X-Felo-Channel
    Tipo: string

    Codici canale pubblici separati da virgola e in ordine. Omettere questa intestazione per usare default; default deve essere usato da solo. In modalità wallet, default analizza in ordine inverso l'ordine effettivo dei canali pubblici del modello, ignora i canali non pubblicati o non disponibili e seleziona il provider del primo canale disponibile. Include gli endpoint disponibili di quel provider con lo stesso ID modello upstream e lo stesso livello di servizio. I canali espliciti vengono convalidati nell'ordine indicato dal client; viene inviato solo il gruppo di provider del primo canale. Nessun fallback automatico ad altri provider. Le intestazioni dei provider legacy non possono ignorare l'instradamento dei canali.

Corpo·VideoGenerationRequest
obbligatorio
application/json

Input di generazione video. In forma piatta ({model, prompt, ...}) oppure annidata ({model, input: {...}}). input ha la precedenza. Deve essere usata esattamente una modalità di input; la combinazione di primo/ultimo fotogramma con input di riferimento multimodali viene rifiutata.

  • model
    Tipo: string
    obbligatorio

    Nome del modello esposto da Felo, ad es. seedance-2.0-mini.

  • aspect_ratio
    Tipo: string enum
    valori
    • 16:9
    • 9:16
    • 1:1
    • 4:3
    • 3:4
    • 21:9
    • adaptive
  • duration
    Tipo: integer
    min:  
    4
    max:  
    15

    Integer numbers.

  • first_frame_url
    Tipo: string Formato: uri
  • generate_audio
    Tipo: boolean
  • input
    Tipo: object

    Oggetto input annidato facoltativo; se presente, i suoi campi hanno la precedenza sui campi allo stesso livello.

    • aspect_ratio
      Tipo: string enum

      Proporzioni di output; adaptive segue le proporzioni dell'immagine di input.

      valori
      • 16:9
      • 9:16
      • 1:1
      • 4:3
      • 3:4
      • 21:9
      • adaptive
    • duration
      Tipo: integer
      min:  
      4
      max:  
      15

      Durata di output in secondi.

    • first_frame_url
      Tipo: string Formato: uri

      URL dell'immagine del primo fotogramma (modalità image-to-video).

    • generate_audio
      Tipo: boolean

      Indica se generare una traccia audio sincronizzata.

    • last_frame_url
      Tipo: string Formato: uri

      URL dell'immagine dell'ultimo fotogramma; deve essere usato insieme a first_frame_url.

    • prompt
      Tipo: string
      lunghezza massima:  
      2000

      Prompt. Obbligatorio per le modalità text-to-video e omni-reference.

    • reference_audio_urls
      Tipo: array string[] …3Formato: uri

      Clip audio omni-reference.

    • reference_image_urls
      Tipo: array string[] …9Formato: uri

      Immagini omni-reference. Mutuamente esclusive con primo/ultimo fotogramma.

    • reference_video_urls
      Tipo: array string[] …3Formato: uri

      Video omni-reference. Mutuamente esclusivi con primo/ultimo fotogramma. Fornire un video modifica il prezzo unitario di fatturazione e aggiunge la durata dell'input al conteggio dei token.

    • resolution
      Tipo: string enum

      Risoluzione di output. Una risoluzione più alta consuma più token e costa di più.

      valori
      • 480p
      • 720p
      • 1080p
      • 4k
    • service_tier
      Tipo: string | null

      Attualmente è supportato solo default (standard). Se omesso, null, alias e stringhe non supportate ricadono su default; altri tipi restituiscono HTTP 400. I canali e i prezzi configurati restano invariati. Le API di testo inviano il valore standard del provider; le API Decisions e di generazione omettono il campo upstream.

  • last_frame_url
    Tipo: string Formato: uri
  • prompt
    Tipo: string
    lunghezza massima:  
    2000
  • reference_audio_urls
    Tipo: array string[] …3Formato: uri
  • reference_image_urls
    Tipo: array string[] …9Formato: uri
  • reference_video_urls
    Tipo: array string[] …3Formato: uri
  • resolution
    Tipo: string enum
    valori
    • 480p
    • 720p
    • 1080p
    • 4k
  • service_tier
    Tipo: string | null

    Attualmente è supportato solo default (standard). Se omesso, null, alias e stringhe non supportate ricadono su default; altri tipi restituiscono HTTP 400. I canali e i prezzi configurati restano invariati. Le API di testo inviano il valore standard del provider; le API Decisions e di generazione omettono il campo upstream.

Risposte
  • 202
    Tipo: object · VideoGenerationAccepted

    Attività accettata

    • kind
      enum
      const:  
      video
      obbligatorio
      valori
      • video
    • outputs
      Tipo: array string[]
      obbligatorio

      Vuoto finché l'attività non viene completata con successo.

    • status
      enum
      const:  
      queued
      obbligatorio
      valori
      • queued
    • task_id
      Tipo: string
      obbligatorio

      ID attività da usare per il polling.

    application/json
  • 400
    Tipo: object · GenerationError

    Richiesta non valida (modello sconosciuto, modalità di input miste, campi non validi)

    Struttura di errore compatibile con OpenAI.

    • error
      Tipo: object
      • message
        Tipo: string
        obbligatorio
      • type
        Tipo: string enum
        obbligatorio
        valori
        • invalid_request_error
        • server_error
      • code
        Tipo: string
      • param
        Tipo: string ammette null
    application/json
  • 401
    Tipo: object · GenerationError

    Chiave API Felo non valida o mancante

    Struttura di errore compatibile con OpenAI.

    • error
      Tipo: object
      • message
        Tipo: string
        obbligatorio
      • type
        Tipo: string enum
        obbligatorio
        valori
        • invalid_request_error
        • server_error
      • code
        Tipo: string
      • param
        Tipo: string ammette null
    application/json
  • 402
    Tipo: object · GenerationError

    Saldo insufficiente / requisito di fatturazione non soddisfatto

    Struttura di errore compatibile con OpenAI.

    • error
      Tipo: object
      • message
        Tipo: string
        obbligatorio
      • type
        Tipo: string enum
        obbligatorio
        valori
        • invalid_request_error
        • server_error
      • code
        Tipo: string
      • param
        Tipo: string ammette null
    application/json
  • 403
    Tipo: object · GenerationError

    Account non autorizzato (abbonamento richiesto o utente bloccato). Anche i modelli disattivati vengono rifiutati prima delle chiamate upstream. Le richieste e le attività già accettate proseguono.

    Struttura di errore compatibile con OpenAI.

    • error
      Tipo: object
      • message
        Tipo: string
        obbligatorio
      • type
        Tipo: string enum
        obbligatorio
        valori
        • invalid_request_error
        • server_error
      • code
        Tipo: string
      • param
        Tipo: string ammette null
    application/json
  • 429
    Tipo: object · GenerationError

    Limite di richieste o di spesa raggiunto

    Struttura di errore compatibile con OpenAI.

    • error
      Tipo: object
      • message
        Tipo: string
        obbligatorio
      • type
        Tipo: string enum
        obbligatorio
        valori
        • invalid_request_error
        • server_error
      • code
        Tipo: string
      • param
        Tipo: string ammette null
    application/json
  • 502
    Tipo: object · GenerationError

    Errore del provider upstream

    Struttura di errore compatibile con OpenAI.

    • error
      Tipo: object
      • message
        Tipo: string
        obbligatorio
      • type
        Tipo: string enum
        obbligatorio
        valori
        • invalid_request_error
        • server_error
      • code
        Tipo: string
      • param
        Tipo: string ammette null
    application/json
  • 503
    Tipo: object · GenerationError

    Servizio di generazione o servizio di fatturazione temporaneamente non disponibile

    Struttura di errore compatibile con OpenAI.

    • error
      Tipo: object
      • message
        Tipo: string
        obbligatorio
      • type
        Tipo: string enum
        obbligatorio
        valori
        • invalid_request_error
        • server_error
      • code
        Tipo: string
      • param
        Tipo: string ammette null
    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