Processamento em batch
O batch Sync Labs API processa até 500 gerações lip sync em uma única solicitação, enviada como um arquivo JSONL ou como um array JSON de linhas. Isso é ideal para fluxos de trabalho de processamento de video em massa, como campanhas de video personalizadas, localização de conteúdo ou qualquer cenário que exija geração de lip sync de alto volume.
Qual é o formato de arquivo batch?
O processamento em batch permite que você envie de 20 a 500 gerações sem precisar lidar com filas ou simultaneidade, com um tempo de resposta previsto de 24 horas. Os trabalhos em batch ignoram o limite normal de simultaneidade de geração, mas o API de lotes está disponível apenas no plano Scale ou superior. A partir de agora, apenas gerações com entradas de até 30 segundos são suportadas no processamento batch.
O aPI de lotes requer o plano Scale ou superior, incluindo o Enterprise
Limites de simultaneidade em batch
Os trabalhos em batch ignoram o limite normal de simultaneidade por geração, mas um separadorate limit limita quantos batches você pode executar de uma vez, com base no seu plano. Se você enviar um novo batch enquanto já estiver nesse limite, o API retornará uma resposta 429 Too Many Requests.
O corpo 429 é um objeto JSON que descreve o limite atingido:
A resposta também inclui um cabeçalho Retry-After (em segundos) e um cabeçalho X-Sync-Concurrency-Limit. Em vez de tentar novamente imediatamente, aguarde retryAfterSeconds antes de enviar novamente ou aguarde a conclusão de um de seus batches em voo.
Como faço para criar um trabalho batch?
Prepare seu arquivo de entrada
Crie um arquivo JSON Lines (.jsonl) com suas solicitações de geração. Cada linha deve conter um request_id exclusivo, o endpoint (deve ser "/v2/generate") e um payload com o formato de solicitação de geração padrão (igual a Gerar API). O arquivo deve estar no formato JSON Lines (.jsonl) com mínimo de 20 registros, tamanho máx de arquivo de 5 MB e até 500 solicitações por batch.
Crie um batch
<CodeGroup> <CodeBlock>```python from sync import Sync
sync = Sync()
batch = sync.batch.create( input=open(“input.jsonl”, “rb”) )
print(f”Batch created with ID: {batch.id}”)
O campo response contém os mesmos dados que respostas individuais Gerar API. Os nomes de campos no arquivo de resultados estão em snake_case, portanto o video de uma linha concluída fica em response.output_url e o ID da geração em response.id. Associe cada linha à sua entrada pelo request_id.
Para obter um exemplo funcional completo, consulte o exemplo de processamento batch em nosso repositório de exemplos.
Notificações de webhook
Ao fornecer um webhook_url, você receberá notificações POST quando seu batch for concluído:
O webhook de conclusão pode ser entregue mais de uma vez para o mesmo batch. Use o id do batch para ignorar notificações que você já processou.
Linhas de edição de diálogo (acesso antecipado)
Uma linha de batch pode renderizar uma prévia de edição de diálogo concluída, em vez de combinar um video com um novo áudio. Use isso para transformar um video gravado em muitas variantes, como uma por nome de destinatário. Mensagens de vídeo personalizadas tem um script completo.
As linhas de edição de diálogo estão em acesso antecipado e são habilitadas por organização. Entre em contato para ativá-las. Até lá, as linhas que contêm dialogueEdit são recusadas no envio.
O payload de cada linha contém:
model, por exemplosync-3.inputcom exatamente um video: o mesmo video de origem a partir do qual a prévia foi feita.dialogueEdit: {"id": "..."}: o ID de uma prévia concluída dePOST /v2/dialogue-editsna sua organização.
Não adicione entradas de áudio ou texto, segments ou dubParams; a prévia fornece o áudio.
Os mesmos objetos de linha funcionam como linhas em um upload de arquivo JSONL.
No envio, cada linha de edição de diálogo é expandida exatamente na solicitação que POST /v2/generate monta para essa prévia, e é cobrada da mesma forma que essa geração. O payload no arquivo de resultados mostra a solicitação expandida (o video, o áudio da prévia e os segmentos editados), não a linha que você enviou. Envie primeiro o batch com dry_run: true: ele executa todas as verificações abaixo, incluindo a expansão, sem renderizar nada.
- Todas as linhas de edição de diálogo em um batch devem usar prévias feitas a partir do mesmo video de origem. Para vários videos, envie um batch por video.
- Os limites usuais de batch se aplicam: de 20 a 500 linhas e 5 MB.
- A maioria das prévias é renderizada como segmentos editados do video. Uma prévia que só pode ser renderizada como lip sync do video inteiro é aceita em um batch apenas quando essa renderização tem 30 segundos ou menos; renderize as mais longas com
POST /v2/generate.
Recusas de edição de diálogo
Se alguma linha de edição de diálogo não puder ser renderizada, a solicitação inteira é recusada e nenhum batch é criado. A resposta traz o errorCode que POST /v2/generate retornaria para essa prévia, além do lineNumber da primeira linha com falha:
Apenas a primeira linha com falha é informada. Corrija-a e repita o dry run até que ele retorne {"status": "VALIDATED"}.

