File size: 5,377 Bytes
02514bb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#!/usr/bin/env bash
set -e

###############################################################################
# 0. Подготовка среды: обновление apt, установка unzip
###############################################################################
echo ">>> [Script 1] Step 0: Установка системных зависимостей ..."
apt-get update && apt-get install -y unzip


echo ">>> [Script 1] Step 1: Downloading MyRunpodLoraScripts.zip ..."
wget -O /workspace/MyRunpodLoraScripts.zip \
  "https://huggingface.co/Gerchegg/FeaturesFluxAI/resolve/main/MyRunpodLoraScripts.zip"

echo ">>> [Script 1] Step 2: Unzipping MyRunpodLoraScripts.zip ..."
unzip -o /workspace/MyRunpodLoraScripts.zip -d /workspace
###############################################################################
# 1. Копирование файлов из локальной папки в рабочую директорию
###############################################################################
echo ">>> [Script 1] Step 1: Копирование файлов из MyRunpodLoraScripts в /workspace ..."
mkdir -p /workspace/MyRunpodLoraScripts
cp -r /workspace/MyRunpodLoraScripts/* /workspace/

###############################################################################
# 2. Запускаем два "параллельных" потока (фона):
#   - Thread 1: Устанавливает пакеты + python Download_Train_Models.py
#   - Thread 2: Устанавливает нужные deps (kohya_ss, torch, xformers), запускает GUI
###############################################################################
echo ">>> [Script 1] Запуск параллельных потоков ..."

# ------------------ Поток 1 --------------------
(
  echo ">>> [Thread 1] Установка Python пакетов для huggingface ..."
  pip install huggingface_hub ipywidgets hf_transfer

  export HF_HUB_ENABLE_HF_TRANSFER=1

  echo ">>> [Thread 1] Запуск Download_Train_Models.py ..."
  dwn_path=$(find /workspace -name "Download_Train_Models.py" | head -n 1)
  if [ -z "$dwn_path" ]; then
    echo "[Thread 1] ОШИБКА: Download_Train_Models.py не найден!"
    exit 1
  fi

  python "$dwn_path" --dir /workspace

  echo ">>> [Thread 1] Готово."
) &

# ------------------ Поток 2 --------------------
(
  echo ">>> [Thread 2] Установка Python и OS зависимостей ..."
  apt update --yes
  yes | apt-get install python3.10-tk
  apt-get install psmisc --yes

  echo ">>> [Thread 2] Клонирование kohya_ss ..."
  cd /workspace
  if [ ! -d "/workspace/kohya_ss" ]; then
    git clone https://github.com/bmaltais/kohya_ss.git
  fi

  cd /workspace/kohya_ss

  echo ">>> [Thread 2] Создание Python venv ..."
  python3 -m venv venv
  source venv/bin/activate
  yes | apt-get install python3.10-tk

  echo ">>> [Thread 2] Запуск setup.sh ..."
  ./setup.sh -n -u

  apt update --yes
  yes | apt-get install python3.10-tk
  apt-get install psmisc --yes

  pip install hf_transfer
  export HF_HUB_ENABLE_HF_TRANSFER=0

  echo ">>> [Thread 2] Завершение процессов на порту 7860 ..."
  fuser -k 7860/tcp || true

  source venv/bin/activate

  echo ">>> [Thread 2] Обновление torch & xformers ..."
  pip uninstall -y xformers
  pip install torch==2.5.1+cu124 torchvision --index-url https://download.pytorch.org/whl/cu124
  pip install xformers==0.0.28.post3 --index-url https://download.pytorch.org/whl/cu124

  echo ">>> [Thread 2] Запуск kohya_ss GUI на 0.0.0.0:7860 ..."
  ./gui.sh --listen=0.0.0.0 --share --noverify
) &

###############################################################################
# 3. Создаём общую структуру папок (Models, Images, Logs, Configs)
###############################################################################
echo ">>> [Script 1] Создание структуры папок в /workspace/MyLoRADataset ..."
mkdir -p /workspace/MyLoRADataset/Models
mkdir -p /workspace/MyLoRADataset/Images
mkdir -p /workspace/MyLoRADataset/Logs
mkdir -p /workspace/MyLoRADataset/Configs

###############################################################################
# 4. Копирование конфигураций LoRA в папку Configs
###############################################################################
echo ">>> [Script 1] Копирование конфигураций LoRA в /workspace/MyLoRADataset/Configs ..."
cp -r /workspace/LoRA_Tab_LoRA_Training_Best_FLUX_Configs/* /workspace/MyLoRADataset/Configs/

###############################################################################
# 5. Ожидаем завершения потоков
###############################################################################
echo ">>> [Script 1] Ожидание завершения потоков ..."
wait
echo ">>> [Script 1] ГОТОВО! Теперь вы можете использовать Kohya SS GUI для обучения LoRA моделей."
echo ">>> [Script 1] Доступ к GUI: http://127.0.0.1:7860 или через внешнюю ссылку, предоставленную в выводе."
echo ">>> [Script 1] Конфигурации LoRA доступны в /workspace/MyLoRADataset/Configs"