Let's make some action scenes with 2 characters interacting with each other, no ControlNet, no Inpainting and no cumbersome dark magic involved.
For this guide we will be using:
WAI-NSFW-illustrious-SDXL <https://civitai.com/models/827184?modelVersionId=1410435>
CFG 7
Sampling steps: 30~40
Sampler: Euler a
Forge UI (Automatic1111 also works, but regional prompter UI is different)
Regional Prompter <https://github.com/hako-mikan/sd-webui-regional-prompter>
Let's say we have something like this in mind:
First, identify what is going on.
I usually go to danbooru <https://danbooru.donmai.us/> and look for similar images or images that have elements that I want, then, if I'm lucky, there might big a tag that does exactly what I want. This is to make sure that we get correct spelling for the tags or concepts we want to use in out image. Of course, this is totally optional, but it helps A LOT.
Next, we are thinking "this is easy enough, I just prompt it like this":
2boys, from side, upper body, blue sky, goku, vegeta, face punch, punching, outstretched arm,
best quality, masterpiece, highres,
duh!
and we get:
oh... not good.
This is not even close to what we want, first of all, only vegeta is punching, and also, vegeta's features contaminate the entire image for some reason.
What do we do?!
We use Regional Prompter!
After installing Regional Prompter just do:
Open the Regional Prompter and then:
Enable Regional Prompter (seems obvious enough, but I forget sometimes)
Select the "Mask" tab to enter mask mode
Set the width and height to whatever size you are generating. If you are using highres fix, it is ok just to set this to the lower initial resolution before highres fix. Works 99% of the time.
Click the trash can to rest the canvas size. This step is optional, but the canvas size does not resize automatically when you change the resolution, keep that in mind.
Click the draw button to begin drawing the regions.
Note: Ignore the "Layer 1" button, it does nothing in Regional Prompter.
We begin painting region 1. Regions are selected in this input, just click up or down to go up to the one you want to draw. The number only changes the brush color, is not an actual layer, so anything you draw will override anything already drawn on the canvas.
Let's draw the first region, I usually use the first region for the background and overall composition of the image, so, I paint everything.
Then we draw our second region, where we want goku to be:
And finally our third region where we want Vegeta to be:
I know, it looks funny. Remember, it does not have to be perfect, these regions are just suggestions, for the diffusion model. If the regions are too close prompts might spill from one region to another.
Now that we have our regions, we need to divide our prompt into 3 chunks, one for each region:
2boys, fight, wide shot,
blue sky,
best quality, masterpiece, highres,
BREAK
2boys,
son goku,
from side, upper body,
face punch, outstreched arm,
BREAK
2boys,
vegeta,
from side, upper body,
face punch, outstreched arm,
Sometimes it helps to repeat some composition tags between the prompts, in this case we are copying "2boys" in all prompts, this helps the model understand that we still want 2boys interacting.
Now we can generate our image, after a few tries we get this:
Let's add more details to our prompt:
2boys, fight,
blue sky
best quality, masterpiece, highres,
BREAK
2boys, son goku,
from side, upper body,
face punch, outstreched arm, arm up, arm at side,
wince, looking to the side, pain,
BREAK
2boys, vegeta,
from side, upper body,
face punch, outstreched arm, arm up, arm at side,
wince, looking to the side, pain,
And lets redraw our regions like this:
lol, the regions look more funny now, but trust me, sometimes the regions need to be a little bit more separated from each other in order to work better in the final image.
And after a couple of tries we get this:
Voila!
This method is not perfect, but definitely helps a lot when vanilla prompting fails.
Keep experimenting.
This method also works with loras... expecially meme loras!!
For exmaple:
erenside,
2boys,
anime style, anime coloring,
dim lighting, dark background,
very awa,
masterpiece, best quality, absurdres, highres,
<lora:[Concept - IL] Meme - Eren Brainwashing Grisha:0.8>
BREAK
erenside,
silva_sk21,
straight-on, shaded face, close-up,
<lora:[Char - IL] Shaman King - Silva (v1-E18):0.6> headband, feathers, blue vest, long hair, black hair, bangs,
BREAK
erenside,
aeyoh,
from side, sweat, nervous sweating, wide-eyed, open mouth, :o, shaded face, surprised,
headphones, brown hair, brown eyes, tooth necklace,
<lora:[Char - IL] Shaman King - Asakura Yoh:0.6>
Using these LoRas:
Eren Brainwashing Grisha <https://civitai.com/models/1276057/eren-brainwashing-grisha-or-attack-on-titan-or-meme-concept-pose-or-illustriousxl-and-noobai?modelVersionId=1439535>
Asakura Yoh <https://civitai.com/models/1237321/yoh-asakura-shaman-kingillustrious>
Silva <https://civitai.com/models/540373?modelVersionId=1311456>
When combining loras remember to reduce their strenght our they might spill style and unintended features into the rest of the image.
You can also put more than 3 totally different characters too:
I have even managed to squeeze 7 characters into 8 regions (the extra region is for the background): <https://civitai.com/images/56272608>. However, smaller regions means higher chance that the diffusion model totally ignores it, and it may also reduce quality, so, use it with care.
Note: If having trouble, sometimes lowering the CFG might work.
Happy prompting!