#!/usr/bin/env bash set -Eeuo pipefail ROOT=/opt/h3 SUITE="$ROOT/lowbit-suite" MODELS="$ROOT/models" SD="$ROOT/src/stable-diffusion.cpp/build/bin/sd-cli" Q8="$MODELS/minimax_h3_fl2va_pruned-Q8_0.gguf" IMATRIX="$ROOT/quality/calibration/minimax_h3_fl2va_pruned-qf.imatrix" QF_RULES='condition_proj\.weight$=bf16,token_refiner\.=q8_0,blocks\.(46|47|48|49)\.=q8_0,blocks\.(3[0-9]|4[0-5])\.mlp\.fc1\.weight$=q4_K,blocks\.[0-9]+\.attn\.(qkv_proj|out_proj)\.weight$=q4_K,blocks\.[0-9]+\.mlp\.fc2\.weight$=q4_K' QF3_RULES='condition_proj\.weight$=bf16,token_refiner\.=q8_0,(?:audio|video)_patch_proj\.weight$=q8_0,blocks\.(44|45|46|47|48|49)\.=q8_0,blocks\.(2[0-9]|3[0-9]|4[0-3])\.mlp\.fc1\.weight$=q5_K,blocks\.[0-9]+\.attn\.(qkv_proj|out_proj)\.weight$=q5_K,blocks\.[0-9]+\.mlp\.fc2\.weight$=q5_K' variant="${1:?variant required}" case "$variant" in UD-Q1_0-QF) qtype=q1_0; rules="$QF_RULES" ;; UD-IQ1_M-QF3) qtype=iq1_m; rules="$QF3_RULES" ;; IQ2_XXS) qtype=iq2_xxs; rules='' ;; IQ2_S) qtype=iq2_s; rules='' ;; UD-IQ2_S-QF) qtype=iq2_s; rules="$QF_RULES" ;; IQ3_XXS) qtype=iq3_xxs; rules='' ;; IQ3_S) qtype=iq3_s; rules='' ;; UD-IQ3_S-QF) qtype=iq3_s; rules="$QF_RULES" ;; AQUA-v1) qtype=iq2_s "$SUITE/scripts/aqua_policy.py" --gguf "$Q8" --imatrix "$IMATRIX" \ --target-bpw 3.15 --manifest "$SUITE/manifests/AQUA-v1-policy.json" \ --rules-file "$SUITE/tmp/AQUA-v1.rules" rules="$(cat "$SUITE/tmp/AQUA-v1.rules")" ;; *) echo "unknown variant: $variant" >&2; exit 2 ;; esac out="$SUITE/artifacts/minimax_h3_fl2va_pruned-${variant}.gguf" part="$out.part" log="$SUITE/logs/build-${variant}.log" rm -f "$part" cmd=("$SD" --mode convert --diffusion-model "$Q8" --type "$qtype" --imat-in "$IMATRIX" --threads "$(nproc)" --output "$part" --verbose) if [[ -n "$rules" ]]; then cmd+=(--tensor-type-rules "$rules"); fi printf '%q ' "${cmd[@]}" > "$SUITE/logs/build-${variant}.command" printf '\n' >> "$SUITE/logs/build-${variant}.command" nice -n 12 ionice -c2 -n7 "${cmd[@]}" >"$log" 2>&1 [[ -s "$part" ]] mv "$part" "$out" sha256sum "$out" | tee "$out.sha256" python3 "$ROOT/scripts/audit-gguf.py" --sha256 --output "$SUITE/manifests/${variant}-audit.json" "$out" stat -c '%n %s bytes' "$out"