1#!/usr/bin/env bash
2
3set -e
4
5# Parse command line arguments
6MMPROJ=""
7DEBUG=""
8while [[ $# -gt 0 ]]; do
9 case $1 in
10 --mmproj)
11 MMPROJ="--mmproj"
12 shift
13 ;;
14 --debug)
15 DEBUG="1"
16 shift
17 ;;
18 *)
19 shift
20 ;;
21 esac
22done
23
24MODEL_NAME="${MODEL_NAME:-$(basename "$MODEL_PATH")}"
25OUTPUT_DIR="${OUTPUT_DIR:-../../models}"
26TYPE="${OUTTYPE:-f16}"
27METADATA_OVERRIDE="${METADATA_OVERRIDE:-}"
28CONVERTED_MODEL="${OUTPUT_DIR}/${MODEL_NAME}.gguf"
29
30echo "Model path: ${MODEL_PATH}"
31echo "Model name: ${MODEL_NAME}"
32echo "Data type: ${TYPE}"
33echo "Converted model path:: ${CONVERTED_MODEL}"
34echo "Metadata override: ${METADATA_OVERRIDE}"
35
36if [[ -n "$DEBUG" ]]; then
37 CMD_ARGS=("python" "-m" "pdb")
38else
39 CMD_ARGS=("python")
40fi
41CMD_ARGS+=("../../convert_hf_to_gguf.py" "--verbose")
42CMD_ARGS+=("${MODEL_PATH}")
43CMD_ARGS+=("--outfile" "${CONVERTED_MODEL}")
44CMD_ARGS+=("--outtype" "${TYPE}")
45[[ -n "$METADATA_OVERRIDE" ]] && CMD_ARGS+=("--metadata" "${METADATA_OVERRIDE}")
46[[ -n "$MMPROJ" ]] && CMD_ARGS+=("${MMPROJ}")
47
48"${CMD_ARGS[@]}"
49
50echo ""
51echo "The environment variable CONVERTED_MODEL can be set to this path using:"
52echo "export CONVERTED_MODEL=$(realpath ${CONVERTED_MODEL})"
53if [[ -n "$MMPROJ" ]]; then
54 mmproj_file="${OUTPUT_DIR}/mmproj-$(basename "${CONVERTED_MODEL}")"
55 echo "The mmproj model was created in $(realpath "$mmproj_file")"
56fi