mirror of
https://github.com/AbdBarho/stable-diffusion-webui-docker.git
synced 2025-10-27 16:24:26 -04:00
First pass at getting Fooocus working
This commit is contained in:
@@ -71,3 +71,11 @@ services:
|
|||||||
deploy: {}
|
deploy: {}
|
||||||
environment:
|
environment:
|
||||||
- CLI_ARGS=--cpu
|
- CLI_ARGS=--cpu
|
||||||
|
|
||||||
|
fooocus: &fooocus
|
||||||
|
<<: *base_service
|
||||||
|
profiles: ["fooocus"]
|
||||||
|
build: ./services/fooocus/
|
||||||
|
image: sd-fooocus:3
|
||||||
|
environment:
|
||||||
|
- CLI_ARGS=
|
||||||
48
services/fooocus/Dockerfile
Normal file
48
services/fooocus/Dockerfile
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
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 some packages for some custom nodes in comfyui
|
||||||
|
RUN apt-get install 'libglib2.0-0' -y
|
||||||
|
RUN apt-get update
|
||||||
|
RUN apt-get install 'libgl1-mesa-glx' -y
|
||||||
|
RUN apt-get install 'python-dev' -y
|
||||||
|
|
||||||
|
ARG BRANCH=main SHA=8e62a72a63b30a3067d1a1bc3f8d226824bd9283
|
||||||
|
|
||||||
|
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 chmod u+x /docker/entrypoint.sh
|
||||||
|
|
||||||
|
#ENV NVIDIA_VISIBLE_DEVICES=all
|
||||||
|
#ENV PYTHONPATH="${PYTHONPATH}:${PWD}" CLI_ARGS=""
|
||||||
|
EXPOSE 7860
|
||||||
|
ENTRYPOINT ["/docker/entrypoint.sh"]
|
||||||
|
CMD python -u entry_with_update.py --listen --port 7860 ${CLI_ARGS}
|
||||||
12
services/fooocus/config.txt
Normal file
12
services/fooocus/config.txt
Normal file
@@ -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"
|
||||||
|
}
|
||||||
38
services/fooocus/entrypoint.sh
Normal file
38
services/fooocus/entrypoint.sh
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -Eeuo pipefail
|
||||||
|
|
||||||
|
declare -A MOUNTS
|
||||||
|
|
||||||
|
#mkdir -p ${CONFIG_DIR} ${ROOT}/configs/stable-diffusion/
|
||||||
|
|
||||||
|
# cache
|
||||||
|
#MOUNTS["/root/.cache"]=/data/.cache/
|
||||||
|
|
||||||
|
# this is really just a hack to avoid migrations
|
||||||
|
#rm -rf ${HF_HOME}/diffusers
|
||||||
|
|
||||||
|
# ui specific
|
||||||
|
#MOUNTS["${ROOT}/models/codeformer"]=/data/models/Codeformer/
|
||||||
|
#MOUNTS["${ROOT}/models/gfpgan/GFPGANv1.4.pth"]=/data/models/GFPGAN/GFPGANv1.4.pth
|
||||||
|
#MOUNTS["${ROOT}/models/gfpgan/weights"]=/data/models/GFPGAN/
|
||||||
|
#MOUNTS["${ROOT}/models/realesrgan"]=/data/models/RealESRGAN/
|
||||||
|
#MOUNTS["${ROOT}/models/ldm"]=/data/.cache/invoke/ldm/
|
||||||
|
|
||||||
|
# hacks
|
||||||
|
|
||||||
|
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 "$@"
|
||||||
Reference in New Issue
Block a user