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