150 lines
4.1 KiB
Bash
Executable File
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개"
|