Files
stable-diffusion.cpp/start-server.sh
T

54 lines
1.3 KiB
Bash

#!/bin/sh
set -eu
SD_SERVER_PATH="${SD_SERVER_PATH:-}"
MODEL_DIR="./models"
COMMANDLINE_ARGS=""
script_dir=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
if [ -f "$script_dir/start-server.local.sh" ]; then
. "$script_dir/start-server.local.sh"
fi
if [ "${1:-}" != "--version" ]; then
# Split configured arguments on whitespace without expanding wildcards.
set -f
set -- --model-dir "$MODEL_DIR" $COMMANDLINE_ARGS "$@"
fi
run_server() {
printf 'Running:'
for arg do
printf " '%s'" "$(printf '%s' "$arg" | sed "s/'/'\\\\''/g")"
done
printf '\n'
exec "$@"
}
if [ -n "$SD_SERVER_PATH" ]; then
case "$SD_SERVER_PATH" in
*/*) ;;
*) SD_SERVER_PATH="./$SD_SERVER_PATH" ;;
esac
if [ ! -f "$SD_SERVER_PATH" ] || [ ! -x "$SD_SERVER_PATH" ]; then
printf 'SD_SERVER_PATH is not an executable file: %s\n' "$SD_SERVER_PATH" >&2
exit 1
fi
run_server "$SD_SERVER_PATH" "$@"
fi
for server in \
"$script_dir/sd-server" \
"$script_dir/bin/Release/sd-server" \
"$script_dir/bin/sd-server" \
"$script_dir/build/bin/Release/sd-server" \
"$script_dir/build/bin/sd-server"
do
if [ -f "$server" ] && [ -x "$server" ]; then
run_server "$server" "$@"
fi
done
printf '%s\n' 'sd-server was not found. Build it first or set SD_SERVER_PATH to its executable path.' >&2
exit 1