We have launched a tutorial on how to use our model. Everyone is welcome to check it out
They can generate multiple subjects. Each subject has its own prompt.
They require some custom nodes to function properly, mostly to automate out or simplify some of the tediousness that comes with setting up these things.
Please check the About this version section for each workflow for required custom nodes.
Some notable features
Includes Face Restoration with custom nodes from Impact Pack (due to the structure of this workflow it can be easily removed if undesired)
Easy to control subject area where possible thanks to ComfyUI - Visual Area Conditioning / Latent composition
Tedium is automated where possible, thanks primarily to the nodes from WAS's node suite
There are four methods for multiple subjects included so far:
Limits the areas affected by each prompt to just a portion of the image
From my testing, this generally does better than Noisy Latent Composition
Generates each prompt on a separate image for a few steps (eg. 4/20) so that only rough outlines of major elements get created, then combines them together and does the remaining steps with Latent Couple.
First of all, if you want something that actually works, check Character Interaction (OpenPose). This one doesn't, I'm leaving it for archival purposes.
This is an """attempt""" at generating 2 characters interacting with each other, while retaining a high degree of control over their looks, without using ControlNets. As you may expect, it's quite unreliable.
We do this by generating the first few steps (eg. 6/30) on a single prompt encompassing the whole image that describes what sort of interaction we want to achieve (+background and perspective, common features of both characters help too).
Then, for the remaining steps in the second KSampler, we add two more prompts, one for each character, limited to the area where we "expect" (guess) they'll appear, so mostly just the left half/right half of the image with some overlap.
I'm not gonna lie, the results and consistency aren't great. If you want to try it, some settings to fiddle around with would be at which step the KSampler should change, the amount of overlap between character prompts and prompt strengths. From my testing, the closest interaction I've been able to get out of this was a kiss, I've tried to go for a hug but with no luck.
The higher the step that you switch KSamplers at, the more consistently you'll get the desired interaction, but you'll lose out on the character prompts (I've been going between 20-35% of total steps). You may be able to offset this a bit by increasing character prompt strengths.
Another method of generating character interaction, except this time it actually works, and very consistently at that. To achieve this we simply run latent composition with ControlNet openpose mixed in. To make it more convenient to use, the OpenPose image can be pregenerated, so no need to hassle with inputting premade ones yourself (though you can still do that if you want). As a result, it's about as simple and straightforward to use as a normal generation. You can find instructions in the note to the side of the workflow after importing it into ComfyUI.
From a more technical side of things, implementing it is actually a bit more complicated than just applying OpenPose to the conditioning. Because we're dealing with a total of 3 conditionings (background and both subjects) we're running into problems. Applying ControlNet to all three, be it before combining them or after, gives us the background with OpenPose applied correctly (the OpenPose image having the same dimensions as the background conditioning), and subjects with the OpenPose image squeezed to fit their dimensions, for a total of 3 non-aligned ControlNet images. For that reason, we can only apply unchanged OpenPose to the background. Stopping here, however, results in there being no ControlNet guidance for our subjects and the result has nothing to do with our OpenPose image. Therefore, now we crop parts of the OpenPose that correlate with subject areas and apply that to the subject conditioning. With all 3 conditionings having OpenPose applied we can finally combine them and proceed with the proper generation.
The following image demonstrates our resulting conditioning:
btw the workflow will generate similar ones for you :)
Background conditioning covers the entire image and contains the entirety of the pose data.
Subject 1 is represented as the green area and contains a crop of the pose that is inside that area.
Subject 2 is represented as the blue area and contains a crop of the pose that is inside that area.
The image itself is generated first, then the pose data is extracted from it, cropped, applied to conditioning and used in generating the proper image. This saves you from having to have applicable OpenPose images on hand, though if you do, care is taken to ensure that you can use them. You can also input an unprocessed image and have it preprocessed for ControlNet inside the workflow.
And here is the final result:
This includes a second pass after upscaling, face restoration and additional upscaling at the end, all of which are included in the workflow.
A handy preview of the conditioning areas (see the first image) is also generated. Ideally, it would happen before the proper image generation, but the means to control that are not yet implemented in ComfyUI, so sometimes it's the last thing the workflow does. Sadly, I can't do anything about it for now.
Some more use-related details are explained in the workflow itself.
Edit: I seemed to have fucked up and missed the Webp to PNG in the to PNG script. I have already added it but please redownload. Sorry.
I posted a lora making guide i made a while ago. I normally use a couple of powershell scripts to change the extension of the files and to square images for resizing or upscaling.
I will add two scripts one to change to png from jpeg, jpg, bmp, avif and webp
The other does that and makes images square adding white bars on top and bottom or at the sides of the original image.
To use put the images into the script folder and do a left click at the .ps1 file and click run with powershell.
The scripts doesn't modify the original files just create new ones. The new format swapped files should end with "from_jpg" or whatever extension they were before. The resized files should be Resized + a six digit number.