Pular para o conteúdo

Gerações e estados

Base REST: https://infinityflow.stream/api/v1. Os corpos de criação são JSON. POST /generations exige Idempotency-Key em formato UUID e escopo generations:write.

{
"prompt": "Uma cidade futurista vista ao amanhecer",
"title": "Abertura da campanha",
"mediaKind": "video",
"model": "studio-video",
"aspect": "16:9",
"durationSeconds": 10,
"outputCount": 1,
"referenceIds": []
}
Campo Regra
prompt Obrigatório; de 1 a 4.000 caracteres após remover espaços externos
title Opcional; até 100 caracteres
mediaKind video ou image; informe explicitamente para maior clareza
model studio-video para vídeo; studio-image para imagem
aspect Obrigatório: 16:9 ou 9:16
durationSeconds Vídeo padrão de 10 segundos; valores diferentes não são aceitos
outputCount Um output por job; use lote para várias gerações
projectId UUID de projeto pertencente à conta; omitido usa o projeto padrão
referenceIds Até 3 UUIDs de imagens privadas válidas, sem repetição

Não envie resolução, duração maior, IDs de fornecedor ou parâmetros de modelo não publicados. Consulte GET /models para capacidades realmente disponíveis.

Estado O que fazer
queued Pedido salvo, aguardando capacidade elegível
processing Preparação, submissão, execução ou recuperação em andamento
succeeded Arquivo disponível dentro da retenção, conforme saída/expiração
failed Pedido terminou sem resultado disponível; examine o estado salvo antes de nova criação
cancelled Cancelado antes da submissão
attention_required Resultado da submissão incerto ou intervenção necessária; não repetir cegamente

GET /generations/{id} retorna { "generation": ... }, com createdAt, updatedAt, readyAt, expiresAt e outputs. Cada saída informa disponibilidade e URLs autorizadas. Nunca infira conclusão só pelo tempo decorrido.

GET /generations?projectId=UUID&cursor=CURSOR retorna até 24 itens visíveis e nextCursor. Use o cursor retornado exatamente como recebido, codificado com URLSearchParams; ele contém timestamp e ID para não perder itens de um lote criado no mesmo instante.

POST /generations/{id}/cancel só cancela pedidos sem submissão iniciada e sem lease ativa impeditiva. Se o servidor responder 409, consulte o pedido original. Cancelar não é interromper uma geração já enviada e não é permissão para reexecutar um resultado incerto.