Introduzione
Trasferisce i tratti del volto da un’immagine alla persona di un’altra. Si spostano solo i tratti: acconciatura, attaccatura dei capelli, sagoma della testa, posa, abiti, luce e sfondo dell’immagine di destinazione restano com’erano, ed è per questo che il risultato si inserisce nella foto originale invece di starci appoggiato sopra.
Face Swap Pro è il livello di precisione della linea Face Swap. Il motore individua da solo i punti chiave del volto in entrambe le foto e proietta un insieme sull’altro, e dopo non viene applicato nient’altro al risultato. L’intera richiesta sono due URL di immagine — image_url per la foto da modificare, reference_image_url per il volto — inviati a spicyapi/face-swap-pro-v1/edit. La chiamata è asincrona: restituisce un id di task, interroghi quel task e ogni richiesta restituisce un’immagine, con costo per immagine prodotta.
Caratteristiche principali
Il motore colloca il volto in base ai punti chiave
Pro è pensato per il lavoro di precisione. Invece di copiare una zona, individua i punti chiave del volto in entrambe le foto e proietta un insieme sull’altro, così occhi, naso e bocca finiscono dove li mette la geometria del volto di destinazione. Su questo endpoint il rilevamento è automatico: invii due immagini e nient’altro. Non c’è nemmeno un passaggio di miglioramento successivo, quindi pori, linee sottili e grana restano e il volto ha la stessa nitidezza di tutto ciò che lo circonda. È anche il motivo per cui un risultato può sembrare meno lusinghiero di uno scambio filtrato: precisione e lusinga non sono lo stesso obiettivo.
Due URL di immagine e nient’altro da sbagliare
È l’unico endpoint di face swap di questo catalogo che accetta soltanto le due immagini: nessun prompt da formulare, nessuna zona da dipingere, nessuna intensità da regolare, nessun seed da fissare. Sparisce così un’intera classe di errori dovuti a istruzioni ambigue, e l’elaborazione in batch diventa banale, perché un elenco di coppie passa senza decisioni caso per caso. Le chiavi sconosciute vengono rifiutate, non ignorate, quindi un nome di campo scritto male fallisce all’invio invece di ripiegare in silenzio su un valore predefinito. L’unica cosa che conta davvero è quale URL va dove: i due campi non sono simmetrici, e invertirli dà una richiesta perfettamente valida con un risultato del tutto diverso.
La foto di destinazione sopravvive allo scambio
| Arriva dal riferimento | Resta con la destinazione |
|---|---|
| Occhi, naso, bocca, sopracciglia | Acconciatura, attaccatura dei capelli, sagoma della testa |
| Le proporzioni del volto stesso | Posa, sguardo, corpo, abiti |
| Il dettaglio della pelle nell’area del volto | Sfondo, inquadratura, luce, grana |
Qui non ci sono formato né risoluzione, perché l’immagine non viene rigenerata: si sostituisce una zona di una foto esistente. Per questo l’endpoint si può usare su uno scatto già approvato: niente al di fuori del volto torna in discussione.
Parametri della richiesta
| Parametro | Obbligatorio | Nota |
|---|---|---|
image_url | Sì | L'immagine che cambia. Forma della testa, capelli, attaccatura, posa, sguardo, abbigliamento e sfondo di questa persona sono preservati: vengono sostituiti solo i suoi lineamenti. almeno 1 caratteri |
reference_image_url | Sì | L'immagine che fornisce i lineamenti. Viene preso solo il viso, non la forma della testa né i capelli, quindi inquadratura, sfondo e abbigliamento di questa foto vengono ignorati. almeno 1 caratteri |
face_enhance | No | Applica al volto scambiato un passaggio di miglioramento che lo restituisce a risoluzione più alta. Disattivato per impostazione predefinita. Predefinito: |
Prezzi
$0.16 / immagine
Casi d’uso
Immagini editoriali e di campagna destinate alla stampa
Un volto levigato crolla in formato di stampa: accanto a un abito e a uno sfondo nitidi la pelle sembra plastica. Conservare la texture originale fa reggere l’immagine quando qualcuno la guarda da vicino, non solo in miniatura.
Cambiare il volto in uno scatto già approvato
Luce, posa e set funzionano già, e rigenerare l’intera immagine rimetterebbe tutto in gioco. Porta invece un volto nello scatto: tutto ciò che hai approvato resta esattamente dov’era.
Personaggi coerenti in una serie
Genera le scene con qualsiasi modello, poi porta lo stesso volto in tutte, così la serie si legge come la stessa persona. Capelli e abiti restano quelli di ciascuna immagine di destinazione, quindi la varietà generata sopravvive al passaggio.
Immagini senza censura, dove il limite è il consenso e non il soggetto
SpicyAPI non aggiunge un filtro dei contenuti proprio e non chiede alcun flag di contenuto, quindi il corpo della richiesta è sempre composto dagli stessi due campi, qualunque cosa mostri il fotogramma. Non si allenta l’autorizzazione: serve il consenso esplicito e informato della persona ritratta per quella specifica somiglianza in quello specifico materiale, e il consenso non si presume mai dal fatto che una fotografia sia pubblica.
Consigli avanzati
Non c’è un prompt: la messa a punto avviene prima della chiamata
Con la maggior parte degli endpoint di immagini riscrivi una frase quando un risultato delude. Qui no: la richiesta sono due URL, quindi le uniche variabili sono le foto che invii. Ragionare sulle iterazioni diventa facile — cambi un’immagine, tieni ferma l’altra e sai esattamente cosa si è mosso —, ma una coppia sbagliata non si salva con un’istruzione migliore.
Scegliere destinazione e riferimento
image_url è la foto da modificare; reference_image_url fornisce il volto. Entrambe devono mostrare un solo volto ben visibile, più o meno frontale, a fuoco e abbastanza grande nell’inquadratura da rendere leggibili i tratti, in JPEG, PNG o WebP. Ritaglia prima una foto di gruppo su una sola persona. La leva più utile che hai è la direzione della luce: scegli un riferimento illuminato più o meno dallo stesso lato della destinazione, perché lo scambio non cambia la luce della destinazione e una discrepanza si vede come una cucitura lungo la mandibola.
Quando il risultato non è quello che volevi
| Cosa vedi | Cosa cambiare per primo |
|---|---|
| Una cucitura lungo mandibola o collo | Usa un riferimento illuminato dalla stessa direzione |
| Tratti morbidi o approssimativi | Usa un riferimento con il volto più grande e più nitido |
| È cambiata la persona sbagliata | Ritaglia la destinazione su una sola persona |
| La richiesta è fallita del tutto | Controlla che entrambi gli URL restituiscano ancora un file immagine |
| Meno levigato di un altro strumento di scambio | È previsto: non c’è ritocco, applica il tuo dopo |
Scegliere l’endpoint giusto
| Cosa ti serve | Endpoint |
|---|---|
| Precisione sui punti del volto e texture originale, senza regolazioni | Questo endpoint |
| Accordo dell’incarnato e scelta del formato di file | Face Swap Plus |
| Lo scambio semplice con seed, capelli sempre intatti | Face Swap |
| L’intera testa, capelli inclusi | Head Swap |
| Un volto lungo tutta una clip in movimento | Video Face Swap |
Usarlo in batch
Visto che nulla si decide caso per caso, un batch è un ciclo sulle coppie. Invia ogni chiamata di creazione con un Idempotency-Key e salva l’id del task accanto al record che l’ha generato; se una connessione cade, ripetere la richiesta con la stessa chiave restituisce il task originale invece di avviarne un secondo con un secondo addebito. Interroga ogni pochi secondi e copia ogni risultato nel tuo archivio: i file generati vengono eliminati dopo 14 giorni, le immagini sorgente caricate dopo uno.
Avvio rapido dell’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-pro-v1/edit",
"input": {
"image_url": "https://example.com/reference.png",
"reference_image_url": "https://example.com/reference.png"
}
}'
# 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"
Nel riferimento dell’API trovi autenticazione, schema completo, polling e gestione degli errori.









