Scholar01 / sd-webui-bg-mask

MIT License
33 stars 4 forks source link

[Feature request] Implementation as an operarion mode and other improvements #2

Closed PladsElsker closed 10 months ago

PladsElsker commented 10 months ago

Hello, first I want to say thank you for making this extension! I love the idea.

I wanted to suggest a few changes to improve the user experience:

Do you accept PRs? I can try my hand at it if you want, I had to add my own operation mode in the last extension I made.

PladsElsker commented 10 months ago

Nevermind, I'll create my own repo I think. I might reference this repo in the readme because I'll use it as a reference for some things.

Scholar01 commented 10 months ago

Sorry, just saw your message, I'll gladly take pr!

PladsElsker commented 10 months ago

Thank you for reaching back. I've looked at it a bit more, and I'm not sure making a PR would be the best approach.

Basically, I have to re-write the whole pipeline of the extension to make it fit into an img2img tab, so it's almost the same thing as starting from scratch.

I already wrote the code to hijack the tab in an extensible way in another extension I made. The problem now is that implementing this over and over again will create tons of duplicated code, and will most certainly lead to extension incompatibilities over time. This is because the way to "hijack a new img2img tab" is super hacky and unstable if everyone does it "their way". Furthermore, it will most likely break for the upcomming versions of the webui.

The best way to fix this would be to make a PR into A1111, but there's so much that needs to change. I don't think such a PR would be easily accepted by them.

To address this, I would like to try to make a pip package to cleanly hijack the img2img tabs (img2img operation modes). Extensions would then import the tab hijacking mechanism through the pip package. If there's breaking changes, only the pip package would need to be updated.

Anyways, I don't plan on making a PR in this repo for now. If I do successfully implement the pip package, I'll come back to this and probably make a PR. Otherwise, I might just implement it without the pip package in a new repo of my own.

Scholar01 commented 10 months ago

Looking forward to your work! 😀

PladsElsker commented 7 months ago

Hello, I wanted to let you know the pip package is done! 🎉 https://pypi.org/project/sdwi2iextender/

As of now, I have 3 extensions that use it, it seems relatively stable (for now). You can have a look if you're interested: