5d379bf7bc
Upon enabling the ControlNet addon from https://github.com/AbdBarho/stable-diffusion-webui-docker/pull/385 one might want to use the `openpose` preprocessors. Those are downloaded by the addon the first time they are used. Without proper mounts those networks will be downloaded on usage after each container start. This PR enables those mounts to reduce data traffic.
68 lines
2.1 KiB
Bash
Executable File
68 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -Eeuo pipefail
|
|
|
|
# TODO: move all mkdir -p ?
|
|
mkdir -p /data/config/auto/scripts/
|
|
# mount scripts individually
|
|
find "${ROOT}/scripts/" -maxdepth 1 -type l -delete
|
|
cp -vrfTs /data/config/auto/scripts/ "${ROOT}/scripts/"
|
|
|
|
cp -n /docker/config.json /data/config/auto/config.json
|
|
jq '. * input' /data/config/auto/config.json /docker/config.json | sponge /data/config/auto/config.json
|
|
|
|
if [ ! -f /data/config/auto/ui-config.json ]; then
|
|
echo '{}' >/data/config/auto/ui-config.json
|
|
fi
|
|
|
|
declare -A MOUNTS
|
|
|
|
MOUNTS["/root/.cache"]="/data/.cache"
|
|
|
|
# main
|
|
MOUNTS["${ROOT}/models/Stable-diffusion"]="/data/StableDiffusion"
|
|
MOUNTS["${ROOT}/models/VAE"]="/data/VAE"
|
|
MOUNTS["${ROOT}/models/Codeformer"]="/data/Codeformer"
|
|
MOUNTS["${ROOT}/models/GFPGAN"]="/data/GFPGAN"
|
|
MOUNTS["${ROOT}/models/ESRGAN"]="/data/ESRGAN"
|
|
MOUNTS["${ROOT}/models/BSRGAN"]="/data/BSRGAN"
|
|
MOUNTS["${ROOT}/models/RealESRGAN"]="/data/RealESRGAN"
|
|
MOUNTS["${ROOT}/models/SwinIR"]="/data/SwinIR"
|
|
MOUNTS["${ROOT}/models/ScuNET"]="/data/ScuNET"
|
|
MOUNTS["${ROOT}/models/LDSR"]="/data/LDSR"
|
|
MOUNTS["${ROOT}/models/hypernetworks"]="/data/Hypernetworks"
|
|
MOUNTS["${ROOT}/models/torch_deepdanbooru"]="/data/Deepdanbooru"
|
|
MOUNTS["${ROOT}/models/BLIP"]="/data/BLIP"
|
|
MOUNTS["${ROOT}/models/midas"]="/data/MiDaS"
|
|
MOUNTS["${ROOT}/models/Lora"]="/data/Lora"
|
|
MOUNTS["${ROOT}/models/ControlNet"]="/data/ControlNet"
|
|
MOUNTS["${ROOT}/models/openpose"]="/data/openpose"
|
|
|
|
MOUNTS["${ROOT}/embeddings"]="/data/embeddings"
|
|
MOUNTS["${ROOT}/config.json"]="/data/config/auto/config.json"
|
|
MOUNTS["${ROOT}/ui-config.json"]="/data/config/auto/ui-config.json"
|
|
MOUNTS["${ROOT}/extensions"]="/data/config/auto/extensions"
|
|
|
|
# extra hacks
|
|
MOUNTS["${ROOT}/repositories/CodeFormer/weights/facelib"]="/data/.cache"
|
|
|
|
for to_path in "${!MOUNTS[@]}"; do
|
|
set -Eeuo pipefail
|
|
from_path="${MOUNTS[${to_path}]}"
|
|
rm -rf "${to_path}"
|
|
if [ ! -f "$from_path" ]; then
|
|
mkdir -vp "$from_path"
|
|
fi
|
|
mkdir -vp "$(dirname "${to_path}")"
|
|
ln -sT "${from_path}" "${to_path}"
|
|
echo Mounted $(basename "${from_path}")
|
|
done
|
|
|
|
if [ -f "/data/config/auto/startup.sh" ]; then
|
|
pushd ${ROOT}
|
|
. /data/config/auto/startup.sh
|
|
popd
|
|
fi
|
|
|
|
exec "$@"
|