Felo API PlatformFelo API Platform
v0.4.0
OpenAPI 3.1.0

Enviar uma tarefa de geração de vídeo

Servidor:https://openapi.felo.ai
Bibliotecas Cliente

Enviar uma tarefa de geração de vídeo

​

Cria uma tarefa assíncrona de geração de vídeo e retorna um task_id imediatamente (HTTP 202). Consulte GET /api/v1/videos/generations/{task_id} em polling até que ela seja concluída com sucesso. O corpo da requisição pode ser enviado achatado ({model, prompt, ...}) ou aninhado ({model, input: {prompt, ...}}); o objeto input tem precedência quando presente. Os campos de callback (callBackUrl / callback_url / callbackUrl) são ignorados.

Três modos de entrada mutuamente exclusivos:

  • text-to-video: apenas prompt;
  • image-to-video (primeiro/último quadro): first_frame_url (+ last_frame_url opcional);
  • omni-reference: reference_image_urls / reference_video_urls / reference_audio_urls. Misturar primeiro/último quadro com qualquer entrada de referência multimodal retorna 400 invalid_request_error.
Cabeçalhos
  • X-Request-Id
    Tipo: string

    ID de requisição do chamador, opcional, retornado na resposta para diagnóstico.

  • X-Felo-Channel
    Tipo: string

    Códigos de canal público separados por vírgula, em ordem. Omita este cabeçalho para usar default; default deve ser usado sozinho. No modo carteira, default percorre a ordem efetiva de canais públicos do modelo em ordem inversa, ignora canais não publicados ou indisponíveis e seleciona o provedor do primeiro canal disponível. Inclui os endpoints disponíveis desse provedor com o mesmo ID de modelo upstream e o mesmo service tier. Canais explícitos são validados na ordem especificada pelo cliente; somente o grupo de provedores do primeiro canal é enviado. Não há fallback automático para outros provedores. Cabeçalhos legados de provedor não podem substituir o roteamento por canal.

Corpo·VideoGenerationRequest
obrigatório
application/json

Entrada de geração de vídeo. Pode ser achatada ({model, prompt, ...}) ou aninhada ({model, input: {...}}). input tem precedência. Exatamente um modo de entrada deve ser usado; misturar primeiro/último quadro com entradas de referência multimodal é rejeitado.

  • model
    Tipo: string
    obrigatório

    Nome do modelo exposto pela Felo, por exemplo seedance-2.0-mini.

  • aspect_ratio
    Tipo: string enum
    valores
    • 16:9
    • 9:16
    • 1:1
    • 4:3
    • 3:4
    • 21:9
    • adaptive
  • duration
    Tipo: integer
    mín:  
    4
    máx:  
    15

    Integer numbers.

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

    Objeto input aninhado opcional; quando presente, seus campos têm precedência sobre os campos irmãos.

    • aspect_ratio
      Tipo: string enum

      Proporção de saída; adaptive segue a proporção da imagem de entrada.

      valores
      • 16:9
      • 9:16
      • 1:1
      • 4:3
      • 3:4
      • 21:9
      • adaptive
    • duration
      Tipo: integer
      mín:  
      4
      máx:  
      15

      Duração de saída em segundos.

    • first_frame_url
      Tipo: string Formato: uri

      URL da imagem do primeiro quadro (modo image-to-video).

    • generate_audio
      Tipo: boolean

      Define se uma faixa de áudio sincronizada deve ser gerada.

    • last_frame_url
      Tipo: string Formato: uri

      URL da imagem do último quadro; deve ser usada em conjunto com first_frame_url.

    • prompt
      Tipo: string
      tamanho máximo:  
      2000

      Prompt. Obrigatório nos modos text-to-video e omni-reference.

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

      Clipes de áudio de referência omni.

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

      Imagens de referência omni. Mutuamente exclusivas com primeiro/último quadro.

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

      Vídeos de referência omni. Mutuamente exclusivos com primeiro/último quadro. Fornecer vídeo altera o preço unitário de cobrança e soma a duração de entrada à contagem de tokens.

    • resolution
      Tipo: string enum

      Resolução de saída. Resoluções mais altas consomem mais tokens e custam mais.

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

      Atualmente, apenas default (standard) é suportado. Valores omitidos, null, aliases e strings não suportadas usam default; outros tipos retornam HTTP 400. Os canais e preços configurados permanecem inalterados. As APIs de texto enviam o valor padrão do provedor; as APIs Decisions e de geração omitem o campo upstream.

  • last_frame_url
    Tipo: string Formato: uri
  • prompt
    Tipo: string
    tamanho máximo:  
    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
    valores
    • 480p
    • 720p
    • 1080p
    • 4k
  • service_tier
    Tipo: string | null

    Atualmente, apenas default (standard) é suportado. Valores omitidos, null, aliases e strings não suportadas usam default; outros tipos retornam HTTP 400. Os canais e preços configurados permanecem inalterados. As APIs de texto enviam o valor padrão do provedor; as APIs Decisions e de geração omitem o campo upstream.

