Cambia tema

Coerenza dei volti in ComfyUI: InstantID, FaceID o ReActor?

Easton editorial illustration: one gender-neutral faceted 3D avatar face token inside a dark rounded ComfyUI-style node canvas

"Il README di ComfyUI_InstantID di cubiq documenta il supporto SDXL, antelopev2, le cartelle dei modelli, CFG e il controllo tramite punti chiave."

Hai una foto frontale autorizzata di una modella e vuoi generare più immagini della stessa persona in ambienti diversi. Oppure hai già un poster finito e vuoi soltanto sostituire il volto con quello di un personaggio virtuale originale. Sono esigenze differenti: la prima inserisce l’identità durante la generazione, la seconda sostituisce il volto in post-produzione.

Le tre soluzioni più comuni in ComfyUI sono InstantID, IPAdapter FaceID e ReActor. I nomi sono simili, ma i ruoli sono diversi. Il nodo InstantID per ComfyUI è destinato a SDXL e ha più dipendenze; FaceID copre SD1.5 e SDXL, ma richiede il corretto abbinamento tra modello e LoRA; ReActor sostituisce il volto dopo la generazione e non partecipa alla diffusione.

Per scegliere, stabilisci prima se l’esigenza riguarda la generazione o la post-produzione. Poi controlla dipendenze, regolazioni, errori frequenti e limiti d’uso del materiale.

1. Confronto: identità durante la generazione o sostituzione successiva

Parti da una domanda: vuoi generare da zero più immagini della stessa persona oppure hai già un’immagine finale e vuoi cambiare solo il volto? La risposta determina il percorso.

PercorsoFunzioneScenario adattoInputLimite del modelloComplessità delle dipendenze
InstantIDMantenere l’identità durante la generazioneGenerare da zero più immagini dello stesso voltoUn’immagine facciale di riferimentoComfyUI_InstantID è attualmente destinato a SDXLAlta (InsightFace + onnxruntime + antelopev2 + ControlNet + modello principale InstantID)
IPAdapter FaceIDMantenere l’identità durante la generazioneGenerare da zero più immagini dello stesso voltoUna o più immagini facciali di riferimentoSD1.5 + SDXLMedia (InsightFace + modello FaceID + LoRA corrispondente)
ReActorSostituzione facciale successivaSostituire soltanto il volto di un’immagine esistenteImmagine originale + volto di destinazioneNon dipende dal modello base di generazioneVaria con la versione (il nuovo core alpha 0.7 non impone più InsightFace, ma modelli e licenze vanno verificati)

Come scegliere

  • Per generare da zero più immagini della stessa persona → InstantID o FaceID
  • Se hai già un’immagine finale e vuoi cambiare soltanto il volto → ReActor
  • Se possiedi una sola immagine facciale di riferimento → tutte e tre le soluzioni possono usarla, ma InstantID e FaceID sono più adatti al controllo durante la generazione
  • Se vuoi sostituire il volto mantenendo posa e composizione dell’immagine finale → ReActor è più diretto

Avvertenza preliminare sulle licenze

InstantID e FaceID dipendono in genere da InsightFace per estrarre le caratteristiche facciali. Il codice di InsightFace usa la licenza MIT, ma i dati di addestramento e i modelli addestrati su quei dati sono destinati per impostazione predefinita alla ricerca non commerciale. Anche la scheda del modello FaceID limita i relativi modelli alla ricerca. ReActor si definisce SFW-friendly, include un nudity detector e richiede un uso responsabile nel README.

Prima di pubblicare o commercializzare un risultato, verifica separatamente il consenso all’uso dell’immagine, la licenza dei pesi e le regole della piattaforma. Questo articolo tratta soltanto materiale proprio o autorizzato, personaggi originali e test interni.

2. InstantID: identità durante la generazione con SDXL

2.1 Installazione e percorsi dei modelli

InstantID ha più dipendenze di FaceID e ReActor. Dopo aver installato il nodo, i percorsi dei modelli sono la causa più frequente di errori.

Procedura di installazione:

# 1. Clonare il nodo
cd ComfyUI/custom_nodes
git clone https://github.com/cubiq/ComfyUI_InstantID.git

# 2. Installare le dipendenze
pip install insightface onnxruntime onnxruntime-gpu

Il pacchetto Python predefinito di InsightFace 1.0 non compila più l’estensione opzionale face3d in C++/Cython, riducendo i requisiti di compilazione locale. Se un vecchio ambiente o tutorial produce ancora errori di compilazione, controlla prima la versione effettiva e usa un ambiente virtuale separato; non presumere che la versione corrente richieda Visual Studio C++ Build Tools.

