diff --git a/scripts/download-frank-large-unsloth.sh b/scripts/download-frank-large-unsloth.sh index ea68d2e..e4adcbb 100755 --- a/scripts/download-frank-large-unsloth.sh +++ b/scripts/download-frank-large-unsloth.sh @@ -22,7 +22,7 @@ # Qwen3.8-Flash-Next-UD-IQ4_XS.gguf 93,682,584,224 main model # mtp/mtp-Qwen3.8-Flash-Next-shared-Q8_0.gguf 2,786,568,256 draft head # vision/mmproj-F16.gguf 904,004,000 projector -# parts/ the three verified transport parts (kept for --verify-only) +# UD-IQ4_XS/ the three verified transport parts (kept for --verify-only) # SHA256SUMS set -euo pipefail @@ -57,15 +57,17 @@ FILES=( "mmproj-F16.gguf 904004000 1f7b7f0b984cf065c604360c29c8098362ed61b290db0ff12c6f360bb1a8a980" ) -if [[ "$mode" == "download" ]]; then - for line in "${FILES[@]}"; do - read -r rel size _ <<<"$line" +RELS=() +for line in "${FILES[@]}"; do + read -r rel size _ <<<"$line" + RELS+=("$rel") + if [[ "$mode" == "download" ]]; then dl "$rel" - done -fi + fi +done echo "verifying parts against the live Hub tree API" -python3 - "$MODEL_DIR" "$REPO" <<'PY' +python3 - "$MODEL_DIR" "$REPO" "${RELS[@]}" <<'PY' import hashlib, json, os, sys, urllib.request model_dir, repo = sys.argv[1], sys.argv[2] @@ -84,9 +86,11 @@ def sha256(path): return h.hexdigest() ok = True -for rel, (size, oid) in sorted(want.items()): - if not rel.startswith(("UD-IQ4_XS/", "MTP/")) and rel != "mmproj-F16.gguf": - continue +expected = set(sys.argv[3:]) +for rel in sorted(expected): + if rel not in want: + print(f"NOT IN HUB TREE {rel}"); ok = False; continue + size, oid = want[rel] path = os.path.join(model_dir, rel) if not os.path.isfile(path): print(f"MISSING {rel}"); ok = False; continue diff --git a/serverAppConfigs-docs/LLM/frank-large-unsloth-qwen38-flash-next.md b/serverAppConfigs-docs/LLM/frank-large-unsloth-qwen38-flash-next.md index 8f8580a..bb3233d 100644 --- a/serverAppConfigs-docs/LLM/frank-large-unsloth-qwen38-flash-next.md +++ b/serverAppConfigs-docs/LLM/frank-large-unsloth-qwen38-flash-next.md @@ -79,7 +79,7 @@ One root unit, one process, one published port: - `mtp/mtp-Qwen3.8-Flash-Next-shared-Q8_0.gguf` — MTP head (2.6 GiB) - `vision/mmproj-F16.gguf` — projector (904 MB, not loaded while `ENABLE_VISION=0`) - - `parts/` + `SHA256SUMS` — transport parts and the assembled digest + - `UD-IQ4_XS/` + `SHA256SUMS` — transport parts and the assembled digest - **Fetch**: `scripts/download-frank-large-unsloth.sh` — resumable (`curl -fL -C -`), each part verified against its **LFS sha256 fetched live from the Hub tree API** (not a file that could drift), then the