Introdução
Face Swap leva os traços do rosto de uma imagem para a pessoa de outra. Só os traços viajam: penteado, linha do cabelo, silhueta da cabeça, pose, roupa, luz e fundo da imagem de destino continuam como estavam, e é isso que faz o resultado se encaixar dentro da foto original em vez de ficar colado por cima.
A requisição são duas URLs de imagem e um seed opcional: image_url é a foto que vai mudar e reference_image_url fornece o rosto. Não há campo de prompt para escrever, e cada requisição devolve uma imagem.
Recursos e destaques
A foto fica, a identidade muda
É a escolha mais restrita quando a foto de destino já tem o cabelo, a pose, a roupa, o enquadramento e o ambiente certos. Ela leva a identidade do rosto e protege o resto da composição aprovada, então trocar a pessoa não vira uma geração completa da imagem.
Feito para pares de imagens repetíveis
O fluxo é simples de propósito: prepare um destino e uma referência com direitos resolvidos e com ângulo e luz compatíveis, depois revise a linha do queixo, os olhos e a transição da pele. Isso o torna útil para variações controladas de avatares, catálogos e campanhas em que a foto precisa continuar reconhecível.
Defina o alcance da troca antes de começar
Use Face Swap quando o penteado e a silhueta da cabeça do destino fazem parte da composição. Se a nova identidade precisa trazer o cabelo e todo o formato da cabeça, mande o trabalho para o Head Swap; escolher o alcance certo evita uma nova execução desnecessária.
Parâmetros da requisição
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
image_url | Sim | A imagem que está sendo alterada. Formato de cabeça, cabelo, pose, figurino e fundo desta pessoa são preservados — só as feições são substituídas. pelo menos 1 caracteres |
reference_image_url | Sim | A imagem que fornece as feições. Só o rosto é aproveitado, não o formato de cabeça nem o cabelo. pelo menos 1 caracteres |
face_mapping | Não | Para fotos em grupo: diga qual rosto da referência vai em qual rosto do destino, um par por item, com os rostos numerados a partir de 0 na ordem de detecção. no máximo 10 itens |
style | Não | Acabamento do rosto trocado: realistic (padrão) mantém o tom e a textura naturais da pele, beautify suaviza e clareia a pele, lossless preserva o máximo de detalhes do rosto. |
face_enhance | Não | Aplica uma etapa de melhoria no rosto trocado para deixá-lo em resolução mais alta. Desligado por padrão. Valor padrão: |
seed | Não | Reutilize um seed para comparar duas execuções sobre o mesmo par de imagens contra um sorteio idêntico; deixe vazio ou em 0 para um sorteio aleatório a cada vez. |
Preços
$0.013 / imagem
Casos de uso
Um rosto novo para um retrato cujo cabelo já funciona
Use este endpoint quando o penteado, a linha do cabelo e a silhueta da cabeça da foto de destino fazem parte da composição e só os traços devem mudar. Envie o destino como image_url e o rosto como reference_image_url, e compare olhos e linha do queixo com a origem em tamanho real antes de aceitar o resultado.
Trocar a pessoa de uma foto de banco ou gerada
Pegue uma foto cuja luz, pose e cenário já funcionam e coloque outro rosto nela, em vez de gerar a imagem inteira de novo e perder a composição que você já tinha aprovado.
Fluxos em massa de avatares e fotos de perfil
Sem prompt para escrever, uma lista de pares destino-referência pode passar pelo endpoint de forma programática. Fixe um seed por par quando uma nova tentativa precisar ser comparável à primeira.
Personagens consistentes em todo um ensaio
Gere uma série de cenas com qualquer modelo e depois leve um mesmo rosto para todas, para a série ser lida como a mesma pessoa. Como cabelo e roupa continuam os de cada imagem de destino, a variação que você gerou sobrevive à passada.
Guia de prompt e dicas práticas
Confirme que você tem os direitos dos dois rostos
Antes de qualquer coisa técnica: o destino e a referência mostram pessoas, e você precisa de autorização tanto para o rosto que está levando quanto para a imagem para onde ele vai. Guarde a autorização junto com o registro do trabalho.
Hospede as duas imagens e envie o par
image_url é a imagem que vai mudar; reference_image_url fornece o rosto. Nenhum prompt entra nisso. Um editor genérico precisaria de uma instrução como: “Face swap: take the face and hairline of the woman in the second image and place it onto the woman in the first image. Keep the first image's pose, outfit, magazine layout, lighting, framing and colour grade completely unchanged. Match skin tone and lighting so the result reads as one photograph.” — este endpoint não precisa de nenhuma das duas coisas.
Confira o resultado antes de iterar
As duas imagens devem mostrar um rosto bem visível, mais ou menos de frente e bem iluminado; perfis muito marcados, borrão de movimento, obstruções densas e rostos muito pequenos são onde a troca piora ou falha de vez. Uma grande diferença na direção da luz ou no tom de pele entre as duas imagens aparece na linha do queixo, então escolha uma referência com luz parecida com a do destino. Por padrão, um rosto é trocado por imagem; numa foto de grupo, liste os pares em face_mapping (qual rosto da referência vai em qual rosto do destino, numerados a partir de 0). Não há prompt, máscara nem controle de intensidade: se o resultado sair errado, a correção é outro par de imagens, não uma requisição reescrita.
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/face-swap-v1/edit",
"input": {
"image_url": "https://example.com/reference.png",
"reference_image_url": "https://example.com/reference.png",
"style": "realistic"
}
}'
# 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.











