Spaces:
Sleeping
Sleeping
| # Launch RefDiffNet demo (lightweight: skip reinstall if deps OK) | |
| set -euo pipefail | |
| cd "$(dirname "$0")" | |
| if [[ -f "${HOME}/anaconda3/etc/profile.d/conda.sh" ]]; then | |
| # shellcheck source=/dev/null | |
| source "${HOME}/anaconda3/etc/profile.d/conda.sh" | |
| conda activate pcb | |
| fi | |
| PY="${CONDA_PREFIX:-}/bin/python" | |
| PIP="${CONDA_PREFIX:-}/bin/pip" | |
| SITE="${CONDA_PREFIX:-}/lib/python3.10/site-packages" | |
| echo "==> Python: $(which python)" | |
| need_numpy_fix() { | |
| ! "${PY}" -c "import numpy; assert numpy.__version__.startswith('1.')" 2>/dev/null | |
| } | |
| fix_numpy() { | |
| echo "==> numpy 1.x (torch 2.2)" | |
| if ! "${PIP}" install --no-cache-dir --ignore-installed "numpy>=1.23.0,<2" 2>/dev/null; then | |
| rm -rf "${SITE}"/numpy "${SITE}"/numpy-*.dist-info 2>/dev/null || true | |
| "${PIP}" install --no-cache-dir "numpy>=1.23.0,<2" | |
| fi | |
| } | |
| need_gradio_fix() { | |
| ! "${PY}" -c "import gradio_patch; gradio_patch.apply(); import gradio" 2>/dev/null | |
| } | |
| fix_gradio() { | |
| echo "==> gradio 5.23.0 (match HF sdk_version)" | |
| "${PIP}" install --no-cache-dir "gradio==5.23.0" | |
| } | |
| free_port() { | |
| local p="$1" | |
| if lsof -i:"${p}" -sTCP:LISTEN -t >/dev/null 2>&1; then | |
| echo " Stopping process on port ${p}..." | |
| kill "$(lsof -t -i:"${p}" -sTCP:LISTEN 2>/dev/null)" 2>/dev/null || true | |
| sleep 1 | |
| fi | |
| } | |
| need_numpy_fix && fix_numpy | |
| need_gradio_fix && fix_gradio | |
| free_port 7860 | |
| export PYTHONNOUSERSITE=1 | |
| export PREBACKBONE_ONLY_WEIGHTS="${PREBACKBONE_ONLY_WEIGHTS:-weights/prebackbone_a11_ca.pt}" | |
| export PRELOAD_MODEL="${PRELOAD_MODEL:-0}" | |
| export GRADIO_SHARE="${GRADIO_SHARE:-0}" | |
| # Low RAM: PREBACKBONE_DEVICE=cpu bash run.sh | |
| echo "==> Starting app (PRELOAD_MODEL=${PRELOAD_MODEL} GRADIO_SHARE=${GRADIO_SHARE})" | |
| exec "${PY}" app.py | |