#!/bin/bash set -Eeuo pipefail # TODO: move all mkdir -p ? mkdir -p /data/config/auto/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 # copy scripts, we cannot just mount the directory because it will override the already provided scripts in the repo cp -rfT /data/config/auto/scripts/ "${ROOT}/scripts" 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/deepbooru"]="/data/Deepdanbooru" 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 mkdir -p /output/saved /output/txt2img-images/ /output/img2img-images /output/extras-images/ /output/grids/ /output/txt2img-grids/ /output/img2img-grids/ if [ -f "/data/config/auto/startup.sh" ]; then pushd ${ROOT} . /data/config/auto/startup.sh popd fi exec "$@"