JCscrew commited on
Commit
93ccf4a
·
verified ·
1 Parent(s): 1b7d20a

Update script.sh

Browse files
Files changed (1) hide show
  1. script.sh +57 -48
script.sh CHANGED
@@ -287,6 +287,58 @@ provisioning_print_end() {
287
  echo ""
288
  }
289
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
290
  START_TIME=$(date +%s)
291
  log_info "開始時間: $(date)"
292
  provisioning_print_header
@@ -297,7 +349,7 @@ log_step "1" "安裝系統套件 (aria2)"
297
 
298
  if ! command -v aria2c >/dev/null 2>&1; then
299
  log_info "aria2 未安裝,開始安裝..."
300
- if command -v sudo &>/dev/null && sudo -n true 2>&/dev/null; then
301
  sudo apt-get update -qq
302
  sudo apt-get install -y -qq aria2
303
  log_success "aria2 安裝完成"
@@ -308,53 +360,10 @@ else
308
  log_success "aria2 已安裝,跳過"
309
  fi
310
 
311
- log_step "2" "安裝節點與套件"
312
-
313
- if [ ${#NODES[@]} -gt 0 ]; then
314
- cd "${COMFYUI_DIR}/custom_nodes" || exit 1
315
- log_info "並行安裝 ${#NODES[@]} 個節點..."
316
-
317
- MAX_PARALLEL=2
318
- for node in "${NODES[@]}"; do
319
- while [ $(jobs -r | wc -l) -ge $MAX_PARALLEL ]; do
320
- sleep 1
321
- done
322
- install_node "$node" &
323
- done
324
- wait
325
-
326
- log_success "節點安裝完成"
327
- cd "${COMFYUI_DIR}" || exit 1
328
- fi
329
-
330
- if [ ${#PIP_PACKAGES[@]} -gt 0 ]; then
331
- log_info "安裝額外的 Python 套件..."
332
- $PIP_BIN install -q --no-cache-dir "${PIP_PACKAGES[@]}" 2>&1 | grep -v "Requirement already satisfied" || true
333
- fi
334
-
335
- log_step "3" "下載模型文件"
336
-
337
- download_to_directory "${COMFYUI_DIR}/models/checkpoints" "${CHECKPOINT_MODELS[@]}"
338
- download_to_directory "${COMFYUI_DIR}/models/clip_vision" "${CLIP_VISION_MODELS[@]}"
339
- download_to_directory "${COMFYUI_DIR}/models/ipadapter" "${IPADAPTER_MODELS[@]}"
340
- download_to_directory "${COMFYUI_DIR}/models/sams" "${SAM_MODELS[@]}"
341
- download_to_directory "${COMFYUI_DIR}/models/ultralytics/bbox" "${ULTRALYTICS_BBOX_MODELS[@]}"
342
- download_to_directory "${COMFYUI_DIR}/models/upscale_models" "${ESRGAN_MODELS[@]}"
343
-
344
- if [ ${#WORKFLOWS[@]} -gt 0 ]; then
345
- log_info "下載工作流文件..."
346
- mkdir -p "${COMFYUI_DIR}/user/default/workflows"
347
- local MAX_PARALLEL=3
348
- for workflow_url in "${WORKFLOWS[@]}"; do
349
- while [ $(jobs -r | wc -l) -ge $MAX_PARALLEL ]; do
350
- sleep 1
351
- done
352
- local workflow_name
353
- workflow_name=$(basename "$workflow_url" | sed 's/?.*//')
354
- download_file "${COMFYUI_DIR}/user/default/workflows/${workflow_name}" "$workflow_url" &
355
- done
356
- wait
357
- fi
358
 
359
  log_step "4" "驗證下載完整性"
360
 
 
287
  echo ""
288
  }
289
 
290
+ provisioning_step2_nodes() {
291
+ log_step "2" "安裝節點與套件"
292
+
293
+ if [ ${#NODES[@]} -gt 0 ]; then
294
+ cd "${COMFYUI_DIR}/custom_nodes" || exit 1
295
+ log_info "並行安裝 ${#NODES[@]} 個節點..."
296
+
297
+ MAX_PARALLEL=2
298
+ for node in "${NODES[@]}"; do
299
+ while [ $(jobs -r | wc -l) -ge $MAX_PARALLEL ]; do
300
+ sleep 1
301
+ done
302
+ install_node "$node" &
303
+ done
304
+ wait
305
+
306
+ log_success "節點安裝完成"
307
+ cd "${COMFYUI_DIR}" || exit 1
308
+ fi
309
+
310
+ if [ ${#PIP_PACKAGES[@]} -gt 0 ]; then
311
+ log_info "安裝額外的 Python 套件..."
312
+ $PIP_BIN install -q --no-cache-dir "${PIP_PACKAGES[@]}" 2>&1 | grep -v "Requirement already satisfied" || true
313
+ fi
314
+ }
315
+
316
+ provisioning_step3_downloads() {
317
+ log_step "3" "下載模型與工作流文件"
318
+
319
+ download_to_directory "${COMFYUI_DIR}/models/checkpoints" "${CHECKPOINT_MODELS[@]}"
320
+ download_to_directory "${COMFYUI_DIR}/models/clip_vision" "${CLIP_VISION_MODELS[@]}"
321
+ download_to_directory "${COMFYUI_DIR}/models/ipadapter" "${IPADAPTER_MODELS[@]}"
322
+ download_to_directory "${COMFYUI_DIR}/models/sams" "${SAM_MODELS[@]}"
323
+ download_to_directory "${COMFYUI_DIR}/models/ultralytics/bbox" "${ULTRALYTICS_BBOX_MODELS[@]}"
324
+ download_to_directory "${COMFYUI_DIR}/models/upscale_models" "${ESRGAN_MODELS[@]}"
325
+
326
+ if [ ${#WORKFLOWS[@]} -gt 0 ]; then
327
+ log_info "下載工作流文件..."
328
+ mkdir -p "${COMFYUI_DIR}/user/default/workflows"
329
+ local MAX_PARALLEL=3
330
+ for workflow_url in "${WORKFLOWS[@]}"; do
331
+ while [ $(jobs -r | wc -l) -ge $MAX_PARALLEL ]; do
332
+ sleep 1
333
+ done
334
+ local workflow_name
335
+ workflow_name=$(basename "$workflow_url" | sed 's/?.*//')
336
+ download_file "${COMFYUI_DIR}/user/default/workflows/${workflow_name}" "$workflow_url" &
337
+ done
338
+ wait
339
+ fi
340
+ }
341
+
342
  START_TIME=$(date +%s)
343
  log_info "開始時間: $(date)"
344
  provisioning_print_header
 
349
 
350
  if ! command -v aria2c >/dev/null 2>&1; then
351
  log_info "aria2 未安裝,開始安裝..."
352
+ if command -v sudo &>/dev/null && sudo -n true 2>/dev/null; then
353
  sudo apt-get update -qq
354
  sudo apt-get install -y -qq aria2
355
  log_success "aria2 安裝完成"
 
360
  log_success "aria2 已安裝,跳過"
361
  fi
362
 
363
+ # 步驟 2 (安裝節點) 與 步驟 3 (下載模型) 並行執行
364
+ provisioning_step2_nodes &
365
+ provisioning_step3_downloads &
366
+ wait
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
367
 
368
  log_step "4" "驗證下載完整性"
369