I am super stoked to see all these Stable Diffusion forks floating around, and I don't want to shit on the authors and their work that hard, but I swear the installation and packaging of these things is INSANE.
* Every single one of these seems to be a web UI, when this is desktop software that needs a desktop computer or workstation to run. Have we all collectively forgotten how to program PyGTK?
* Model files always go in the code repo. Have we forgotten how home folders work or what their purpose is? At the very least this one instructs you to make a shortcut/symlink if you don't want to copy the ckpt file yet again
* On that note, everything is autodownloaded to wherever the hell the programmer wants (once again, usually in the code repo itself). I must have four or five different copies of ESRGAN, and I spent a bunch of time monkeying around with automatic1111's fork trying to get it to correctly see everything when I ripped out the models folder and symlinked one in from a different place on my hard drive.
To the authors: can you all please get together and standardize some of this stuff? Models should go in user's homefolders, or at a customizable location, and NOT within the scope of stuff that can be touched by git pull. (Doing so causes git to freak out in many circumstances)
The breakneck pace of innovation here is awesome, but it feels like all gas no brakes on the usability front.
In the Bad Old Days(tm) you ran an install script which generates a desktop icon and you click that to run it. Meanwhile with this, on Windows, one has to open an anaconda prompt, activate the anaconda venv (or whatever it is), then manually invoke the whole thing with 'python scripts/invoke.py --web'. And if there's a one-click install script included (which invoke doesn't, but I am not knocking it for this!), half the time they seem to try and pull down the entire world all over again (a la sd-webui).
Like I get this need to make it easy to use, but it's like c'mon, there's is existing convention for all these things. Folks, please follow it!
If I had a wishlist, or the wherewithal to fork my own version, it would have:
* an actual GUI made with an actual windowing toolkit. I don't know why the hell everyone is so afraid of GTK, but I would use that. pyGTK is pretty simple IME, you can even read the C++ docs and it all maps over really nice to python. It doesn't need to be pretty!
* configurable model locations, preferably in an agreed-upon standardized hierarchy
* a standardized way of embedding prompt data into the PNG, a la automatic1111
* an uncomplicated but not overly optimistic setup process. An install.py and run.py, both with sensible defaults so that you don't need any command-line switches to run it except for special circumstances, and if it wants to autodownload updates then CHECK WITH ME FIRST! And preferably one that doesn't try to move my entire world (heres looking at you, sd-webui). And it will load the venv/conda environment for me.
And yes, for all the "put your money where your mouth is", I've been thinking about forking. But I don't know if I have the time or energy to keep up with all the developments in this space. But hey you never know...
Gotta love the tools that edit your bashrc! I'm not sure if that's worse or the mystery meat background auto-downloading. 0_o
Once the pace of innovation slows down I'm sure we'll see more effort from people with traditional software engineering experience come in to clean things up.
- A web app is more versatile, as many users are running this and then accessing the client via other laptops & devices in the house. Understand your point, but not a priority. We do have a GUI mode that runs it in flask, but I don't think that's what you're getting at ;)
- 1 Click Install & Run is in the works to make this easier to install. We agree.
- Model locations are a valid point - We're working on being able to hot swap models mid-session, so I'll bring this up into the convo.
- Invoke has aligned on its own metadata structure for the ability to easily pull those parameters into future invocations. We're not worried about compatibility with Automatic.
No need to fork - Just join us on discord and complain loudly until we make things better. :)
Comments
I am super stoked to see all these Stable Diffusion forks floating around, and I don't want to shit on the authors and their work that hard, but I swear the installation and packaging of these things is INSANE.
* Every single one of these seems to be a web UI, when this is desktop software that needs a desktop computer or workstation to run. Have we all collectively forgotten how to program PyGTK?
* Model files always go in the code repo. Have we forgotten how home folders work or what their purpose is? At the very least this one instructs you to make a shortcut/symlink if you don't want to copy the ckpt file yet again
* On that note, everything is autodownloaded to wherever the hell the programmer wants (once again, usually in the code repo itself). I must have four or five different copies of ESRGAN, and I spent a bunch of time monkeying around with automatic1111's fork trying to get it to correctly see everything when I ripped out the models folder and symlinked one in from a different place on my hard drive.
To the authors: can you all please get together and standardize some of this stuff? Models should go in user's homefolders, or at a customizable location, and NOT within the scope of stuff that can be touched by git pull. (Doing so causes git to freak out in many circumstances)
The breakneck pace of innovation here is awesome, but it feels like all gas no brakes on the usability front.
In the Bad Old Days(tm) you ran an install script which generates a desktop icon and you click that to run it. Meanwhile with this, on Windows, one has to open an anaconda prompt, activate the anaconda venv (or whatever it is), then manually invoke the whole thing with 'python scripts/invoke.py --web'. And if there's a one-click install script included (which invoke doesn't, but I am not knocking it for this!), half the time they seem to try and pull down the entire world all over again (a la sd-webui).
Like I get this need to make it easy to use, but it's like c'mon, there's is existing convention for all these things. Folks, please follow it!
If I had a wishlist, or the wherewithal to fork my own version, it would have:
* an actual GUI made with an actual windowing toolkit. I don't know why the hell everyone is so afraid of GTK, but I would use that. pyGTK is pretty simple IME, you can even read the C++ docs and it all maps over really nice to python. It doesn't need to be pretty!
* configurable model locations, preferably in an agreed-upon standardized hierarchy
* a standardized way of embedding prompt data into the PNG, a la automatic1111
* an uncomplicated but not overly optimistic setup process. An install.py and run.py, both with sensible defaults so that you don't need any command-line switches to run it except for special circumstances, and if it wants to autodownload updates then CHECK WITH ME FIRST! And preferably one that doesn't try to move my entire world (heres looking at you, sd-webui). And it will load the venv/conda environment for me.
And yes, for all the "put your money where your mouth is", I've been thinking about forking. But I don't know if I have the time or energy to keep up with all the developments in this space. But hey you never know...
Gotta love the tools that edit your bashrc! I'm not sure if that's worse or the mystery meat background auto-downloading. 0_o
Once the pace of innovation slows down I'm sure we'll see more effort from people with traditional software engineering experience come in to clean things up.
Oh god don't even get me started on that....
- A web app is more versatile, as many users are running this and then accessing the client via other laptops & devices in the house. Understand your point, but not a priority. We do have a GUI mode that runs it in flask, but I don't think that's what you're getting at ;)
- 1 Click Install & Run is in the works to make this easier to install. We agree.
- Model locations are a valid point - We're working on being able to hot swap models mid-session, so I'll bring this up into the convo.
- Invoke has aligned on its own metadata structure for the ability to easily pull those parameters into future invocations. We're not worried about compatibility with Automatic.
No need to fork - Just join us on discord and complain loudly until we make things better. :)
I wasn't expecting this list of complaints to be read so positively. So, props for that. Might just see you guys on discord...
If you're using Mac m1 DiffusionBee is a one click app install that I've been using to generate high quality renders in seconds.
The devs recently added img2img support too.
I had tried to install the more complete versions but I just end up in a wormhole of python and conda errors.
FYI, the HuggingFace diffusers does the download of models sensibly.
It's probably worth following that.