Prompt regionali in ComfyUI: separare più soggetti con Set Area, RegionalPrompt e Cutoff

"Il sorgente principale di ComfyUI definisce parametri e mappatura nell’area latent per ConditioningSetArea, ConditioningSetAreaPercentage e ConditioningCombine."
Prepari un’immagine 1024x768 con una ragazza dai capelli corti e vestita di rosso a sinistra, e un ragazzo con giacca blu a destra. Il risultato mette il rosso sulla giacca destra e il blu nei capelli a sinistra: abiti e colori dei due soggetti si contaminano. Non è un problema di seed né di modello poco potente. Il text encoder CLIP legge l’intera frase come contesto: in “red hair, blue jacket”, red può spostarsi verso jacket e blue verso hair. I node di conditioning regionale limitano il prompt nello spazio latent, ma l’embedding conserva il contesto globale. Le strade utili sono tre: regioni a coordinate native con ConditioningSetArea + Combine, legame degli attributi con Cutoff e sampling regionale basato su maschera con Impact Pack Regional. Ognuna risolve un problema diverso e ha limiti propri.
Perché i prompt di più soggetti si mescolano
CLIP codifica il contesto globale
Il text encoder CLIP di Stable Diffusion non codifica ogni parola in modo indipendente, ma interpreta tutta la frase. In “blue hair, yellow eyes”, blue può influenzare eyes perché i token interagiscono durante la generazione dell’embedding. ConditioningSetArea limita la condizione a una regione latent, ma l’embedding nasce ancora dal contesto globale; il blu può quindi arrivare agli occhi. I prompt regionali riducono la contaminazione spaziale, come il rosso a sinistra che influenza la destra, ma non impediscono la contaminazione degli attributi a livello di token.
Tre tipi di contaminazione
| Tipo | Sintomo tipico | Soluzione |
|---|---|---|
| Contaminazione spaziale | L’abito rosso a sinistra influenza la destra; il blu in primo piano influenza lo sfondo | Conditioning regionale (Set Area / RegionalPrompt) |
| Contaminazione degli attributi | In “blue hair, yellow eyes”, blue influenza gli occhi | Legame degli attributi (Cutoff) |
| Identità incoerente | Lo stesso personaggio cambia volto con un altro seed | FaceID / LoRA (non trattato qui) |
Tabella di scelta: problema → approccio → strumento → uso inadatto
| Problema | Approccio consigliato | Node | Uso inadatto |
|---|---|---|---|
| Separare personaggi a sinistra e destra | Regioni a coordinate native | ConditioningSetArea + ConditioningCombine | Maschere complesse, perché bisogna calcolare le coordinate |
| Contaminazione di colori o abiti | Legame degli attributi | Cutoff BasePrompt + Set Region + Regions To Conditioning | Regioni a coordinate; SDXL va testato perché il README segnala risultati deboli con SDXL 0.9 |
| Regioni di maschera complesse | Sampling regionale basato su maschera | Impact Pack: RegionalPrompt + CombineRegionalPrompts + RegionalSampler | Richiede Impact Pack e può causare node mancanti |
| Maschere semplici a blocchi | Node regionali semplificati | Inspire Pack: Regional Conditioning By Color Mask | Dipende da Impact Pack o IPAdapter Plus |
| Posa errata | Controllo della posa | ControlNet (OpenPose / Canny / Depth) | Non risolve la contaminazione degli attributi |
| Identità incoerente | Fissaggio dell’identità | FaceID / ReActor / LoRA | Non risolve i prompt regionali |
Una combinazione pratica segue questo ordine: prompt regionali per la posizione → OpenPose per la posa → conditioning globale con strength 0.3-0.5 per uniformare l’atmosfera. Le posizioni di OpenPose, ControlNet o IPAdapter devono essere allineate manualmente alle regioni. I node non sanno automaticamente che la persona OpenPose a sinistra appartiene al prompt sinistro.
Percorso nativo: ConditioningSetArea + Combine
Parametri delle coordinate
| Parametro | Significato | Unità | Intervallo | Nota |
|---|---|---|---|---|
| x / y | Coordinata in alto a sinistra | Pixel | 0 - MAX_RESOLUTION | L’origine è in alto a sinistra |
| width / height | Larghezza e altezza della regione | Pixel | 64 - MAX_RESOLUTION, step 8 | La UI usa step 8 perché il codice divide per 8 quando scrive nel latent |
| strength | Peso del conditioning regionale | Decimale | 0 - 10, default 1.0 | I pesi delle regioni sovrapposte vengono normalizzati durante il sampling |
Lo step è 8 perché ConditioningSetArea.append() scrive l’area latent come (height // 8, width // 8, y // 8, x // 8). Un’immagine 512x512 diventa 64x64 nello spazio latent, quindi le coordinate vanno allineate a multipli di 8. ConditioningSetAreaPercentage accetta valori da 0 a 1 se preferisci le percentuali.
Collegamento dal prompt al sampler
Questo esempio divide un canvas 1024x768 tra due soggetti:
Passo 1: regione del prompt sinistro
- Prompt del soggetto sinistro → CLIP Text Encode (output conditioning)
- Conditioning → ConditioningSetArea (x=0, y=0, width=512, height=768, strength=1.0)
- Output del conditioning con dati di regione
Passo 2: regione del prompt destro
- Prompt del soggetto destro → CLIP Text Encode (output conditioning)
- Conditioning → ConditioningSetArea (x=512, y=0, width=512, height=768, strength=1.0)
- Output del conditioning con dati di regione
Passo 3: combinare i conditioning
- Output Set Area sinistro → ConditioningCombine (input 1)
- Output Set Area destro → ConditioningCombine (input 2)
- Output Combine → conditioning positive del KSampler
Passo facoltativo: conditioning globale dello sfondo
- Prompt dello sfondo → CLIP Text Encode
- Conditioning → ConditioningSetArea (x=0, y=0, width=1024, height=768, strength=0.3-0.5)
- Combinare con i conditioning regionali a bassa strength per uniformare l’atmosfera
Punto chiave: strength non è “opacità”, ma il peso della previsione del rumore. Quando le regioni si sovrappongono, i pesi vengono normalizzati prima del sampling, quindi non serve calcolare manualmente il totale.
Regioni sovrapposte e regolazione di strength
Quando le regioni si sovrappongono, strength controlla la miscela dei conditioning. Il sampling normalizza automaticamente i pesi. Parti da strength=1.0 per i soggetti in primo piano e strength=0.3-0.5 per lo sfondo globale. Ridurre lo sfondo limita l’interferenza, ma non la elimina: colori in conflitto nei prompt possono ancora interagire attraverso il contesto globale di CLIP.
Legame degli attributi: Cutoff
Quando usarlo e come funziona
Il caso tipico è blue che influenza eyes in “blue hair, yellow eyes”, perché CLIP codifica l’intera frase. Cutoff cerca di limitare un attributo a una parte specifica del prompt. Nasconde i target token, rigenera l’embedding e usa la direzione risultante per isolare meglio le relazioni tra attributi.
Cutoff non è un prompt regionale basato su coordinate. Gestisce le relazioni tra token, non le posizioni. I node sono Cutoff BasePrompt, Cutoff Set Region, Cutoff Regions To Conditioning e Cutoff Regions To Conditioning (ADV), sotto conditioning > cutoff.
Avvertenza SDXL: il README segnala risultati scarsi con SDXL 0.9. Le versioni attuali di SDXL o FLUX richiedono test; Cutoff non è una soluzione universale stabile.
Installazione e utilizzo
Installazione:
- Cerca
ComfyUI_Cutoffin ComfyUI-Manager - Oppure clona
git clone https://github.com/BlenderNeko/ComfyUI_Cutoffincustom_nodes - Riavvia ComfyUI dopo l’installazione
Flusso di base:
- Inserisci il prompt completo in BasePrompt, per esempio “blue hair, yellow eyes”
- Definisci il legame in Set Region, per esempio “blue” con “hair”
- Genera il conditioning con Regions To Conditioning
- Passa il conditioning in Set Area se devi limitarne anche la posizione
Limiti e precauzioni
Cutoff non è adatto alla divisione per coordinate. Lega gli attributi dei token, ma non posiziona “abito rosso a sinistra e abito blu a destra”. Per risolvere entrambi i problemi, lega prima gli attributi con Cutoff e limita poi la regione con Set Area.
L’effetto con SDXL è incerto. Il README cita risultati deboli con SDXL 0.9 e le versioni attuali richiedono prove. Se usi soprattutto SDXL, verifica Cutoff con un semplice esempio di colori prima di farne affidamento.
Sampling regionale per maschera: Impact Pack Regional
Node RegionalPrompt e RegionalSampler
| Node | Input | Output | Funzione |
|---|---|---|---|
| RegionalPrompt | mask + advanced_sampler + variation_seed/strength/method | REGIONAL_PROMPTS | Lega una maschera a un sampler e crea un prompt regionale |
| CombineRegionalPrompts | Più REGIONAL_PROMPTS | REGIONAL_PROMPTS | Combina più prompt regionali |
| RegionalSampler | base_sampler + REGIONAL_PROMPTS + overlap_factor + restore_latent | latent | Applica il sampling alle regioni a ogni step |
| RegionalSamplerAdvanced | Input di RegionalSampler + controllo degli step | latent | Controlla con step invece di denoise |
Parametri:
overlap_factor: controlla l’intervallo di transizione fuori dalla regionerestore_latent: ripristina il base latent fuori dalla maschera durante il sampling regionale per ridurre rumore aggiuntivo
RegionalSampler applica il sampling regionale a ogni step. TwoSamplersForMask, invece, esegue sampling globale e poi combina tramite maschera. Il primo offre un controllo più preciso sul processo di ogni regione.
Installazione e risoluzione dei problemi
Installazione:
- Cerca
ComfyUI Impact Packin ComfyUI-Manager - Riavvia ComfyUI e aggiorna il browser dopo l’installazione
Problemi comuni:
- Node rosso o mancante → importare workflow e installare node mancanti
- Errore di dipendenze Python → consulta il futuro articolo sulla risoluzione dei problemi e la manutenzione di ComfyUI
Percorso semplificato: Inspire Pack Regional Conditioning (facoltativo)
Se non vuoi calcolare le coordinate Set Area, una maschera a blocchi di colore semplifica il flusso. Inspire Pack include:
| Node | Funzione |
|---|---|
| Regional Prompt Simple (Inspire) | Input semplificato del prompt regionale |
| Regional Prompt By Color Mask (Inspire) | Definisce regioni con una maschera a colori |
| Regional Conditioning Simple (Inspire) | Conditioning regionale semplificato |
| Regional Conditioning By Color Mask (Inspire) | Definisce regioni di conditioning tramite colori |
| Regional IPAdapter Mask / By Color Mask / Encoded Mask | Node regionali legati a IPAdapter |
Alcuni node dipendono da Impact Pack o IPAdapter Plus. Controlla le dipendenze nel README prima dell’uso.
Questo percorso è adatto se hai già una maschera a blocchi, per esempio rossa a sinistra e blu a destra, e vuoi evitare il calcolo manuale dei pixel.
Limiti delle combinazioni e rischi del secondo pass
Combinazione con ControlNet, IPAdapter e LoRA
| Strumento | Cosa controlla | Cosa non risolve |
|---|---|---|
| Prompt regionale (Set Area / Regional) | Posizione e assegnazione del prompt | Coerenza dell’identità; contaminazione degli attributi, non risolta da Set Area |
| ControlNet (OpenPose / Canny / Depth) | Posa e struttura | Contaminazione degli attributi; assegnazione della posizione |
| IPAdapter | Influenza di un’immagine di riferimento su stile o composizione | Isolamento regionale; identità fissa, perché IPAdapter influenza lo stile globale |
| FaceID / LoRA | Coerenza di identità o stile | Prompt regionali; contaminazione degli attributi |
L’ordine pratico è: prompt regionali per la posizione → OpenPose per la posa → conditioning globale debole per un’atmosfera comune. Allinea manualmente OpenPose, ControlNet o IPAdapter alle regioni; non possono legare automaticamente “la persona a sinistra”.
Colori che si mescolano nel secondo pass, upscale o inpaint
Se il secondo pass, l’upscale o il ritocco del volto omettono il conditioning regionale, il modello può cercare di nuovo coerenza globale e mescolare colori di capelli o abiti separati nella prima fase. L’esempio Area Composition avverte che i colori dei capelli possono unirsi se il secondo pass non include un prompt regionale.
Decidi se i pass successivi devono conservare il conditioning regionale o se è preferibile un Inpaint locale. Se il primo pass usa Set Area, valuta di ridefinire le regioni durante l’upscale affinché la coerenza globale non distrugga la separazione.
Passi successivi e letture correlate
I prompt regionali sono solo una parte della composizione con più soggetti. Controllo della posa, coerenza dell’identità, immagini di riferimento e ritocco ad alta risoluzione richiedono altri strumenti.
Pubblicati:
- Importare workflow e installare node mancanti: risolve installazione di custom nodes e node assenti
- Modelli di prompt per Stable Diffusion: basi per i casi in cui un prompt descrive male più soggetti
- Guida ComfyUI ControlNet: controlla posa e struttura insieme al posizionamento regionale
- Guida ComfyUI LoRA: mantiene personaggi o stili e distingue la contaminazione multi-LoRA da quella dei prompt regionali
Altri articoli tratteranno IPAdapter, FaceID e coerenza del volto, addestramento LoRA, ritocco ad alta risoluzione e Inpainting. Combinati con prompt regionali, questi strumenti riducono l’incertezza nelle scene con più soggetti.
Creare regioni sinistra e destra con Set Area
Su un canvas 1024×768 assegna il positive conditioning di ogni soggetto a metà immagine e uniforma l’atmosfera con un conditioning globale a bassa strength.
⏱️ Estimated time: 20 min
- 1
Step 1: Imposta il canvas finale
Imposta il latent o Empty Latent Image su 1024×768 e calcola tutte le coordinate da questa dimensione finale. - 2
Step 2: Scrivi il prompt del soggetto a sinistra
Usa un CLIP Text Encode separato per il soggetto a sinistra. Mantieni colore, abiti e acconciatura solo in questo ramo locale. - 3
Step 3: Imposta la regione sinistra
Collega il conditioning sinistro a ConditioningSetArea e usa x=0, y=0, width=512, height=768 e strength=1.0. - 4
Step 4: Imposta la regione destra
Crea un secondo CLIP Text Encode e ConditioningSetArea per il soggetto destro con x=512, y=0, width=512, height=768 e strength=1.0. - 5
Step 5: Combina i conditioning locali
Unisci i due rami con dati di regione tramite ConditioningCombine e collega l’output al positive di KSampler. - 6
Step 6: Aggiungi un conditioning globale debole
Per uniformare luce o sfondo, aggiungi un conditioning a pieno canvas con strength 0.3-0.5, senza coprire i rami locali. - 7
Step 7: Allinea il controllo della posa
Per posizioni o gesti di due persone, aggiungi OpenPose, Depth o Canny e allinea manualmente la posa alle regioni. - 8
Step 8: Controlla i pass successivi
Prima di upscale, secondo pass o inpaint, decidi se mantenere il conditioning regionale per evitare che colori e attributi si mescolino di nuovo.
FAQ
x, y, width e height sono pixel o percentuali?
Perché le coordinate Set Area dovrebbero essere multipli di 8?
Cutoff è uno strumento per prompt regionali?
Quando usare RegionalPrompt invece di Set Area?
Come regolare strength quando le regioni si sovrappongono?
Perché il prompt non corrisponde alle due persone di OpenPose?
Cosa fare se un node è rosso o manca?
9 min di lettura · Pubblicato il: 28 ago 2026 · Aggiornato il: 28 ago 2026
Guida pratica a ComfyUI e Stable Diffusion
Se arrivi dalla ricerca, il modo più veloce per orientarti è passare all’articolo precedente o successivo della stessa serie.
Precedente
Addestrare un LoRA con ComfyUI: dati, tag e validazione
Prepara dataset e caption, regola dim, alpha, learning rate, step e opzioni VRAM, riconosci overfitting e underfitting e valida il LoRA in ComfyUI.
Parte 10 di 16
Successivo
Ingrandire e riparare immagini in ComfyUI: Hires Fix, FaceDetailer e inpainting
Confronta upscaling dei pixel, ricampionamento latente, FaceDetailer, inpainting e tile, poi correggi volti alterati, giunzioni visibili e modifiche fuori maschera.
Parte 12 di 16



Commenti
Accedi con GitHub per lasciare un commento