Introdução
O Video Character 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 pessoas trocadas. A figura inteira muda, roupa e porte incluídos; cenário, movimento de câmera, marcação e trilha de áudio original continuam como foram filmados. As pessoas que você não listar não são tocadas.
O Video Character Swap acontece em duas chamadas. A primeira rastreia cada pessoa em um clipe de 5 a 30 segundos e devolve uma prévia por pessoa, 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 pessoas trocadas e o áudio original intacto.
Análise de vídeo do Character Swap → Edição de vídeo do Character 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 pessoa encontrada, numerada, e a segunda mexe apenas nos números que você devolve. Numa cena com quatro pessoas dá para substituir uma e deixar as outras três exatamente como foram filmadas.
Dê ao modelo algo abaixo do pescoço
O Video Character Swap não é um endpoint, é um par. A primeira chamada, video-analyze, rastreia todas as pessoas de um clipe de 5 a 30 segundos e devolve uma prévia por pessoa em ordem fixa, cobrada por requisição num valor fixo, independentemente da duração do clipe e de quantas pessoas 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. Enquanto o par de head swap muda só a cabeça, este substitui a figura inteira, roupa e porte incluídos, enquanto o cenário, o movimento de câmera e a marcação continuam como foram filmados. 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.
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 pessoa 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 sem refilmar
O cenário, o movimento de câmera e a marcação já estão do jeito certo. Em vez de regerar o plano inteiro e refazer o trabalho de imagem, substitua apenas a figura que o interpreta.
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.
Um mesmo personagem em toda uma série gerada
Gere um lote de clipes com qualquer modelo de vídeo, analise cada um e leve o mesmo personagem para todos, para que a série seja lida como um único intérprete.
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 pessoa 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.
Dê ao modelo algo abaixo do pescoço
Este endpoint substitui a figura inteira, então um retrato de busto deixa porte e roupa por conta do palpite. Duas ou três fotos de corpo inteiro em ângulos diferentes valem mais do que um único close muito nítido.
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/character-swap-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.
