zero01101 / openOutpaint

local offline javascript and html canvas outpainting gizmo for stable diffusion webUI API 🐠
MIT License
499 stars 43 forks source link

[Feature Request]: Multiple network support #215

Closed unai-ndz closed 1 year ago

unai-ndz commented 1 year ago

Is your feature request related to a problem? Please describe.

Afaik right now you can only use extra networks like loras by enabling one at a time in the SD webui settings.

Describe the solution you'd like

I would like for openOutpaint to support serveral networks, either by itself or making use of another extension.

Proposed workflow

Looks like the prompt syntax is already supported but it only activates the one in SD settings. The UI for this extension is already a bit crowded so leaving loras to be activated using the prompt looks reasonable.

Describe alternatives you've considered

Making use of the activated loras in the txt2img or img2img tab, we avoid crowding the UI but changing tab is needed.

Additional context

In case this gets added this extensionextension seems a good candidate for both supporting as the network enabler in another tab or for seen how it enables multiple networks.

PD: Do loras even work properly with inpainting models? I seem to get worse results than with txt2img but I'm not sure if it is that, only using one lora or just the nature of inpainting

zero01101 commented 1 year ago

so as you mentioned, prompt-addition syntax is pretty much the only current support - there's an API endpoint for listing hypernetworks (which don't seem to have any affect on inpainting models), as well as textual inversions, but seemingly no endpoint for LoRAs?

openOutpaint's strictly vanilla JS/HTML, no python here; the webUI extension uses a minimal amount for the (required) webUI tab, (useless) API hook, and (useful) send to openOutpaint buttons but otherwise is still just the same JS/HTML app so there's probably a rather slim chance of much more python being incorporated anywhere... but basically, once there's an API endpoint to list LoRAs along with hypernets and embeddings, it'll be a lot more consistent and reasonable to consider implementing them as a UI option :)

all that being said, quick tests show LoRAs (randomly selected from civitAI) definitely work on inpainting models (runwayML SD1.5 tested) in both openOutpaint as well as webUI directly and can be stacked using prompt syntax:

image image image image image image image image

unai-ndz commented 1 year ago

Thanks a lot. I had the syntax slightly wrong so they were not activating properly with just the prompt. As you said maybe we can revisit this later when the webui has an api for it, hopefully in the correct repo for the extension this time.