A newer version of the Gradio SDK is available:
4.42.0
Fooocus on Docker
The docker image is based on NVIDIA CUDA 12.3 and PyTorch 2.0, see Dockerfile and requirements_docker.txt for details.
Quick start
This is just an easy way for testing. Please find more information in the notes.
- Clone this repository
- Build the image with
docker compose build
- Run the docker container with
docker compose up
. Building the image takes some time.
When you see the message Use the app with http://0.0.0.0:7865/
in the console, you can access the URL in your browser.
Your models and outputs are stored in the fooocus-data
volume, which, depending on OS, is stored in /var/lib/docker/volumes
.
Details
Update the container manually
When you are using docker compose up
continuously, the container is not updated to the latest version of Fooocus automatically.
Run git pull
before executing docker compose build --no-cache
to build an image with the latest Fooocus version.
You can then start it with docker compose up
Import models, outputs
If you want to import files from models or the outputs folder, you can uncomment the following settings in the docker-compose.yml:
#- ./models:/import/models # Once you import files, you don't need to mount again.
#- ./outputs:/import/outputs # Once you import files, you don't need to mount again.
After running docker compose up
, your files will be copied into /content/data/models
and /content/data/outputs
Since /content/data
is a persistent volume folder, your files will be persisted even when you re-run docker compose up --build
without above volume settings.
Paths inside the container
Path | Details |
---|---|
/content/app | The application stored folder |
/content/app/models.org | Original 'models' folder. Files are copied to the '/content/app/models' which is symlinked to '/content/data/models' every time the container boots. (Existing files will not be overwritten.) |
/content/data | Persistent volume mount point |
/content/data/models | The folder is symlinked to '/content/app/models' |
/content/data/outputs | The folder is symlinked to '/content/app/outputs' |
Environments
You can change config.txt
parameters by using environment variables.
The priority of using the environments is higher than the values defined in config.txt
, and they will be saved to the config_modification_tutorial.txt
Docker specified environments are there. They are used by 'entrypoint.sh'
Environment | Details |
---|---|
DATADIR | '/content/data' location. |
CMDARGS | Arguments for entry_with_update.py which is called by entrypoint.sh |
config_path | 'config.txt' location |
config_example_path | 'config_modification_tutorial.txt' location |
You can also use the same json key names and values explained in the 'config_modification_tutorial.txt' as the environments. See examples in the docker-compose.yml
Notes
- Please keep 'path_outputs' under '/content/app'. Otherwise, you may get an error when you open the history log.
- Docker on Mac/Windows still has issues in the form of slow volume access when you use "bind mount" volumes. Please refer to this article for not using "bind mount".
- The MPS backend (Metal Performance Shaders, Apple Silicon M1/M2/etc.) is not yet supported in Docker, see https://github.com/pytorch/pytorch/issues/81224
- You can also use
docker compose up -d
to start the container detached and connect to the logs withdocker compose logs -f
. This way you can also close the terminal and keep the container running.