Regional Prompter (the sd-webui-regional-prompter extension) splits your canvas into zones so each character gets its own prompt. Trait bleed happens because one global prompt describes everyone at once. You divide the image into Columns, Rows, or a Matrix, assign ratios, then write per-region prompts after a shared base, using the BREAK keyword to separate zones.
Why one prompt bleeds traits across two characters
Stable Diffusion does not understand that “a blonde woman and a redhead” should be two separate people. The text encoder turns your whole prompt into a single conditioning tensor that the model applies to the entire latent space. So “blonde” and “redhead” both compete for every pixel. You get two blondes, two redheads, or a muddy blend where hair color, body type, and clothing swap between subjects on every seed.
This is the core multi-character problem. The model has no built-in concept of “this attribute belongs to the person on the left.” Captioning conventions from Danbooru-style training (2girls, 1boy 1girl) help a little, but they do not pin attributes to positions. Once you want one tall dark-haired character and one petite blonde in a deliberate pose, you need spatial control. That is exactly what Regional Prompter provides: it scopes parts of your prompt to defined rectangles of the canvas.
The reason this matters more in NSFW work than in safe-for-work portraits is that intimate two-subject scenes put bodies close together, often overlapping. Overlap is precisely where the attention mechanism gets confused. The closer two figures sit, the more their tokens fight over the shared pixels in between. Regional Prompter does not eliminate that tension entirely, but it gives the sampler a strong prior about which description owns which side of the frame, which is usually enough to keep two distinct people from collapsing into one.
If you just want to experiment with prompts before installing anything locally, our free NSFW AI image generator lets you test single-subject prompts in the browser. For true two-character control, though, you will want the local extension described below.

Installing and enabling Regional Prompter
In A1111 or Forge, go to Extensions, Install from URL, and paste the repo for sd-webui-regional-prompter. Restart the UI fully (not just reload). You will find a new Regional Prompter accordion below your generation settings. Forge ships with a compatible build of the extension; if the accordion does not appear after a restart, check the console for a version-mismatch warning and update the extension from the Installed tab.
The key controls are:
Active: checkbox (must be ON)
Generation mode: Attention | Latent
Split mode: Columns | Rows | Matrix
Divide Ratio: e.g. 1,1 (two equal vertical halves)
Base Ratio: e.g. 0.2 (how much the base prompt influences each region)
Use common prompt: ON (treats the text before BREAK as shared)
Attention mode is the default and works for most two-character scenes. It nudges cross-attention toward each region and blends softly at boundaries, so it is forgiving. Latent mode (Latent Couple style) splits the actual latent and composites regions, giving harder separation but more visible seams and a higher chance of anatomy errors at the join. Start with Attention. You can always escalate to Latent for a stubborn scene where two characters keep merging despite a low Base Ratio.
One setting people miss: when “Use common prompt” is off, the text before your first BREAK is treated as region one rather than as a shared base. That single toggle changes how every block is interpreted, so confirm it is on before you start counting BREAK blocks.
Split modes: Columns, Rows, and Matrix
Columns divide the canvas vertically, left to right. This is what you want for two characters standing side by side. Divide Ratio: 1,1 gives two equal columns; 1,2 makes the right region twice as wide.
Rows divide horizontally, top to bottom. Useful for stacked compositions, a foreground and background split, or a face-up framing where head and lower body need different prompts. Rows are also handy when one subject is lying down and another is positioned above, since the natural divide between them is horizontal rather than vertical.
Matrix combines both into a grid. The syntax uses semicolons for rows and commas for columns. For a couple where one figure is on the left and the layout has a header band you might write 1,1 for a simple two-up, or build a true grid like 1,2,1;1,1 for more complex staging. Matrix is powerful but fiddly; only reach for it once Columns stops being enough.
The ratios are relative, not pixels. 1,1 and 2,2 produce the same split. What matters is the proportion between the numbers. A common mistake is treating the numbers as percentages or pixel widths; they are simply weights. If you want a 60/40 split, 3,2 is exact and easier to read than 0.6,0.4.
Choose the split mode that matches the natural geometry of your composition. If your two subjects share a horizontal eyeline and stand shoulder to shoulder, Columns is correct. If one is clearly above the other, Rows. Forcing the wrong mode is the most common reason a region prompt seems to “do nothing”: the zone simply does not cover the body it was meant for.
BREAK keyword and the base prompt
Regional Prompter reads your prompt as a base block followed by region blocks separated by the uppercase keyword BREAK. With “Use common prompt” enabled, everything before the first BREAK applies everywhere. Then each BREAK starts the prompt for the next region, in the same order as your split (left region first for Columns, top region first for Rows).
Here is a clean two-girl Columns setup:
Divide Ratio: 1,1
Base Ratio: 0.2
Split mode: Columns
Use common prompt: ON
Prompt:
masterpiece, best quality, 2girls, standing, bedroom, soft lighting,
BREAK
tall woman, long black hair, athletic body, red lingerie,
BREAK
petite woman, short blonde bob, freckles, white lingerie
Negative:
lowres, bad anatomy, bad hands, extra fingers, fused bodies, deformed
The base block carries the shared scene (count, setting, lighting, quality tags). The first region after BREAK paints the left character, the second region paints the right. Base Ratio around 0.2 keeps a light global influence so the two figures share lighting and style without smearing their individual traits.
Keep the global subject count tag (2girls) in the base block. Dropping it tends to make each region try to render a full solo subject, which can produce four limbs per side or duplicated faces near the boundary. Put scene-wide elements (location, time of day, camera framing, overall style) in the base, and keep only per-person attributes (build, hair, skin, clothing, expression) in the region blocks. The cleaner that separation, the cleaner the result. Resist the urge to repeat the setting inside each region; that just reintroduces global competition.
A working two-character settings reference
The table below is a sane starting point for common NSFW two-subject layouts. Tune Base Ratio up if the characters look disconnected, down if traits start bleeding.
| Scene | Split mode | Divide Ratio | Base Ratio | Notes |
|---|---|---|---|---|
| Two women side by side | Columns | 1,1 | 0.2 | Most reliable starting layout |
| Couple, one larger in frame | Columns | 2,1 | 0.2 | Wider region gets the foreground figure |
| Foreground subject over background figure | Rows | 1,1 | 0.25 | Top region face, bottom region body or second person |
| Three subjects in a row | Columns | 1,1,1 | 0.15 | Lower base ratio to prevent merge |
| Pose-locked couple | Columns | 1,1 | 0.2 | Pair with ControlNet OpenPose, see below |
For SDXL and Pony or Illustrious checkpoints, Attention mode behaves the same, but boundaries are slightly softer at high resolution. That softness is usually a benefit for intimate scenes because the transition between two bodies reads more naturally. If you are choosing a checkpoint, see our roundups for Illustrious NSFW checkpoints and Pony Diffusion. Tag-trained models in particular reward concise, comma-separated region prompts over long natural-language sentences.