ModelloPercorso di destinazioneFonte
antelopev2ComfyUI/models/insightface/models/antelopev2Modello InsightFace
Modello principale InstantIDComfyUI/models/instantidInstantX su Hugging Face
ControlNet di InstantIDComfyUI/models/controlnetInstantX su Hugging Face

Il README attuale di ComfyUI_InstantID dichiara che il nodo è utilizzabile soltanto con SDXL. Se il workflow è basato su SD1.5, devi passare a FaceID.

Il repository ComfyUI_InstantID è in modalità maintenance only dal 14 aprile 2025. Correzioni importanti possono ancora essere accettate, ma il manutentore non promette uno sviluppo continuo. Controlla il README corrente prima dell’installazione.

2.2 Workflow e regolazioni

Workflow di base:

  1. Carica un checkpoint SDXL
  2. Collega il nodo Apply InstantID e inserisci un’immagine facciale frontale
  3. Integra il modello InstantID e la condizione ControlNet nella catena di campionamento
  4. Genera l’immagine

La qualità del riferimento influisce direttamente sulla somiglianza finale. Un’immagine frontale, nitida, senza occlusioni e con illuminazione uniforme tende a essere più stabile. Un volto di profilo, piccolo, sfocato o molto coperto può non essere rilevato o produrre poca somiglianza.

SintomoRegolazione
Somiglianza insufficienteAumenta gradualmente il peso del modello InstantID o di ControlNet
Saturazione eccessiva o scarso controllo del testoRiduci prima il peso del modello InstantID e confronta con l’immagine di riferimento
CFG troppo altoSegui il README del nodo e riducilo a circa 4-5, oppure usa RescaleCFG

Il percorso principale dell’implementazione originale di InstantID non supporta riferimenti di più persone e usa soltanto i punti chiave del volto più grande. ComfyUI_InstantID offre anche un workflow Multi-ID più complesso e lento, ma non va considerato una soluzione semplice e stabile per più persone.

Funzioni avanzate del nodo:

  • Advanced InstantID: consente di regolare separatamente i pesi del modello InstantID e di ControlNet
  • Noise injection: aiuta a ridurre le immagini troppo bruciate e a perfezionare la somiglianza
  • Input image_kps: usa i punti chiave di un’altra immagine per cambiare la posa e ridurre l’influenza della posa di riferimento

Per controllare la posa con maggiore precisione, puoi combinarlo con ControlNet OpenPose.

3. IPAdapter FaceID: identità durante la generazione in SD1.5 e SDXL

FaceID è la variante per i volti della famiglia IPAdapter. Usa un embedding di riconoscimento facciale invece di un normale embedding di immagine CLIP e può rafforzare la coerenza dell’identità tramite una LoRA.

3.1 Installazione e abbinamento dei modelli

Installa prima la dipendenza nell’ambiente Python di ComfyUI:

pip install insightface

Inserisci i modelli FaceID in ComfyUI/models/ipadapter e le LoRA corrispondenti in ComfyUI/models/loras. Unified Loader FaceID usa i nomi ufficiali dei file per l’abbinamento automatico; un nome errato impedisce il caricamento.

Modello FaceIDLoRA corrispondentePercorso
ip-adapter-faceid_sd15.binip-adapter-faceid_sd15_lora.safetensorsmodels/ipadapter + models/loras
ip-adapter-faceid-plusv2_sd15.binip-adapter-faceid-plusv2_sd15_lora.safetensorsCome sopra
ip-adapter-faceid_sdxl.binip-adapter-faceid_sdxl_lora.safetensorsCome sopra
ip-adapter-faceid-plusv2_sdxl.binip-adapter-faceid-plusv2_sdxl_lora.safetensorsCome sopra

L’elenco e i nomi specifici dei modelli possono cambiare con gli aggiornamenti del nodo. Prima di installare, consulta il README di ComfyUI_IPAdapter_plus e assicurati che modello e LoRA corrispondano al modello base e alla versione. Una LoRA mancante o errata riduce sensibilmente la coerenza dell’identità.

Differenze tra le versioni:

  • PlusV2: combina l’embedding dell’identità facciale con un embedding di immagine CLIP regolabile e permette di modificare il peso della struttura del volto
  • Portrait: è destinato ai ritratti, non richiede LoRA o ControlNet e accetta più immagini facciali per aumentare la somiglianza
  • FaceID per SDXL e PlusV2-SDXL: la scheda del modello li definisce experimental, quindi non vanno trattati come soluzioni assolutamente stabili

Anche il repository ComfyUI_IPAdapter_plus è in modalità maintenance only dal 14 aprile 2025.

