Introdução
O Video Head Swap recebe o id de tarefa de uma análise, as posições escolhidas entre as prévias dela e de uma a três fotos de referência para cada uma, e devolve o clipe com essas cabeças trocadas. Cabelo, formato da cabeça e identidade mudam; corpo, figurino, movimento, enquadramento e trilha de áudio original continuam como foram filmados. As cabeças que você não listar não são tocadas.
O Video Head Swap acontece em duas chamadas. A primeira rastreia cada cabeça em um clipe de 5 a 30 segundos e devolve uma prévia por cabeça, em ordem fixa. A segunda recebe as posições que você escolheu e de uma a três fotos de referência para cada uma, e devolve o clipe com essas cabeças trocadas e o áudio original intacto.
Análise de vídeo do Head Swap → Edição de vídeo do Head Swap
Recursos e destaques
Quem muda é você que decide
A maioria dos endpoint desse tipo precisa adivinhar a qual pessoa você se referia. Aqui a primeira chamada mostra cada cabeça encontrada, numerada, e a segunda mexe apenas nos números que você devolve. Num clipe com quatro pessoas dá para trocar uma e deixar as outras três exatamente como foram filmadas.
Mantenha vídeo e resolução idênticos
O Video Head Swap não é um endpoint, é um par. A primeira chamada, video-analyze, rastreia todas as cabeças de um clipe de 5 a 30 segundos e devolve uma prévia por cabeça em ordem fixa, cobrada por requisição num valor fixo, independentemente da duração do clipe e de quantas cabeças forem encontradas. A segunda chamada, video-edit, recebe o id de tarefa dessa análise, as posições que você escolheu e de uma a três fotos de referência para cada uma, e devolve um único clipe com a trilha de áudio original preservada, cobrado por segundo de material em 480p ou 720p. Os dados de rastreamento em si nunca chegam até você: você trabalha com o seu próprio id de tarefa e com posições numeradas a partir de zero, que correspondem exatamente às prévias que você viu. As duas chamadas precisam usar o mesmo vídeo e a mesma resolução, e, se houver divergência, a segunda é recusada em vez de passar em silêncio.
Parâmetros da requisição
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
analysis_task_id | Sim | O id de tarefa da chamada de análise deste clipe. As prévias dela estão na mesma ordem de |
swap_targets | Sim | Uma entrada por cabeça a trocar; as omitidas não são tocadas. |
video_url | Não | Opcional. Se você omitir, o vídeo da análise é usado. pelo menos 1 caracteres |
resolution | Não | Precisa coincidir com a resolução em que a análise rodou. Este campo também define a faixa de preço. |
seed | Não | Semente aleatória; zero pede uma semente ao acaso. |
Preços
A cobrança é feita em blocos inteiros de 5 segundos do clipe de origem, então um clipe de 6 segundos custa o mesmo que 10 segundos. A estimativa antes do envio usa a duração real de um clipe enviado, ou o máximo de 30 segundos para uma URL de vídeo; qualquer diferença é liberada na liquidação.
| Especificação | Preço |
|---|---|
| $0.064 / segundo |
| $0.12 / segundo |
Casos de uso
Trocar o elenco de uma tomada que já funciona
A tomada cuja luz, marcação e movimento de câmera já foram aprovados continua de pé: você troca a cabeça em vez de regerar o plano inteiro e perder a atuação.
Qualquer tema, com intérprete que consentiu
Nada muda na requisição, seja qual for o conteúdo do material. A exigência de autorização descrita mais abaixo também não muda: é uma condição rígida, não uma formalidade.
Uma mesma pessoa em toda uma série gerada
Gere um lote de clipes com qualquer modelo de vídeo, analise cada um e leve a mesma cabeça autorizada para todos, para que a série seja lida como uma única pessoa.
Multidões em que só uma pessoa muda
Analise uma cena com várias pessoas em quadro, olhe as prévias e devolva só a posição que você queria. Todas as outras ficam intocadas.
Guia de prompt e dicas práticas
Confirme os direitos sobre cada cabeça envolvida
Tanto o material quanto as fotos de referência mostram pessoas. Você precisa de autorização para a imagem que está movendo e para o material em que a coloca. Guarde a autorização junto com o registro do trabalho.
Analise primeiro e leia a ordem das prévias
A análise devolve as prévias em ordem fixa. A primeira imagem é object_index 0, a segunda é 1, e assim por diante. Essa posição é a única pista de que você precisa: devolva-a em swap_targets.
Mantenha vídeo e resolução idênticos
As duas chamadas precisam rodar sobre o mesmo vídeo na mesma resolução. Se você omitir video_url na segunda, ele é copiado da análise; se enviar, precisa coincidir. Uma resolução diferente é recusada, e não rastreada de novo em silêncio.
Início rápido da API
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "spicyapi/head-swap-video-v1/video-edit",
"input": {
"analysis_task_id": "example",
"resolution": "720p",
"swap_targets": [
{
"image_urls": [
"example"
],
"object_index": 0
}
]
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
Consulte a referência da API para autenticação, esquema completo, polling e tratamento de erros.

