Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding fooocus #635

Open
wants to merge 10 commits into
base: master
Choose a base branch
from
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,14 @@ This repository provides multiple UIs for you to play around with stable diffusi
| -------------------------------------------------------------------------------- |
| ![](https://github.com/comfyanonymous/ComfyUI/raw/master/comfyui_screenshot.png) |

### [Fooocus](https://github.com/comfyanonymous/ComfyUI)

[Full feature list here](https://github.com/lllyasviel/Fooocus#fooocus), Screenshot:

| Simplified UI |
| -------------------------------------------------------------------------------- |
| ![](https://github.com/lllyasviel/Fooocus/assets/19834515/483fb86d-c9a2-4c20-997c-46dafc124f25) |

## Contributing

Contributions are welcome! **Create a discussion first of what the problem is and what you want to contribute (before you implement anything)**
Expand Down
8 changes: 8 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,3 +71,11 @@ services:
deploy: {}
environment:
- CLI_ARGS=--cpu

fooocus: &fooocus
<<: *base_service
profiles: ["fooocus"]
build: ./services/fooocus/
image: sd-fooocus:3
environment:
- CLI_ARGS=
47 changes: 47 additions & 0 deletions services/fooocus/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
FROM alpine:3.17 as xformers
RUN apk add --no-cache aria2
RUN aria2c -x 5 --dir / --out wheel.whl 'https://github.com/AbdBarho/stable-diffusion-webui-docker/releases/download/6.0.0/xformers-0.0.21.dev544-cp310-cp310-manylinux2014_x86_64-pytorch201.whl'

FROM pytorch/pytorch:2.0.1-cuda11.7-cudnn8-runtime

ENV DEBIAN_FRONTEND=noninteractive PIP_PREFER_BINARY=1

RUN apt-get update && apt-get install -y git && apt-get clean

# add in required packages
RUN apt-get install 'libglib2.0-0' -y
RUN apt-get install 'libgl1-mesa-glx' -y
RUN apt-get install 'python-dev' -y

# set this to your target branch commit
ARG BRANCH=main SHA=e2f9bcb11d06216d6800676c48d8d74d6fd77a4b

ENV ROOT=/stable-diffusion
RUN --mount=type=cache,target=/root/.cache/pip \
git clone https://github.com/lllyasviel/Fooocus.git ${ROOT} && \
cd ${ROOT} && \
git checkout ${BRANCH} && \
git reset --hard ${SHA} && \
pip install -r requirements_versions.txt


RUN --mount=type=cache,target=/root/.cache/pip \
--mount=type=bind,from=xformers,source=/wheel.whl,target=/xformers-0.0.21-cp310-cp310-linux_x86_64.whl \
pip install /xformers-0.0.21-cp310-cp310-linux_x86_64.whl

WORKDIR ${ROOT}

RUN --mount=type=cache,target=/root/.cache/pip \
git fetch && \
git checkout ${BRANCH} && \
git reset --hard ${SHA} && \
pip install -r requirements_versions.txt

# add info
COPY . /docker/
RUN cp /docker/config.txt ${ROOT}
RUN chmod u+x /docker/entrypoint.sh

EXPOSE 7860
ENTRYPOINT ["/docker/entrypoint.sh"]
CMD python -u entry_with_update.py --listen --port 7860 ${CLI_ARGS}
12 changes: 12 additions & 0 deletions services/fooocus/config.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"path_checkpoints": "/stable-diffusion/models/checkpoints",
"path_loras": "/stable-diffusion/models/loras",
"path_embeddings": "/stable-diffusion/models/embeddings",
"path_vae_approx": "/stable-diffusion/models/vae_approx",
"path_upscale_models": "/stable-diffusion/models/upscale_models",
"path_inpaint": "/stable-diffusion/models/inpaint",
"path_controlnet": "/stable-diffusion/models/controlnet",
"path_clip_vision": "/stable-diffusion/models/clip_vision",
"path_fooocus_expansion": "/stable-diffusion/models/prompt_expansion/fooocus_expansion",
"path_outputs": "/stable-diffusion/outputs"
}
33 changes: 33 additions & 0 deletions services/fooocus/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#!/bin/bash

set -Eeuo pipefail

mkdir -vp /data/config/fooocus/wildcards

declare -A MOUNTS

MOUNTS["${ROOT}/outputs"]="/output/fooocus"

# ui specific mounts
MOUNTS["${ROOT}/models/checkpoints"]=/data/models/Stable-diffusion/
MOUNTS["${ROOT}/models/loras"]=/data/models/Lora/
MOUNTS["${ROOT}/models/embeddings"]=/data/models/embeddings/
MOUNTS["${ROOT}/models/vae_approx"]=/data/models/VAE/
MOUNTS["${ROOT}/models/upscale_models"]=/data/models/upscale_models/
MOUNTS["${ROOT}/wildcards"]=/data/config/fooocus/wildcards

for to_path in "${!MOUNTS[@]}"; do
set -Eeuo pipefail
from_path="${MOUNTS[${to_path}]}"
rm -rf "${to_path}"
mkdir -p "$(dirname "${to_path}")"
# ends with slash, make it!
if [[ "$from_path" == */ ]]; then
mkdir -vp "$from_path"
fi

ln -sT "${from_path}" "${to_path}"
echo Mounted $(basename "${from_path}")
done

exec "$@"