So as this is the first part that integrates things that aren’t included out of the box, I’m going to build these parts out separately and then at the end I’ll release my full docker-compose.yml which will have all the pieces.
With that in mind, lets get started.
First you should go to your users home directory and create a new directory for the stable diffusion instance.
mkdir sd-standalone
Enter it and then lets create the whole directory structure:
mkdir -p stable-diffusion/{models/Stable-diffusion,outputs,embeddings,extensions,configs}
As a side note, I originally put Stable Diffusion 3 models into this instance but I’m lacking the sd3-inference.yaml file and I didn’t feel like spending the time to find one atm. I’ll keep looking around for a verbose one but if you know of one don’t hesitate to send it over to me.
So when you pull up the docker container, it’ll pull its default model which is 1.5 which is not all that great but it’s fine for now.
I still had to put in a inference.yaml file myself so I grabbed v1-inference.yaml from HERE
Throw that in this directory:
~/sd-standalone/stable-diffusion/configs/
within the sd-standalone directory now lets make the docker-compose.yml specifically for Stable Diffusion:
version: "3.8"
services:
sd-a1111:
image: universonic/stable-diffusion-webui:latest
container_name: sd-a1111
user: "1000:1000"
ports:
- "7860:7860"
- "8081:8080"
volumes:
- ./stable-diffusion/models:/data/models
- ./stable-diffusion/outputs:/data/outputs
- ./stable-diffusion/embeddings:/data/embeddings
- ./stable-diffusion/extensions:/data/extensions
- ./stable-diffusion/configs:/data/configs
command: --xformers --api
deploy:
resources:
reservations:
devices:
- capabilities: [gpu]
You can most definitely delete the 7860 port entry but I’m leaving it for now in case it breaks something in the future, additionally you can add the –listen arg to the command entry if you want it to listen on all interfaces.
I also ran into some file permission issues, which is why I added the user: “1000:1000” entry. If you still have file permission issues run the following:
sudo chown -R 1000:1000 ./stable-diffusion
You can confirm its the proper uid/gid by running id within the container when its running:
docker exec -it sd-a1111 id
And you should see:
uid=1000(sduser) gid=1000(sdgroup) groups=1000(sdgroup)
Now navigate to http://localhost:8081 and you should be welcomed with the stable diffusion web-ui. Test the generation!

Now originally i was going to use Flowise as it’s already running in the main stack but as OpenWeb-UI has automatic integrations for Automatic1111 I’ll get to that later. However I will include the fix for the Flowise container as it’s currently broken in the original docker and you won’t be able to login/create an account.
Anyway, all that’s left is to login to your OpenWeb-UI instance –> Admin Panel –> Settings –> Images and configure it for Automatic1111 and your stable diffusion web instance running. Should look like:

Once you put in the proper URL, hit the button to the right of the form box and it’ll confirm it can hit it. Then really the only thing you need to do is select the Default Model which it’ll get the list from the stable diffusion web instance that’s running.
But feel free to change whatever else. Now hit the Save button on the bottom right.
Last thing is to open a new Chat window, select a model such as llama 3.2 and hit the image generation button. Give it a prompt and boom!

Idk what’s ‘hackery’ about that room but I’ll take it.
Anyway, I’ll prob get whisper integrated next and then the ‘base’ is properly done by then and I’ll release my own instructions/docker-compose.yml for the whole shebang.
After that, I’ll add the stuff that I actually will find useful for the prototype I’m working.
And as promised, to fix the flowise container args from The local-ai-package repo I’ve used as a base: HERE
You want to delete the flowise username and password entries within the environment section and replace it with:
- JWT_AUTH_TOKEN_SECRET=your_secret_here
- JWT_REFRESH_TOKEN_SECRET=your_refresh_secret_here
- JWT_TOKEN_EXPIRY_IN_MINUTES=60
- JWT_REFRESH_TOKEN_EXPIRY_IN_MINUTES=129600
- JWT_AUDIENCE=flowise
- JWT_ISSUER=flowise
- EXPRESS_SESSION_SECRET=another_secret_here
Now registration will work!
You can also remove the flowise user/pass entries in the .env and ofc you can put the entries actual values I listed above into the .env as it’s a best security practice.
Enjoy.
END TRANSMISSION