Respostas
  • 202
    Tipo: object · VideoGenerationAccepted

    Tarefa aceita

    • kind
      enum
      const:  
      video
      obrigatório
      valores
      • video
    • outputs
      Tipo: array string[]
      obrigatório

      Vazio até a tarefa ser concluída com sucesso.

    • status
      enum
      const:  
      queued
      obrigatório
      valores
      • queued
    • task_id
      Tipo: string
      obrigatório

      ID da tarefa a ser usado no polling.

    application/json
  • 400
    Tipo: object · GenerationError

    Requisição inválida (modelo desconhecido, modos de entrada misturados, campos inválidos)

    Envelope de erro compatível com a OpenAI.

    • error
      Tipo: object
      • message
        Tipo: string
        obrigatório
      • type
        Tipo: string enum
        obrigatório
        valores
        • invalid_request_error
        • server_error
      • code
        Tipo: string
      • param
        Tipo: string aceita nulo
    application/json
  • 401
    Tipo: object · GenerationError

    Chave de API da Felo inválida ou ausente

    Envelope de erro compatível com a OpenAI.

    • error
      Tipo: object
      • message
        Tipo: string
        obrigatório
      • type
        Tipo: string enum
        obrigatório
        valores
        • invalid_request_error
        • server_error
      • code
        Tipo: string
      • param
        Tipo: string aceita nulo
    application/json
  • 402
    Tipo: object · GenerationError

    Saldo insuficiente / requisito de cobrança não atendido

    Envelope de erro compatível com a OpenAI.

    • error
      Tipo: object
      • message
        Tipo: string
        obrigatório
      • type
        Tipo: string enum
        obrigatório
        valores
        • invalid_request_error
        • server_error
      • code
        Tipo: string
      • param
        Tipo: string aceita nulo
    application/json
  • 403
    Tipo: object · GenerationError

    Conta sem permissão (assinatura necessária ou usuário banido). Modelos desativados também são rejeitados antes das chamadas upstream. Requisições e tarefas já aceitas continuam.

    Envelope de erro compatível com a OpenAI.

    • error
      Tipo: object
      • message
        Tipo: string
        obrigatório
      • type
        Tipo: string enum
        obrigatório
        valores
        • invalid_request_error
        • server_error
      • code
        Tipo: string
      • param
        Tipo: string aceita nulo
    application/json
  • 429
    Tipo: object · GenerationError

    Limite de requisições ou de gastos atingido

    Envelope de erro compatível com a OpenAI.

    • error
      Tipo: object
      • message
        Tipo: string
        obrigatório
      • type
        Tipo: string enum
        obrigatório
        valores
        • invalid_request_error
        • server_error
      • code
        Tipo: string
      • param
        Tipo: string aceita nulo
    application/json
  • 502
    Tipo: object · GenerationError

    Falha no provedor upstream

    Envelope de erro compatível com a OpenAI.

    • error
      Tipo: object
      • message
        Tipo: string
        obrigatório
      • type
        Tipo: string enum
        obrigatório
        valores
        • invalid_request_error
        • server_error
      • code
        Tipo: string
      • param
        Tipo: string aceita nulo
    application/json
  • 503
    Tipo: object · GenerationError

    Serviço de geração ou serviço de cobrança temporariamente indisponível

    Envelope de erro compatível com a OpenAI.

    • error
      Tipo: object
      • message
        Tipo: string
        obrigatório
      • type
        Tipo: string enum
        obrigatório
        valores
        • invalid_request_error
        • server_error
      • code
        Tipo: string
      • param
        Tipo: string aceita nulo
    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