inpaintServer/scripts/setup_x86.sh

150 lines
4.1 KiB
Bash
Executable File

#!/bin/bash
# x86 시스템용 인페인팅 서버 자동 설치 스크립트
# RTX 3060 12GB 등 x86 GPU를 지원합니다.
# Usage: ./setup_x86.sh
set -e
# 색상 코드
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# 로그 함수들
log_info() {
echo -e "${BLUE}[INFO]${NC} $1"
}
log_success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}
log_warning() {
echo -e "${YELLOW}[WARNING]${NC} $1"
}
log_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# 기본 설정
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
VENV_PATH="$PROJECT_ROOT/venv"
REQUIREMENTS_FILE="$PROJECT_ROOT/requirements_x86.txt"
log_info "🚀 x86 시스템용 인페인팅 서버 자동 설치 시작"
echo "=========================================="
# 시스템 감지
if [ "$(uname -m)" = "x86_64" ]; then
log_info "🖥️ x86_64 시스템 자동 감지"
else
log_error "❌ x86_64 시스템이 아닙니다. 이 스크립트는 x86 시스템에서만 실행해야 합니다."
exit 1
fi
# Python 환경 확인
log_info "Python 환경 확인 중..."
if ! command -v python3 &> /dev/null; then
log_error "❌ Python3가 설치되지 않았습니다."
exit 1
fi
PYTHON_VERSION=$(python3 --version 2>&1 | awk '{print $2}')
log_info "Python 버전: $PYTHON_VERSION"
# Python 3.10 이상 확인
if ! python3 -c "import sys; exit(0 if sys.version_info >= (3, 10) else 1)" 2>/dev/null; then
log_error "❌ Python 3.10 이상이 필요합니다. 현재 버전: $PYTHON_VERSION"
exit 1
fi
log_success "Python 환경 확인 완료"
# 가상환경 설정
log_info "가상환경 설정 중..."
if [ ! -d "$VENV_PATH" ]; then
log_info "새로운 가상환경을 생성합니다..."
python3 -m venv "$VENV_PATH"
fi
# 가상환경 활성화
source "$VENV_PATH/bin/activate"
# pip 업그레이드
log_info "pip 업그레이드 중..."
pip install --upgrade pip
log_success "가상환경 설정 완료"
# 의존성 설치
log_info "의존성 설치 중..."
if [ ! -f "$REQUIREMENTS_FILE" ]; then
log_error "❌ requirements_x86.txt 파일을 찾을 수 없습니다."
exit 1
fi
# PyTorch 먼저 설치 (CUDA 11.8)
log_info "PyTorch 설치 중 (CUDA 11.8)..."
pip install torch==2.0.1+cu118 torchvision==0.15.2+cu118 --index-url https://download.pytorch.org/whl/cu118
# TensorFlow 설치 (Python 3.10 호환)
log_info "TensorFlow 설치 중 (Python 3.10 호환)..."
pip install tensorflow-gpu==2.12.0
# 나머지 의존성 설치
log_info "기타 의존성 설치 중..."
pip install -r "$REQUIREMENTS_FILE"
log_success "의존성 설치 완료"
# 모델 다운로드
log_info "AI 모델 다운로드 중..."
cd "$PROJECT_ROOT"
# 모델 디렉토리 생성
mkdir -p models/simple-lama models/migan models/rembg
# Simple LAMA 모델 다운로드
#if [ ! -f "models/simple-lama/big-lama.pt" ]; then
# log_info "Simple LAMA 모델 다운로드 중..."
# wget -O models/simple-lama/big-lama.pt https://github.com/Saafke/Simple-LAMA/releases/download/v1.0/big-lama.pt
#fi
# MIGAN 모델 다운로드
#if [ ! -f "models/migan/migan.pt" ]; then
# log_info "MIGAN 모델 다운로드 중..."
# wget -O models/migan/migan.pt https://github.com/open-mmlab/mmediting/releases/download/v1.0.0/migan_256x256_celeba-hq_20220629-3b7c8c9f.pth
#fi
#log_success "모델 다운로드 완료"
# 권한 설정
log_info "권한 설정 중..."
chmod +x scripts/*.sh
log_success "권한 설정 완료"
# 설치 완료
echo "=========================================="
log_success "🎉 x86 시스템용 인페인팅 서버 설치가 완료되었습니다!"
echo ""
log_info "다음 명령어로 서버를 시작할 수 있습니다:"
echo " cd $PROJECT_ROOT"
echo " bash scripts/start_server.sh"
echo ""
log_info "또는 자동 설정 및 실행:"
echo " bash scripts/setup_and_run.sh"
echo ""
log_info "서버 포트:"
echo " 메인 서버: http://localhost:8008"
echo " 모니터링: http://localhost:8888"
echo ""
log_info "GPU 설정:"
echo " RTX 3060 12GB 권장 설정이 자동으로 적용됩니다"
echo " 워커 수: 4-8개 (자동 조정)"
echo " 세션 수: Simple LAMA 4개, MIGAN 4개, REMBG 2개"