File size: 2,128 Bytes
c5c3fd2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/usr/bin/env bash
set -euo pipefail
package_dir="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
case "${1:-start}" in
  --help|-h) printf 'Usage: %s [--build|--stop|--logs]\n' "$0"; exit 0 ;;
  start|--build|--stop|--logs) ;;
  *) printf 'Unknown option: %s\n' "$1" >&2; exit 2 ;;
esac
command -v docker >/dev/null || { printf 'Install Docker with the Compose plugin first.\n' >&2; exit 1; }
docker info >/dev/null 2>&1 || { printf 'Docker is unavailable for this user.\n' >&2; exit 1; }
docker compose version >/dev/null
[[ -e /dev/kfd && -d /dev/dri ]] || { printf 'ROCm GPU devices are required.\n' >&2; exit 1; }
export PAITON_H3_DATA="${PAITON_H3_DATA:-${XDG_DATA_HOME:-$HOME/.local/share}/paiton/minimax-h3}"
export PAITON_H3_OUTPUTS="${PAITON_H3_OUTPUTS:-$HOME/paiton-videos}"
mkdir -p "$PAITON_H3_DATA/user" "$PAITON_H3_DATA/custom_nodes" "$PAITON_H3_OUTPUTS"
export PAITON_H3_DATA="$(realpath "$PAITON_H3_DATA")"
export PAITON_H3_OUTPUTS="$(realpath "$PAITON_H3_OUTPUTS")"
export PAITON_RENDER_GID="$(stat -c '%g' /dev/kfd)"
export PAITON_UID="$(id -u)" PAITON_GID="$(id -g)"
compose=(docker compose -f "$package_dir/compose.yaml")
case "${1:-start}" in
  --stop) exec "${compose[@]}" down ;;
  --logs) exec "${compose[@]}" logs --follow ;;
  --build) export PAITON_H3_BUILD=1 ;;
esac
source "$package_dir/image.sh"
prepare_h3_image
unset PAITON_H3_BUILD
"$package_dir/run.sh" download --profile "${PAITON_H3_PRESET:-turbo8}"
"${compose[@]}" up -d --no-build
printf 'Waiting for ComfyUI...\n'
for ((attempt=0; attempt<90; attempt++)); do
  if "${compose[@]}" exec -T comfyui python3 -c 'from urllib.request import urlopen; urlopen("http://127.0.0.1:8188/system_stats",timeout=2).close()' >/dev/null 2>&1; then
    printf 'Open http://127.0.0.1:%s/?paiton=1&preset=%s\n' "${PAITON_H3_PORT:-8190}" "${PAITON_H3_PRESET:-turbo8}"
    printf 'The included workflow opens on first visit. Edit the prompt and click Run.\n'
    printf 'Videos: %s\nLogs: %s --logs\nStop: %s --stop\n' "$PAITON_H3_OUTPUTS" "$0" "$0"
    exit 0
  fi
  sleep 1
done
printf 'ComfyUI did not become ready. Check %s --logs\n' "$0" >&2
exit 1