R1000 commited on
Commit
d613cfb
·
verified ·
1 Parent(s): 710e19f

Update start.sh

Browse files
Files changed (1) hide show
  1. start.sh +47 -33
start.sh CHANGED
@@ -4,10 +4,48 @@ set -Eeuo pipefail
4
  COMFY="${COMFYUI_PATH:-/app/ComfyUI}"
5
 
6
  # ------------------------------------------------------------
7
- # Runtime directories
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  # ------------------------------------------------------------
9
- # This is intentionally done before ComfyUI starts.
10
- # ComfyUI 0.35.x creates /app/ComfyUI/user itself.
11
  mkdir -p \
12
  "$COMFY/user" \
13
  "$COMFY/input" \
@@ -19,23 +57,8 @@ mkdir -p \
19
  "$COMFY/models/vae"
20
 
21
  # ------------------------------------------------------------
22
- # ComfyUI Manager Security Setup
23
- # ------------------------------------------------------------
24
- MANAGER_CONFIG_DIR="$COMFY/user/default/ComfyUI-Manager"
25
- # mkdir -p "$MANAGER_CONFIG_DIR"
26
- # cat << 'EOF' > "$MANAGER_CONFIG_DIR/config.ini"
27
- # [ComfyUI-Manager]
28
- # security_level = weak
29
- # privacy_mode = false
30
- # EOF
31
- # echo "[INFO] ComfyUI Manager security level set to weak."
32
-
33
- # ------------------------------------------------------------
34
- # Persistent storage
35
  # ------------------------------------------------------------
36
- # If HF Storage is mounted at /data, models survive Space restarts.
37
- # Without persistent storage, downloaded models live in the container
38
- # filesystem and may have to be downloaded again after a rebuild/restart.
39
  PERSIST_ROOT="/data/comfyui"
40
 
41
  if [ -d "/data" ] && [ -w "/data" ]; then
@@ -52,10 +75,8 @@ mkdir -p \
52
  "$MODEL_ROOT/vae"
53
 
54
  # ------------------------------------------------------------
55
- # Model directory links
56
  # ------------------------------------------------------------