Combining Regional Prompter with ControlNet OpenPose
Regional Prompter controls what goes in each zone. It does not control the actual pose. If you want two characters in a specific embrace, contact pose, or asymmetric stance, layer ControlNet OpenPose on top. The skeleton fixes body placement while Regional Prompter assigns identity to each region.
The workflow is:
- Build or load a two-person OpenPose skeleton so both figures sit where your column split expects them (left skeleton inside the left region, right skeleton inside the right region).
- Enable ControlNet with the OpenPose model, control weight around 0.8 to 1.0.
- Enable Regional Prompter with matching Columns ratios so each region aligns with one skeleton.
- Write base plus two BREAK regions as above.
Alignment is everything. If the left skeleton drifts into the right region, that character’s traits will fight the wrong prompt block. Roughly match the skeleton’s horizontal center to its region. When the pose has the two figures crossing the center line (an embrace, for example), accept that the boundary zone will blend; that is physically correct and usually looks fine. For the full pose pipeline, read our OpenPose NSFW pose control guide, and for the broader ControlNet picture see the ControlNet NSFW guide.
ComfyUI users do not have this exact extension. The closest equivalents are Attention Couple nodes and the Conditioning (Set Area) and Conditioning (Combine) nodes, which let you mask conditioning to rectangles, the same concept implemented as graph nodes. The mental model is identical: shared base conditioning plus per-region conditioning combined spatially. The advantage in ComfyUI is that you can feed non-rectangular masks, which beats fixed columns when subjects are staggered. Our ComfyUI for NSFW guide covers node graphs in depth.
Troubleshooting common failures
Traits still bleeding. Lower Base Ratio toward 0.1, and make region prompts more distinct (very different hair, build, clothing). Confirm “Active” is actually checked and the prompt has the right number of BREAK blocks for your ratio count.
Faces or bodies duplicating at the seam. This is classic latent-mode artifacting. Switch to Attention mode, or in Latent mode raise mask blur and reduce the number of regions. A 1,1 split rarely seams; a 1,1,1,1 split almost always does.
One region empty or merged. Your BREAK count does not match the region count. Two columns need exactly one base block plus two BREAK regions. Count them. A trailing comma or stray BREAK at the end of the prompt silently creates an empty region.
Anatomy errors where bodies meet. Reduce subject overlap in the pose, raise the negative weight on fused bodies, extra limbs, and consider a light inpaint pass on the contact zone afterward. Our inpainting guide and fix hands guide cover the cleanup pass.
Both characters share one face. This is almost always Base Ratio set too high, or identical region prompts. Push the descriptions apart (age, ethnicity cue, hair, expression) and drop Base Ratio. If you need the two to look like the same recurring character on purpose, that is an IPAdapter or LoRA job, not a Regional Prompter one.

