Skip to content
AbdBarho edited this page Jun 23, 2024 · 29 revisions

Assuming you setup everything correctly, you can run any UI (interchangeably, but not in parallel) using the command:

docker compose --profile [ui] up --build

where [ui] is one of auto, auto-cpu, comfy, or comfy-cpu.

Mounts

The data and output folders are always mounted into the container as /data and /output, use them so if you want to transfer anything from / to the container.

Updates

if you want to update to the latest version, just pull the changes

git pull

You can also checkout specific tags if you want.

Customization

If you want to customize the behaviour of the uis, you can create a docker-compose.override.yml and override whatever you want from the main docker-compose.yml file. Example:

services:
   auto:
     environment:
       - CLI_ARGS=--lowvram

Possible configuration:

auto

By default: --medvram is given, which allow you to use this model on a 6GB GPU, you can also use --lowvram for lower end GPUs. Remove these arguments if you are using a (relatively) high end GPU, like 40XX series cards, as these arguments will slow you down.

You can find the full list of cli arguments here.

Custom models

Put the weights in the folder data/StableDiffusion, you can then change the model from the settings tab.

General Config

There is multiple files in data/config/auto such as config.json and ui-config.json which let you which contain additional config for the UI.

Scripts

put your scripts data/config/auto/scripts and restart the container

Extensions

You can use the UI to install extensions, or, you can put your extensions in data/config/auto/extensions.

Different extensions require additional dependencies. Some of them might conflict with each other and changing versions of packages could break things. This container will try to install missing extension dependencies on startup, but it won't resolve any problems for you.

There is also the option to create a script data/config/auto/startup.sh which will be called on container startup, in case you want to install any additional dependencies for your extensions or anything else.

An example of your startup.sh might looks like this:

#!/bin/bash

# opencv-python-headless to not rely on opengl and drivers.
pip install -q --force-reinstall opencv-python-headless

NOTE: dependencies of extensions might get lost when you create a new container, hence the installing them in the startup script is important.

It is not recommended to modify the Dockerfile for the sole purpose of supporting some extension (unless you truly know what you are doing).

DONT OPEN AN ISSUE IF A SCRIPT OR AN EXTENSION IS NOT WORKING

I maintain neither the UI nor the extension, I can't help you.

auto-cpu

CPU instance of the above, some stuff might not work, use at your own risk.