57
- # Only replace an empty ComfyUI model directory.
58
- # This avoids deleting any models supplied in the Space image.
59
  link_model_dir() {
60
  local name="$1"
61
  local target="$COMFY/models/$name"
@@ -86,7 +107,7 @@ link_model_dir text_encoders
86
  link_model_dir vae
87
 
88
  echo "============================================================"
89
- echo "ComfyUI Krea2 - Hugging Face CPU Space v2"
90
  echo "============================================================"
91
 
92
  python - <<'PY'
@@ -100,9 +121,8 @@ print("RAM limit is controlled by the Hugging Face Space hardware.")
100
  PY
101
 
102
  # ------------------------------------------------------------
103
- # Model configuration
104
  # ------------------------------------------------------------
105
- # Q3_K_S is selected for the ~15 GB RAM CPU Space.
106
  GGUF_REPO="${KREA2_GGUF_REPO:-realrebelai/KREA-2_GGUFs}"
107
  GGUF_FILE="${KREA2_GGUF_FILE:-TURBO/Krea-2-Turbo-Q3_K_S.gguf}"
108
 
@@ -120,9 +140,6 @@ QWEN_PATH="$COMFY/models/text_encoders/$(basename "$QWEN_FILE")"
120
  VAE_PATH="$COMFY/models/vae/$(basename "$VAE_FILE")"
121
  WORKFLOW_PATH="$COMFY/workflows/$(basename "$WORKFLOW_FILE")"
122
 
123
- # ------------------------------------------------------------
124
- # Hugging Face downloader
125
- # ------------------------------------------------------------
126
  download_hf() {
127
  local repo="$1"
128
  local file="$2"
@@ -159,9 +176,6 @@ print("[OK] downloaded:", dest)
159
  PY
160
  }
161
 
162
- # ------------------------------------------------------------
163
- # Download models
164
- # ------------------------------------------------------------
165
  if [ "${KREA2_DOWNLOAD_MODELS:-1}" = "1" ]; then
166
  download_hf "$GGUF_REPO" "$GGUF_FILE" "$GGUF_PATH"
167
  download_hf "$QWEN_REPO" "$QWEN_FILE" "$QWEN_PATH"
@@ -172,7 +186,7 @@ else
172
  fi
173
 
174
  # ------------------------------------------------------------
175
- # CPU optimization
176
  # ------------------------------------------------------------
177
  export OMP_NUM_THREADS="${OMP_NUM_THREADS:-2}"
178
  export MKL_NUM_THREADS="${MKL_NUM_THREADS:-2}"
@@ -190,4 +204,4 @@ exec python -u main.py \
190
  --cpu \
191
  --listen 0.0.0.0 \
192
  --port "${PORT:-7860}" \
193
- --output-directory "$COMFY/output"
 
4
  COMFY="${COMFYUI_PATH:-/app/ComfyUI}"
5
 
6
  # ------------------------------------------------------------
7
+ # 1. Bootstrap & Update ComfyUI (Git & Pip)
8
+ # ------------------------------------------------------------
9
+ # ตรวจสอบว่ามีโฟลเดอร์ ComfyUI หรือไม่ ถ้าไม่มีให้ Clone ใหม่
10
+ if [ ! -d "$COMFY" ]; then
11
+ echo "[INFO] ComfyUI not found. Cloning from GitHub..."
12
+ git clone https://github.com/comfyanonymous/ComfyUI.git "$COMFY"
13
+ fi
14
+
15
+ # อัปเดต ComfyUI และ Dependencies หากตั้งค่า COMFYUI_UPDATE=1
16
+ if [ "${COMFYUI_UPDATE:-0}" = "1" ]; then
17
+ echo "[INFO] Updating ComfyUI core via git pull..."
18
+ cd "$COMFY"
19
+ git pull origin master
20
+
21
+ echo "[INFO] Updating ComfyUI dependencies via pip..."
22
+ python -m pip install --no-cache-dir --upgrade -r requirements.txt
23
+ fi
24
+
25
+ # อัปเดต Custom Nodes ทั้งหมดที่มีไฟล์ .git และ requirements.txt
26
+ if [ "${COMFYUI_UPDATE:-0}" = "1" ] && [ -d "$COMFY/custom_nodes" ]; then
27
+ echo "[INFO] Updating custom nodes via git & pip..."
28
+ find "$COMFY/custom_nodes" -mindepth 1 -maxdepth 1 -type d | while read -r node_dir; do
29
+ if [ -d "$node_dir/.git" ]; then
30
+ echo " -> Updating $(basename "$node_dir")"
31
+ git -C "$node_dir" pull --rebase || echo " [WARN] Failed to pull $(basename "$node_dir")"
32
+
33
+ if [ -f "$node_dir/requirements.txt" ]; then
34
+ python -m pip install --no-cache-dir -r "$node_dir/requirements.txt" || echo " [WARN] Failed to install requirements for $(basename "$node_dir")"
35
+ fi
36
+ fi
37
+ done
38
+ fi
39
+
40
+ # ติดตั้ง Python Packages เพิ่มเติมแบบไดนามิก (ถ้ามีการระบุในตัวแปรสภาพแวดล้อม)
41
+ if [ -n "${EXTRA_PIP_PACKAGES:-}" ]; then
42
+ echo "[INFO] Installing extra pip packages: $EXTRA_PIP_PACKAGES"
43
+ python -m pip install --no-cache-dir $EXTRA_PIP_PACKAGES
44
+ fi
45
+
46
+ # ------------------------------------------------------------
47
+ # 2. Runtime directories
48
  # ------------------------------------------------------------
 
 
49
  mkdir -p \
50
  "$COMFY/user" \
51
  "$COMFY/input" \
 
57
  "$COMFY/models/vae"
58
 
59
  # ------------------------------------------------------------
60
+ # 3. Persistent storage (Hugging Face Space /data)
 
 
 
 
 
 
 
 
 
 
 
 
61
  # ------------------------------------------------------------
 
 
 
62
  PERSIST_ROOT="/data/comfyui"
63
 
64
  if [ -d "/data" ] && [ -w "/data" ]; then
 
75
  "$MODEL_ROOT/vae"
76
 
77
  # ------------------------------------------------------------
78
+ # 4. Model directory links
79
  # ------------------------------------------------------------
 
 
80
  link_model_dir() {
81
  local name="$1"
82
  local target="$COMFY/models/$name"
 
107
  link_model_dir vae
108
 
109
  echo "============================================================"
110
+ echo "ComfyUI Krea2 - Hugging Face CPU Space v2 (Git/Pip Enabled)"
111
  echo "============================================================"
112
 
113
  python - <<'PY'
 
121
  PY
122
 
123
  # ------------------------------------------------------------
124
+ # 5. Model configuration & Downloader
125
  # ------------------------------------------------------------
 
126
  GGUF_REPO="${KREA2_GGUF_REPO:-realrebelai/KREA-2_GGUFs}"
127
  GGUF_FILE="${KREA2_GGUF_FILE:-TURBO/Krea-2-Turbo-Q3_K_S.gguf}"
128
 
 
140
  VAE_PATH="$COMFY/models/vae/$(basename "$VAE_FILE")"
141
  WORKFLOW_PATH="$COMFY/workflows/$(basename "$WORKFLOW_FILE")"
142
 
 
 
 
143
  download_hf() {
144
  local repo="$1"
145
  local file="$2"
 
176
  PY
177
  }
178
 
 
 
 
179
  if [ "${KREA2_DOWNLOAD_MODELS:-1}" = "1" ]; then
180
  download_hf "$GGUF_REPO" "$GGUF_FILE" "$GGUF_PATH"
181
  download_hf "$QWEN_REPO" "$QWEN_FILE" "$QWEN_PATH"
 
186
  fi
187
 
188
  # ------------------------------------------------------------
189
+ # 6. CPU optimization & Start
190
  # ------------------------------------------------------------
191
  export OMP_NUM_THREADS="${OMP_NUM_THREADS:-2}"
192
  export MKL_NUM_THREADS="${MKL_NUM_THREADS:-2}"
 
204
  --cpu \
205
  --listen 0.0.0.0 \
206
  --port "${PORT:-7860}" \
207
+ --output-directory "$COMFY/output"