Replies: 15 comments 23 replies
-
I also found this when installing the controlnet extension, I needed to add Regarding the PyTorch images, yes they are still using Python 3.8, we can track this here: |
Beta Was this translation helpful? Give feedback.
-
I agree that getting extensions dependencies is the biggest pain point right now. I am a relatively amateur programmer so please take my proposal with a grain of salt. Up until now I have been manually adding lines to the docker file similar to @kelvie method above. However, it's a tedious process. Is it possible to wrap the whole thing in 1 virtual environment? If this were the case, I believe that the launch import that is present in the install.py files of the extensions would be able to call the launch.py file in the automatic1111 repo. If this is possible, I think it might be a better solution than maintaining a separate hypothetical requirements.txt file for common packages. |
Beta Was this translation helpful? Give feedback.
-
@cbolich: |
Beta Was this translation helpful? Give feedback.
-
You can call any scripts you want in the
Yeah, and unfortunately, I don't see that getting better anytime soon. Every extension has its own set of dependencies and they overlap and overwrite each other. I don't think this is a problem that we can solve in this repo, we may make it a bit easier by installing a "separate hypothetical requirements.txt file for common packages", but this is an ecosystem problem. |
Beta Was this translation helpful? Give feedback.
-
Ran into this tonight. I'm using this repo to setup ComfyUI and was having trouble installing the WAS Node Suite since it requires dlib, and requires a couple dependencies from apt-get to properly build/install the dlib python library/dependency.
I ended up just making a shell script that I run to update the ComfyUI Dockerfile (
I'm happy enough with that solution for now, but it would be nice to have dlib pre-installed for the ComfyUI setup, since it's one of the main recommended plugins. (Full script for reference)
|
Beta Was this translation helpful? Give feedback.
-
as an aside I tried the advice from here https://github.com/AbdBarho/stable-diffusion-webui-docker/wiki/Usage#extensions And got the following error: /data/config/auto/startup.sh: line 2: shopt: nullglob |
Beta Was this translation helpful? Give feedback.
-
this is okay for me atm
|
Beta Was this translation helpful? Give feedback.
-
I have installed all the extensions from With the modifications from They all worked except for the following impacts: adieyal/sd-dynamic-prompt thygate/stable-diffusion-webui-depthmap-script |
Beta Was this translation helpful? Give feedback.
-
depthmap:apt-get install libglfw3-dev libgles2-mesa-dev deforum: controlnet:mediapipe dreambooth:accelerate~=0.18.0
dynamicprompts:send2trash==1.8.0 |
Beta Was this translation helpful? Give feedback.
-
I have a PR with some new dependencies, if you could also recommend some missing ones, at least for the controlnet extension. that would be great. |
Beta Was this translation helpful? Give feedback.
-
My latest looks like this:
|
Beta Was this translation helpful? Give feedback.
-
The underlying issue is that Auto1111 installs the required packages in the container upon installation of the extension, but the extension is persisted outside of the container. If the container is ever rebuilt, the extension is still present, but its dependencies have been wiped away. You either need a simple store in the Docker container to track what extensions have already had dependencies installed in that container or you just pip install all the requirements for all extant extensions on every startup.
The answer is to not hardcode requirements at all and just have something on startup check through all the existing extensions and make sure their dependencies are installed in the container. I did something like that here: 04620dc |
Beta Was this translation helpful? Give feedback.
-
This is my latest since the image changes were implemented in https://github.com/AbdBarho/stable-diffusion-webui-docker/releases/tag/7.0.0:
|
Beta Was this translation helpful? Give feedback.
-
I can confirm some of depth map will not work without cuda-libraries-dev-11-8 installed. that results in the EGL error |
Beta Was this translation helpful? Give feedback.
-
I just spent some time debugging why the dreambooth (in auto) doesn't work right anymore, and finally narrowed it down to the fact that one of the modules, bitsandbytes, requires a bunch of cuda libs: bitsandbytes-foundation/bitsandbytes#85
Being that nvidia and python are both atrocious for packaging, I totally get it, but perhaps this might not be the only other python library that expects to be able to find cuda libs. Should this docker image consider adding (back?) cuda-libraries-dev?
Otherwise I'm just going to be maintaining my own patches to the dockerfile on top of this one to let some extensions work, currently, this is what I add to my dockerfile to get my set of extensions working:
Is there a cleaner and more maintanable way to add packages I need to the dockerfile? It was mentioned that the
startup.sh
is the best way for doing the pip installs, but it takes a lot longer to do the apt-installs every time, and it seems harder to cache (the pip cache is persisted across docker compose runs)Beta Was this translation helpful? Give feedback.
All reactions