Cambia tema

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

Easton editorial illustration: one large rounded ComfyUI-style node canvas with a coordinate grid, two simplified 2.5D character silhouettes isolated in red-left and blue-right regions

"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

TipoSintomo tipicoSoluzione
Contaminazione spazialeL’abito rosso a sinistra influenza la destra; il blu in primo piano influenza lo sfondoConditioning regionale (Set Area / RegionalPrompt)
Contaminazione degli attributiIn “blue hair, yellow eyes”, blue influenza gli occhiLegame degli attributi (Cutoff)
Identità incoerenteLo stesso personaggio cambia volto con un altro seedFaceID / LoRA (non trattato qui)

Tabella di scelta: problema → approccio → strumento → uso inadatto

ProblemaApproccio consigliatoNodeUso inadatto
Separare personaggi a sinistra e destraRegioni a coordinate nativeConditioningSetArea + ConditioningCombineMaschere complesse, perché bisogna calcolare le coordinate
Contaminazione di colori o abitiLegame degli attributiCutoff BasePrompt + Set Region + Regions To ConditioningRegioni a coordinate; SDXL va testato perché il README segnala risultati deboli con SDXL 0.9
Regioni di maschera complesseSampling regionale basato su mascheraImpact Pack: RegionalPrompt + CombineRegionalPrompts + RegionalSamplerRichiede Impact Pack e può causare node mancanti
Maschere semplici a blocchiNode regionali semplificatiInspire Pack: Regional Conditioning By Color MaskDipende da Impact Pack o IPAdapter Plus
Posa errataControllo della posaControlNet (OpenPose / Canny / Depth)Non risolve la contaminazione degli attributi
Identità incoerenteFissaggio dell’identitàFaceID / ReActor / LoRANon 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

ParametroSignificatoUnitàIntervalloNota
x / yCoordinata in alto a sinistraPixel0 - MAX_RESOLUTIONL’origine è in alto a sinistra
width / heightLarghezza e altezza della regionePixel64 - MAX_RESOLUTION, step 8La UI usa step 8 perché il codice divide per 8 quando scrive nel latent
strengthPeso del conditioning regionaleDecimale0 - 10, default 1.0I 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_Cutoff in ComfyUI-Manager
  • Oppure clona git clone https://github.com/BlenderNeko/ComfyUI_Cutoff in custom_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

NodeInputOutputFunzione
RegionalPromptmask + advanced_sampler + variation_seed/strength/methodREGIONAL_PROMPTSLega una maschera a un sampler e crea un prompt regionale
CombineRegionalPromptsPiù REGIONAL_PROMPTSREGIONAL_PROMPTSCombina più prompt regionali
RegionalSamplerbase_sampler + REGIONAL_PROMPTS + overlap_factor + restore_latentlatentApplica il sampling alle regioni a ogni step
RegionalSamplerAdvancedInput di RegionalSampler + controllo degli steplatentControlla con step invece di denoise

Parametri:

  • overlap_factor: controlla l’intervallo di transizione fuori dalla regione
  • restore_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 Pack in ComfyUI-Manager
  • Riavvia ComfyUI e aggiorna il browser dopo l’installazione

Problemi comuni:

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:

NodeFunzione
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 MaskNode 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

StrumentoCosa controllaCosa non risolve
Prompt regionale (Set Area / Regional)Posizione e assegnazione del promptCoerenza dell’identità; contaminazione degli attributi, non risolta da Set Area
ControlNet (OpenPose / Canny / Depth)Posa e strutturaContaminazione degli attributi; assegnazione della posizione
IPAdapterInfluenza di un’immagine di riferimento su stile o composizioneIsolamento regionale; identità fissa, perché IPAdapter influenza lo stile globale
FaceID / LoRACoerenza di identità o stilePrompt 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:

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. 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. 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. 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. 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. 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. 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. 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. 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?
Il node nativo ConditioningSetArea usa coordinate in pixel del canvas finale. ConditioningSetAreaPercentage usa valori da 0 a 1.
Perché le coordinate Set Area dovrebbero essere multipli di 8?
ComfyUI scrive height, width, y e x nell’area latent dopo aver diviso ogni valore per 8. I multipli di 8 allineano i confini alla griglia latent.
Cutoff è uno strumento per prompt regionali?
No. Cutoff isola soprattutto le relazioni tra attributi dei token, come colori e abiti, non le coordinate spaziali. Usa Set Area o RegionalPrompt per regioni sinistra-destra.
Quando usare RegionalPrompt invece di Set Area?
Usa Set Area per divisioni rettangolari semplici. RegionalPrompt e RegionalSampler di Impact Pack sono adatti a forme complesse, maschere esistenti o sampling regionale a ogni step.
Come regolare strength quando le regioni si sovrappongono?
Parti da 1.0 per i soggetti locali e 0.3-0.5 per lo sfondo globale. Riduci il ramo secondario con più sovrapposizione e confronta con un seed fisso.
Perché il prompt non corrisponde alle due persone di OpenPose?
OpenPose controlla la posa e i prompt regionali l’assegnazione spaziale. Devi allinearli manualmente; i node non sanno quale scheletro appartiene a ogni regione.
Cosa fare se un node è rosso o manca?
Installa o aggiorna Impact Pack, Inspire Pack o Cutoff con ComfyUI-Manager, riavvia e aggiorna il browser. Poi controlla la versione del workflow e le dipendenze Python.

9 min di lettura · Pubblicato il: 28 ago 2026 · Aggiornato il: 28 ago 2026

Commenti

Accedi con GitHub per lasciare un commento

Easton BlogEaston Blog