3.2 Workflow e regolazioni

Il peso di FaceID non deve necessariamente partire da 1.0. Un peso d’identità troppo alto può rendere il risultato più simile al riferimento, ma anche indebolire il controllo del prompt testuale.

Direzioni di regolazione:

  • Parti da circa 0.8 e aumenta gradualmente se la somiglianza non è sufficiente
  • Se serve maggiore fedeltà al prompt, cambia il weight type in IPAdapter Advanced o riduci il peso
  • PlusV2 consente anche di regolare separatamente il peso relativo alla struttura del volto

FaceID e InstantID forniscono entrambi una condizione d’identità durante la generazione. FaceID copre SD1.5 e SDXL, mentre l’attuale nodo ComfyUI_InstantID è destinato a SDXL. L’uso di VRAM varia con modello di base, risoluzione, GPU e versione del nodo, quindi non è opportuno riassumerlo con un unico valore.

4. ReActor: face swap SFW in post-produzione

ReActor ha un ruolo diverso dalle prime due soluzioni: non partecipa alla diffusione, ma sostituisce il volto in un’immagine esistente o già generata.

4.1 Installazione e cambiamenti nelle dipendenze

Il nuovo core alpha di ReActor 0.7.0 dichiara di non richiedere più InsightFace né C++ Build Tools. Tuttavia, la tabella dei modelli e la sezione sulle licenze del README attuale includono ancora buffalo_l, inswapper_128.onnx e altri modelli. Installazione e autorizzazioni devono essere verificate in base alla versione corrente.

ModelloPercorso nel README attuale
buffalo_lComfyUI/models/insightface/models/buffalo_l
inswapper_128ComfyUI/models/insightface
reswapperComfyUI/models/reswapper
hyperswapComfyUI/models/hyperswap
Modello Face RestoreComfyUI/models/facerestore_models

I vecchi tutorial spesso presentano InsightFace e C++ Build Tools come requisiti fissi. Se le istruzioni sono in conflitto, controlla prima la versione di ReActor e segui il relativo README, senza mescolare le dipendenze indicate dai tutorial precedenti.

ReActor include un nudity detector. Il README richiede il consenso delle persone quando si usano volti reali e una comunicazione chiara della natura sintetica del contenuto pubblicato. Le licenze commerciali di buffalo_l, inswapper_128 e altri modelli devono essere confermate separatamente.

4.2 Workflow

Procedura di base per sostituire un volto:

  1. Collega l’immagine da elaborare a input_image e il volto autorizzato a source_image
  2. Parti da un’intensità prudente in ReActorSetWeight
  3. Facoltativo: controlla la somiglianza dopo la sostituzione con Face Similarity
  4. Facoltativo: ripara bordi e dettagli con Face Restoration
  5. Facoltativo: salva il face model per caricare in seguito l’embedding dello stesso volto
FunzioneDescrizione
ReActorSetWeightRegola l’intensità tra 0% e 100% secondo gli incrementi del nodo; un valore eccessivo può produrre un aspetto plastico o bordi innaturali
Face SimilarityControlla la somiglianza del risultato
Face RestorationRipara bordi e dettagli; un’intensità troppo alta può creare un aspetto plastico
Face ModelSalva o carica l’embedding facciale per riutilizzare lo stesso volto

ReActor non rigenera composizione, abiti o posa dell’immagine. Se vuoi conservare tutto il contenuto di un’immagine finita e modificare soltanto l’area del volto, è più diretto di InstantID o FaceID.

5. Qualità del riferimento ed errori frequenti

5.1 Lista di controllo del riferimento

La qualità del riferimento è spesso più importante che continuare ad aumentare i pesi. Un’immagine frontale, nitida, senza occlusioni e con luce uniforme tende a produrre risultati più stabili. Un volto di profilo, sfocato, piccolo o molto coperto non può essere corretto del tutto aumentando il peso.

Ordine di priorità:

  1. Frontale > di profilo o inclinato
  2. Nitido > sfocato
  3. Senza occlusioni > occhiali, maschera o frangia sul volto
  4. Illuminazione uniforme > ombre forti o controluce

Questo criterio vale per le immagini facciali di riferimento di InstantID, FaceID e ReActor. Se il rilevamento fallisce, ritaglia prima il volto o cambia riferimento; non portare tutti i pesi al massimo.

5.2 Tabella di risoluzione dei problemi

