| #!/usr/bin/env bash |
| |
| |
| set -euo pipefail |
|
|
| cd /workspace |
|
|
| |
| if [ -n "${HF_TOKEN:-}" ]; then |
| echo "Logging in to Hugging Face Hub ..." |
| huggingface-cli login --token "$HF_TOKEN" --add-to-git-credential 2>/dev/null || true |
| else |
| echo "WARNING: HF_TOKEN is not set. Gated models (e.g. Meta-Llama-3) will fail to download." >&2 |
| fi |
|
|
| |
| python - <<'PY' |
| from huggingface_hub import snapshot_download |
| snapshot_download("nvidia/Kimodo-SOMA-RP-v1") |
| snapshot_download("nvidia/Kimodo-G1-RP-v1") |
| |
| snapshot_download("meta-llama/Meta-Llama-3-8B-Instruct") |
| print("Checkpoint download complete.") |
| PY |
|
|
| |
| echo "Starting text-encoder on :9550 ..." |
| kimodo_textencoder & |
| TEXT_ENCODER_PID=$! |
|
|
| |
| cleanup() { |
| echo "Shutting down text-encoder (pid=${TEXT_ENCODER_PID}) ..." |
| kill "${TEXT_ENCODER_PID}" >/dev/null 2>&1 || true |
| } |
| trap cleanup EXIT |
|
|
| |
| echo "Waiting for text-encoder health ..." |
| for i in $(seq 1 1200); do |
| if curl -fsS "http://127.0.0.1:9550/" >/dev/null 2>&1; then |
| echo "Text-encoder is up." |
| break |
| fi |
| sleep 1 |
| if [[ $i -eq 1200 ]]; then |
| echo "ERROR: text-encoder did not become healthy on http://127.0.0.1:9550/ within 1800" >&2 |
| exit 1 |
| fi |
| done |
|
|
|
|
| |
| echo "Starting demo on :7860 ..." |
| exec kimodo_demo |