Spaces:
Runtime error
Runtime error
| 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/" | |
| # Set up config file | |
| python /docker/config.py /data/config/auto/config.json | |
| if [ ! -f /data/config/auto/ui-config.json ]; then | |
| echo '{}' >/data/config/auto/ui-config.json | |
| fi | |
| if [ ! -f /data/config/auto/styles.csv ]; then | |
| touch /data/config/auto/styles.csv | |
| fi | |
| # copy models from original models folder | |
| mkdir -p /data/models/VAE-approx/ /data/models/karlo/ | |
| rsync -a --info=NAME ${ROOT}/models/VAE-approx/ /data/models/VAE-approx/ | |
| rsync -a --info=NAME ${ROOT}/models/karlo/ /data/models/karlo/ | |
| declare -A MOUNTS | |
| #MOUNTS["/root/.cache"]="/data/.cache" | |
| MOUNTS["${ROOT}/models"]="/data/models" | |
| 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}/styles.csv"]="/data/config/auto/styles.csv" | |
| MOUNTS["${ROOT}/extensions"]="/data/config/auto/extensions" | |
| MOUNTS["${ROOT}/config_states"]="/data/config/auto/config_states" | |
| # 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 | |
| echo "Installing extension dependencies (if any)" | |
| # because we build our container as root: | |
| chown -R root ~/.cache/ | |
| chmod 766 ~/.cache/ | |
| shopt -s nullglob | |
| # For install.py, please refer to https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Developing-extensions#installpy | |
| list=(./extensions/*/install.py) | |
| for installscript in "${list[@]}"; do | |
| EXTNAME=`echo $installscript | cut -d '/' -f 3` | |
| # Skip installing dependencies if extension is disabled in config | |
| if `jq -e ".disabled_extensions|any(. == \"$EXTNAME\")" config.json`; then | |
| echo "Skipping disabled extension ($EXTNAME)" | |
| continue | |
| fi | |
| PYTHONPATH=${ROOT} python "$installscript" | |
| done | |
| if [ -f "/data/config/auto/startup.sh" ]; then | |
| pushd ${ROOT} | |
| echo "Running startup script" | |
| . /data/config/auto/startup.sh | |
| popd | |
| fi | |
| exec "$@" | |