ProblemaPossibile causaCosa controllare
Modello non trovato (antelopev2 / buffalo_l / modello principale InstantID)Percorso errato o modello non scaricatoControlla models/insightface/models, models/instantid e le altre cartelle nel README corrente del nodo
Rilevamento fallito (no face detected)Volto di profilo, piccolo, sfocato o copertoUsa un riferimento frontale, nitido e senza occlusioni; ritaglia il volto se necessario
Il volto è simile, ma posa o espressione cambianoLa condizione facciale trasmette anche parte delle caratteristiche strutturaliControlla la posa con ControlNet o usa ReActor su un’immagine già finita
Somiglianza bassaManca la LoRA di FaceID, il peso non è adatto o il riferimento è scadenteControlla l’abbinamento di modello e LoRA, crea una base intorno a 0.8 e modifica una voce alla volta
Bordi innaturali o aspetto plasticoIntensità eccessiva in ReActor o Face RestorationRiduci sostituzione e restauro; controlla dimensione, angolo e illuminazione del volto di destinazione
Errore nell’installazione delle dipendenzeVecchi tutorial, nodi precedenti e ambiente Python attuale sono stati mescolatiVerifica prima le versioni del nodo e di InsightFace, poi segui il README corrente in un ambiente separato

Ordine della diagnosi:

  • Se il rilevamento fallisce → controlla prima la qualità del riferimento
  • Se la somiglianza è bassa → controlla prima modelli, abbinamento della LoRA e percorsi
  • Se la posa cambia → distingui tra identità durante la generazione e sostituzione successiva, poi aggiungi ControlNet o cambia percorso

6. Limiti delle combinazioni con ControlNet, Kontext e LoRA

Fissare il volto non fissa posa, corpo, abiti e composizione. Quando InstantID e FaceID inseriscono una condizione d’identità, anche posa, espressione o acconciatura del riferimento possono influire sul risultato.

Combinazioni consigliate:

  • InstantID o FaceID + ControlNet OpenPose → la condizione facciale gestisce l’identità e ControlNet gestisce corpo e posa
  • FaceID + IPAdapter standard → FaceID fissa il volto e l’altro IPAdapter controlla stile o composizione; parti da valori prudenti su entrambi i percorsi
  • ReActor + restauro ad alta risoluzione → genera prima l’immagine, poi sostituisci il volto e usa face restore o inpaint locale solo se necessario
  • Kontext → è adatto a cambiare sfondo, abiti o scena nella stessa immagine, ma non è una soluzione specializzata per bloccare l’identità facciale
  • LoRA → è adatta a riutilizzare a lungo un personaggio originale o una persona virtuale di un marchio, ma richiede un dataset e un processo di addestramento

Se la posa deve essere precisa, fornisci un’immagine della posa a ControlNet OpenPose: InstantID o FaceID gestisce il volto e ControlNet gestisce corpo e posa. Se vuoi soltanto mantenere la composizione di un’immagine finita e cambiare il volto, ReActor è più diretto.

Articoli correlati:

7. Limiti legali e di licenza

La licenza e la provenienza del materiale sono limiti essenziali. Il fatto che una tecnica funzioni non significa che materiale, modelli e pubblicazione siano autorizzati.

Distingui la licenza del codice da quella dei modelli InsightFace

Il codice di InsightFace usa la licenza MIT e consente usi accademici e commerciali. I dati di addestramento e i modelli preaddestrati su quei dati sono però destinati, per impostazione predefinita, alla ricerca non commerciale. Il README attuale di InsightFace fornisce anche contatti di licenza distinti per la famiglia inswapper e per i modelli open source di riconoscimento facciale.

La scheda del modello FaceID specifica inoltre che IP-Adapter-FaceID è destinato soltanto alla ricerca perché dipende dai modelli preaddestrati di InsightFace. Non confondere la licenza del codice del nodo con l’autorizzazione commerciale dei pesi.

Responsabilità e comunicazione con ReActor

La versione corrente di ReActor si definisce SFW-friendly e include un nudity detector. Il README richiede di rispettare le leggi locali, ottenere il consenso quando si usano volti reali e comunicare chiaramente che il contenuto pubblicato è stato modificato tramite face swap o IA.

Restrizioni sulla provenienza del materiale

Questo articolo tratta soltanto i seguenti casi:

  • Foto di modelli con autorizzazione all’uso dell’immagine
  • Materiale personale realizzato e trattato legittimamente
  • Personaggi virtuali originali che non rappresentano persone reali
  • Test interni conformi e non destinati alla pubblicazione

Prima dell’uso commerciale o della pubblicazione, verifica separatamente il consenso all’uso dell’immagine, l’ambito della licenza dei modelli e le regole della piattaforma. Se non puoi confermare anche uno solo di questi punti, non pubblicare né commercializzare il risultato.

Riepilogo e passo successivo

