mirror of
https://github.com/leejet/stable-diffusion.cpp.git
synced 2026-10-27 07:14:04 +08:00
54 lines
1.3 KiB
Bash
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
|