Prompt-weighting tricks inside regions
Everything you already know about attention weighting still works inside a region block. If one character’s hair color keeps drifting, you can emphasize it with parentheses, for example (platinum blonde hair:1.3), inside that region only. Because the weight is scoped to the zone, it will not contaminate the other character the way a global emphasis would. This is one of the underrated benefits of region scoping: you can crank a stubborn attribute hard without it leaking sideways.
The same goes for negatives. Regional Prompter applies a single global negative across the whole frame, so put shared cleanup terms there (bad anatomy, extra limbs, fused fingers). If only one character needs a specific exclusion, the cleanest fix is still to phrase the positive region prompt precisely rather than fight it with a global negative. For a reference set of terms that actually move the needle, see our NSFW negative prompts master list.
Keep region prompts roughly balanced in length. If one region has fifteen tags and the other has three, the longer region tends to dominate the shared boundary and the sparse character can look underbaked. Aim for comparable token counts per person unless you deliberately want one figure to be more detailed than the other.
A repeatable workflow for clean two-character scenes
Put the pieces together into a routine you can run every time:
- Decide the geometry first. Side by side means Columns; stacked means Rows. Pick the split before you write a word.
- Write the base block: subject count, location, lighting, framing, style and quality tags only.
- Write each region as a tight, comma-separated description of one person, balanced in length.
- Set Base Ratio to 0.2, Attention mode, Active on, Use common prompt on.
- Lock a seed and generate. Judge separation, not aesthetics, on this pass.
- If traits bleed, drop Base Ratio and sharpen contrast between region descriptions. If figures look disconnected, raise Base Ratio slightly.
- Add ControlNet OpenPose only once the identities hold, so you are not debugging two systems at once.
- Randomize the seed for variations, then send the best result to inpainting and a face pass for finishing.
That last step matters. Regional Prompter gets you two correct, distinct people in roughly the right places; it is not a finishing tool. The contact zones, hands, and faces almost always benefit from a targeted cleanup pass afterward, which is where ADetailer and inpainting earn their keep. Treat Regional Prompter as the composition stage of a longer pipeline rather than a one-shot solution, and your hit rate on usable two-character images climbs sharply.
Try the no-install browser generator first to lock in your character descriptions, then bring those exact phrases into the region blocks once you move to local generation. Regional Prompter rewards specific, contrasting descriptions; the more distinct your two subjects read on paper, the cleaner they separate on canvas. Generate on a fixed seed while you tune ratios so you are comparing the same composition, then only randomize the seed once the separation holds.
Frequently asked questions
What is the difference between Attention mode and Latent mode in Regional Prompter?
Attention mode nudges cross-attention toward each region and blends softly at boundaries, making it forgiving and good for most two-character scenes. Latent mode (Latent Couple style) splits and composites the actual latent for harder separation, but it produces more visible seams and a higher chance of anatomy errors where regions meet. Start with Attention and only switch to Latent if you need strict separation.
How does the BREAK keyword work?
BREAK (uppercase) separates your prompt into a shared base block followed by per-region blocks. With Use common prompt enabled, everything before the first BREAK applies everywhere. Each BREAK starts the prompt for the next region in split order, left to right for Columns or top to bottom for Rows. Two columns need one base block plus exactly two BREAK regions.
What Base Ratio should I use for two characters?
Around 0.2 is a reliable starting point. The Base Ratio controls how much the shared base prompt influences each region. Raise it toward 0.25 if your characters look stylistically disconnected, and lower it toward 0.1 if individual traits like hair color or body type start bleeding between subjects. Tune one direction at a time and regenerate on a fixed seed to compare.
Why do my two characters keep blending into one look?
Stable Diffusion encodes your whole prompt as one tensor applied to the entire image, so attributes compete for every pixel without spatial scoping. Regional Prompter fixes this by assigning each attribute to a zone. If blending persists, lower Base Ratio, make region descriptions more contrasting, confirm the Active checkbox is on, and verify your BREAK count matches the number of regions in your divide ratio.
Can I use Regional Prompter with ControlNet OpenPose at the same time?
Yes, and it is the recommended setup for posed multi-character scenes. Regional Prompter assigns identity to each zone while OpenPose fixes body placement. Align each skeleton’s horizontal center with its matching region, use Columns ratios that match the skeleton positions, and set the OpenPose control weight around 0.8 to 1.0. Misaligned skeletons cause traits to fight the wrong prompt block.
Does Regional Prompter work in ComfyUI?
Not as the same extension. ComfyUI uses node-based equivalents: Attention Couple nodes, plus Conditioning (Set Area) and Conditioning (Combine) nodes that mask conditioning to rectangles. The concept is identical, shared base conditioning plus per-region conditioning combined spatially. You build the regions as a graph rather than typing BREAK keywords, which gives finer control and supports non-rectangular masks at the cost of more setup.
How many characters can I realistically separate?
Two is the most reliable. Three is workable with Columns at ratio 1,1,1 and a lower Base Ratio around 0.15 to prevent merging. Beyond three, regions get narrow, anatomy at the seams degrades, and the model struggles to render full bodies in thin columns. For crowded scenes, generate fewer subjects cleanly then composite or inpaint additional figures afterward.
Does Regional Prompter work the same on SDXL, Pony, and Illustrious checkpoints?
Yes, Attention mode behaves consistently across SD1.5, SDXL, Pony, and Illustrious. The main difference is that region boundaries are slightly softer at the higher native resolutions of SDXL-based models, which usually helps blending. Keep your subject count tag in the base block, since Danbooru-trained models like Pony and Illustrious respond strongly to tags such as 2girls or 1boy 1girl.