La scelta principale è semplice:

  • Identità durante la generazione → InstantID (l’attuale nodo ComfyUI è destinato a SDXL) o FaceID (SD1.5 + SDXL)
  • Sostituzione facciale successiva → ReActor
  • Qualità del riferimento, percorsi e abbinamento delle versioni hanno la precedenza sull’aumento indiscriminato dei pesi
  • La licenza del codice non garantisce l’uso commerciale di un modello preaddestrato; i volti reali richiedono anche il consenso

InstantID è adatto ai workflow SDXL e ha più dipendenze, ma consente di controllare separatamente identità del volto e punti chiave. FaceID supporta più modelli base, anche se modello e LoRA devono corrispondere. ReActor non partecipa alla diffusione ed è adatto a trattare il volto in un’immagine esistente.

Puoi continuare con:

Scegliere e regolare un workflow di coerenza dei volti in ComfyUI

Scegli il percorso in base alla fase, controlla riferimento, cartelle e versioni, quindi modifica un solo peso alla volta.

  1. 1

    Step 1: Individua la fase in cui avviene il lavoro

    Scegli InstantID o IPAdapter FaceID per generare nuove immagini da un volto; scegli ReActor se l’immagine esiste già e devi soltanto sostituire il volto.
  2. 2

    Step 2: Prepara un riferimento valido e autorizzato

    Preferisci un’immagine frontale, nitida, senza occlusioni, con luce uniforme e un volto abbastanza grande, e verifica i diritti sul ritratto e sul materiale.
  3. 3

    Step 3: Installa modelli e dipendenze del percorso

    Per InstantID controlla antelopev2, modello principale e ControlNet; per FaceID, insightface, modello FaceID e relativa LoRA; per ReActor, segui il README della versione corrente.
  4. 4

    Step 4: Crea un risultato di riferimento

    Genera prima un’immagine con valori predefiniti o prudenti. Non cambiare contemporaneamente posa, espressione, acconciatura, modello di base e più pesi d’identità.
  5. 5

    Step 5: Regola in base al sintomo

    Se la somiglianza è bassa, aumenta gradualmente il peso d’identità o controlla gli abbinamenti; se il prompt perde forza, riduci il peso dell’Adapter; se il volto sembra di plastica, abbassa sostituzione e restauro.
  6. 6

    Step 6: Aggiungi il controllo della posa o del personaggio

    Combina ControlNet quando serve una posa precisa; per riutilizzare a lungo un personaggio originale, valuta l’addestramento di una LoRA invece di affidare ogni controllo al riferimento facciale.

FAQ

Per mantenere la stessa persona in ComfyUI è meglio InstantID o ReActor?
Per generare nuove immagini da un volto, usa prima InstantID o IPAdapter FaceID; se l’immagine è già pronta e vuoi solo sostituire il volto, usa ReActor.
Perché IPAdapter FaceID richiede anche una LoRA?
FaceID fornisce la condizione d’identità tramite un embedding di riconoscimento facciale e la maggior parte dei modelli FaceID richiede la LoRA corrispondente per rafforzare la coerenza. Modello e LoRA devono combaciare con modello di base e versione.
InstantID in ComfyUI supporta soltanto SDXL?
Il README attuale di cubiq/ComfyUI_InstantID indica che il nodo è destinato esclusivamente a SDXL e richiede antelopev2, il modello principale InstantID e un modello ControlNet. Per altre implementazioni o versioni future, consulta le relative istruzioni.
ReActor 0.7 richiede ancora InsightFace e C++ Build Tools?
Il nuovo core alpha di ReActor 0.7 dichiara di non richiedere più InsightFace né C++ Build Tools, anche se l’elenco attuale dei modelli e le note di licenza citano ancora buffalo_l, inswapper_128 e altri modelli. Verifica il README corrente per installazione e uso commerciale.
Il face swap in ComfyUI si può usare a fini commerciali?
Non basta controllare la licenza del codice del nodo. Devi verificare anche il consenso all’uso dell’immagine, il contesto, le regole della piattaforma e le licenze di modelli preaddestrati come InsightFace, inswapper e FaceID. In caso di dubbio, non usarlo per una pubblicazione commerciale.
Perché il volto sembra di plastica dopo la sostituzione?
Le cause comuni sono un’intensità eccessiva di sostituzione o restauro, un volto di destinazione troppo piccolo oppure angoli e illuminazione poco compatibili. Riduci prima il restauro e prova un riferimento autorizzato più nitido e con un’angolazione simile.

13 min di lettura · Pubblicato il: 21 ago 2026 · Aggiornato il: 21 ago 2026

Commenti

Accedi con GitHub per lasciare un commento

Easton BlogEaston Blog