#!/usr/bin/env bash # Download the frank-small payload for llama.cpp on the RTX 3090: # bartowski/MiMo-V2.6-Distill-Qwen-9B-GGUF:Q5_K_M plus its vision projector # (the GGUF carries no `v.*` tensors — the tower lives only in the mmproj, so # without this file the endpoint is text-only by construction). Public repo — # no auth header, and never a token on the command line (it is world-readable # in /proc//cmdline). # # Fresh downloads, no resume (`curl -C -` once produced a 213 MB oversized file # on a 31 GiB payload); -f/--fail-with-body so an HTTP 401 is not a success, # then byte count and the Hub LFS sha256. Idempotent: complete files are # skipped. # # The Q6_K file this endpoint served until 2026-10-01 night stays on disk as # the rollback target (7793710624 B, LFS oid # ef96d05a2ddf2cbb450d1af1ac3860ec769d3575bafa70692ee5609bda3fad7d) — re-fetch # it from the same repo with the same recipe if it is ever needed again. # # Usage: # scripts/download-frank-small.sh [DEST_DIR] [--verify-only] set -euo pipefail REPO="bartowski/MiMo-V2.6-Distill-Qwen-9B-GGUF" BASE="https://huggingface.co/${REPO}/resolve/main" DEST="" VERIFY_ONLY=0 for arg in "$@"; do case "$arg" in --verify-only) VERIFY_ONLY=1 ;; *) DEST="$arg" ;; esac done DEST="${DEST:-/home/dank/models/MiMo-Q5KM}" # name bytes sha256 FILES=( "MiMo-V2.6-Distill-Qwen-9B-Q5_K_M.gguf 6876124704 04cf46f2b5584ef922697d6c063f94879434fb86c467f1a09e52daf0cddaf35f" "mmproj-MiMo-V2.6-Distill-Qwen-9B-f16.gguf 918166048 ff348f3180a63188aa7285db85f550fe38acb61dd013c599eb8bad08d2cc2576" ) mkdir -p "$DEST" status=0 for entry in "${FILES[@]}"; do read -r name size sha <<<"$entry" f="$DEST/$name" have=0 if [[ -f "$f" ]] && [[ "$(stat -c%s "$f")" == "$size" ]]; then if sha256sum -c --quiet <(printf '%s %s\n' "$sha" "$f"); then have=1 fi fi if (( have )); then echo "OK $name" continue fi if (( VERIFY_ONLY )); then echo "MISSING $name" status=1 continue fi echo "FETCHING $name" tmp="$f.part" curl -fsSL --fail-with-body -o "$tmp" "$BASE/$name" mv "$tmp" "$f" if [[ "$(stat -c%s "$f")" != "$size" ]]; then echo "SIZE FAIL $name ($(stat -c%s "$f") != $size)" status=1 continue fi if ! sha256sum -c --quiet <(printf '%s %s\n' "$sha" "$f"); then echo "SHA FAIL $name" status=1 continue fi echo "VERIFIED $name" done if (( status == 0 )); then echo "DOWNLOAD_DONE $DEST" else echo "DOWNLOAD_FAILED $DEST" >&2 fi exit "$status"