entrypoint.sh 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #!/bin/bash
  2. set -Eeuo pipefail
  3. # TODO: move all mkdir -p ?
  4. mkdir -p /data/config/auto/scripts/
  5. cp -n /docker/config.json /data/config/auto/config.json
  6. jq '. * input' /data/config/auto/config.json /docker/config.json | sponge /data/config/auto/config.json
  7. if [ ! -f /data/config/auto/ui-config.json ]; then
  8. echo '{}' >/data/config/auto/ui-config.json
  9. fi
  10. # copy scripts, we cannot just mount the directory because it will override the already provided scripts in the repo
  11. cp -rfT /data/config/auto/scripts/ "${ROOT}/scripts"
  12. declare -A MOUNTS
  13. MOUNTS["/root/.cache"]="/data/.cache"
  14. # main
  15. MOUNTS["${ROOT}/models/Stable-diffusion"]="/data/StableDiffusion"
  16. MOUNTS["${ROOT}/models/VAE"]="/data/VAE"
  17. MOUNTS["${ROOT}/models/Codeformer"]="/data/Codeformer"
  18. MOUNTS["${ROOT}/models/GFPGAN"]="/data/GFPGAN"
  19. MOUNTS["${ROOT}/models/ESRGAN"]="/data/ESRGAN"
  20. MOUNTS["${ROOT}/models/BSRGAN"]="/data/BSRGAN"
  21. MOUNTS["${ROOT}/models/RealESRGAN"]="/data/RealESRGAN"
  22. MOUNTS["${ROOT}/models/SwinIR"]="/data/SwinIR"
  23. MOUNTS["${ROOT}/models/ScuNET"]="/data/ScuNET"
  24. MOUNTS["${ROOT}/models/LDSR"]="/data/LDSR"
  25. MOUNTS["${ROOT}/models/hypernetworks"]="/data/Hypernetworks"
  26. MOUNTS["${ROOT}/models/deepbooru"]="/data/Deepdanbooru"
  27. MOUNTS["${ROOT}/embeddings"]="/data/embeddings"
  28. MOUNTS["${ROOT}/config.json"]="/data/config/auto/config.json"
  29. MOUNTS["${ROOT}/ui-config.json"]="/data/config/auto/ui-config.json"
  30. MOUNTS["${ROOT}/extensions"]="/data/config/auto/extensions"
  31. # extra hacks
  32. MOUNTS["${ROOT}/repositories/CodeFormer/weights/facelib"]="/data/.cache"
  33. for to_path in "${!MOUNTS[@]}"; do
  34. set -Eeuo pipefail
  35. from_path="${MOUNTS[${to_path}]}"
  36. rm -rf "${to_path}"
  37. if [ ! -f "$from_path" ]; then
  38. mkdir -vp "$from_path"
  39. fi
  40. mkdir -vp "$(dirname "${to_path}")"
  41. ln -sT "${from_path}" "${to_path}"
  42. echo Mounted $(basename "${from_path}")
  43. done
  44. if [ -f "/data/config/auto/startup.sh" ]; then
  45. pushd ${ROOT}
  46. . /data/config/auto/startup.sh
  47. popd
  48. fi
  49. exec "$@"