adbrasi commited on
Commit
0517d1c
·
verified ·
1 Parent(s): 014e0b1

Update ImageStudioTESTER.sh

Browse files
Files changed (1) hide show
  1. ImageStudioTESTER.sh +73 -11
ImageStudioTESTER.sh CHANGED
@@ -16,6 +16,24 @@ log_success() { echo -e "${GREEN}[✓]${NC} $1"; }
16
  log_warn() { echo -e "${YELLOW}[!]${NC} $1"; }
17
  log_error() { echo -e "${RED}[✗]${NC} $1"; }
18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  # Configuração
20
  COMFY_BASE="/workspace/comfy"
21
  COMFY_DIR="$COMFY_BASE/ComfyUI"
@@ -25,8 +43,19 @@ COMFY_PORT="8818"
25
  VENV_DIR="$COMFY_BASE/.venv"
26
  CIVITAI_TOKEN="4fcb2834969399006a736ee402b061e5"
27
 
28
- # Garantir que o diretório base exista para instalar fora de /root
29
- mkdir -p "$COMFY_BASE"
 
 
 
 
 
 
 
 
 
 
 
30
 
31
  # Performance
32
  export MAX_JOBS=32
@@ -152,6 +181,12 @@ download_hf() {
152
  else
153
  wget -q --show-progress -c -O "$target_dir/$filename" "https://huggingface.co/$url"
154
  fi
 
 
 
 
 
 
155
  }
156
 
157
  # Download Mega
@@ -172,6 +207,7 @@ download_mega() {
172
  log_warn "Mega download falhou"
173
  fi
174
  cd - >/dev/null
 
175
  }
176
 
177
  # Download normal
@@ -195,11 +231,11 @@ download_file() {
195
  # Tentar com aria2c primeiro
196
  if command -v aria2c >/dev/null 2>&1; then
197
  if [ -n "$filename" ]; then
198
- aria2c -c -x 4 -s 4 --console-log-level=warn --dir="$target_dir" --out="$filename" "$url" || \
199
  wget -q --show-progress -c -O "$target_dir/$filename" "$url" || \
200
  log_error "Download falhou: $filename"
201
  else
202
- aria2c -c -x 4 -s 4 --console-log-level=warn --dir="$target_dir" "$url" || \
203
  (cd "$target_dir" && wget -q --show-progress -c "$url") || \
204
  log_error "Download falhou: $url"
205
  fi
@@ -210,6 +246,12 @@ download_file() {
210
  (cd "$target_dir" && wget -q --show-progress -c "$url") || \
211
  log_error "Download falhou: $url"
212
  fi
 
 
 
 
 
 
213
  }
214
 
215
  # Processar downloads
@@ -244,10 +286,21 @@ clone_repo() {
244
  git clone --depth 1 "$url" "$dest" 2>/dev/null || true
245
  fi
246
 
247
- # Instalar requirements se existir
248
- if [ -f "$dest/requirements.txt" ]; then
249
- python -m pip install -q -r "$dest/requirements.txt" 2>/dev/null || true
 
 
 
 
 
 
 
 
 
 
250
  fi
 
251
  }
252
 
253
  # ========== INSTALAÇÃO ==========
@@ -260,7 +313,9 @@ log_info "========================================="
260
  log_info "[1/6] Instalando dependências do sistema..."
261
 
262
  apt-get update -qq
263
- apt-get install -y -qq python3-venv aria2 megatools git wget curl 2>/dev/null
 
 
264
 
265
  log_success "Dependências do sistema instaladas"
266
 
@@ -275,8 +330,8 @@ fi
275
 
276
  . "$VENV_DIR/bin/activate"
277
 
278
- python -m pip install -U pip wheel setuptools -q
279
- python -m pip install -U "huggingface_hub[cli,hf_transfer]" comfy-cli -q
280
 
281
  log_success "Ambiente virtual pronto e comfy-cli instalado"
282
 
@@ -298,7 +353,7 @@ GPU_INFO=$(nvidia-smi --query-gpu=name --format=csv,noheader 2>/dev/null || echo
298
 
299
  if [[ "$GPU_INFO" == *"5090"* ]] || [[ "$GPU_INFO" == *"5080"* ]]; then
300
  log_warn "RTX 5090/5080 detectada - instalando PyTorch nightly"
301
- python -m pip install --force-reinstall --pre torch==2.8.0 torchvision==0.23.0 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cu129
302
  else
303
  log_info "GPU: ${GPU_INFO:-Não detectada}"
304
  fi
@@ -323,6 +378,10 @@ for repo in "${CUSTOM_NODES[@]}"; do
323
  clone_repo "$repo" "$CN_DIR/$node_name"
324
  done
325
 
 
 
 
 
326
  log_success "Custom nodes instalados"
327
 
328
  # Verificar e iniciar
@@ -332,5 +391,8 @@ log_info "Iniciando ComfyUI..."
332
  log_info "URL: http://localhost:$COMFY_PORT"
333
  log_info "========================================="
334
 
 
 
 
335
  cd "$COMFY_DIR"
336
  exec comfy --workspace "$COMFY_DIR" launch -- --listen "$COMFY_HOST" --preview-method latent2rgb --front-end-version Comfy-Org/ComfyUI_frontend@v1.28.8 --port "$COMFY_PORT"
 
16
  log_warn() { echo -e "${YELLOW}[!]${NC} $1"; }
17
  log_error() { echo -e "${RED}[✗]${NC} $1"; }
18
 
19
+ drop_caches() {
20
+ sync
21
+ echo 3 > /proc/sys/vm/drop_caches || true
22
+ }
23
+
24
+ flush_cache_if_large() {
25
+ local file_path="$1"
26
+ if [ -f "$file_path" ]; then
27
+ local sz
28
+ sz=$(stat -c%s "$file_path" 2>/dev/null || echo 0)
29
+ if [ "$sz" -ge 209715200 ]; then
30
+ drop_caches
31
+ fi
32
+ else
33
+ drop_caches
34
+ fi
35
+ }
36
+
37
  # Configuração
38
  COMFY_BASE="/workspace/comfy"
39
  COMFY_DIR="$COMFY_BASE/ComfyUI"
 
43
  VENV_DIR="$COMFY_BASE/.venv"
44
  CIVITAI_TOKEN="4fcb2834969399006a736ee402b061e5"
45
 
46
+ export DEBIAN_FRONTEND=noninteractive
47
+ export HF_HOME="/workspace/.hf"
48
+ export HUGGINGFACE_HUB_CACHE="$HF_HOME"
49
+ export TRANSFORMERS_CACHE="$HF_HOME"
50
+ export TMPDIR="/workspace/.tmp"
51
+ export GIT_LFS_SKIP_SMUDGE=1
52
+ export PIP_NO_CACHE_DIR=off
53
+
54
+ PIP_FLAGS="--no-cache-dir --prefer-binary --only-binary=:all:"
55
+ ARIA="aria2c -c -x 2 -s 2 --disk-cache=0 --file-allocation=none --console-log-level=warn"
56
+
57
+ # Garantir diretórios necessários para instalar fora de /root e concentrar caches
58
+ mkdir -p "$COMFY_BASE" "$HF_HOME" "$TMPDIR"
59
 
60
  # Performance
61
  export MAX_JOBS=32
 
181
  else
182
  wget -q --show-progress -c -O "$target_dir/$filename" "https://huggingface.co/$url"
183
  fi
184
+
185
+ if [ -n "$filename" ]; then
186
+ flush_cache_if_large "$target_dir/$filename"
187
+ else
188
+ drop_caches
189
+ fi
190
  }
191
 
192
  # Download Mega
 
207
  log_warn "Mega download falhou"
208
  fi
209
  cd - >/dev/null
210
+ drop_caches
211
  }
212
 
213
  # Download normal
 
231
  # Tentar com aria2c primeiro
232
  if command -v aria2c >/dev/null 2>&1; then
233
  if [ -n "$filename" ]; then
234
+ $ARIA --dir="$target_dir" --out="$filename" "$url" || \
235
  wget -q --show-progress -c -O "$target_dir/$filename" "$url" || \
236
  log_error "Download falhou: $filename"
237
  else
238
+ $ARIA --dir="$target_dir" "$url" || \
239
  (cd "$target_dir" && wget -q --show-progress -c "$url") || \
240
  log_error "Download falhou: $url"
241
  fi
 
246
  (cd "$target_dir" && wget -q --show-progress -c "$url") || \
247
  log_error "Download falhou: $url"
248
  fi
249
+
250
+ if [ -n "$filename" ]; then
251
+ flush_cache_if_large "$target_dir/$filename"
252
+ else
253
+ drop_caches
254
+ fi
255
  }
256
 
257
  # Processar downloads
 
286
  git clone --depth 1 "$url" "$dest" 2>/dev/null || true
287
  fi
288
 
289
+ }
290
+
291
+ collect_requirements_and_install() {
292
+ local base="$COMFY_DIR/custom_nodes"
293
+ local reqtmp="$TMPDIR/_all_requirements.txt"
294
+ : > "$reqtmp"
295
+ if [ -d "$base" ]; then
296
+ find "$base" -maxdepth 2 -type f -name "requirements.txt" -print0 | xargs -0 -I {} cat "{}" >> "$reqtmp" || true
297
+ sort -u -o "$reqtmp" "$reqtmp"
298
+ if [ -s "$reqtmp" ]; then
299
+ log_info "Instalando requirements combinados dos custom nodes"
300
+ python -m pip install ${PIP_FLAGS} -r "$reqtmp"
301
+ fi
302
  fi
303
+ rm -f "$reqtmp"
304
  }
305
 
306
  # ========== INSTALAÇÃO ==========
 
313
  log_info "[1/6] Instalando dependências do sistema..."
314
 
315
  apt-get update -qq
316
+ apt-get install -y -qq --no-install-recommends python3-venv aria2 megatools git wget curl 2>/dev/null
317
+ apt-get clean
318
+ rm -rf /var/lib/apt/lists/*
319
 
320
  log_success "Dependências do sistema instaladas"
321
 
 
330
 
331
  . "$VENV_DIR/bin/activate"
332
 
333
+ python -m pip install ${PIP_FLAGS} -U pip wheel setuptools -q
334
+ python -m pip install ${PIP_FLAGS} -U "huggingface_hub[cli,hf_transfer]" comfy-cli -q
335
 
336
  log_success "Ambiente virtual pronto e comfy-cli instalado"
337
 
 
353
 
354
  if [[ "$GPU_INFO" == *"5090"* ]] || [[ "$GPU_INFO" == *"5080"* ]]; then
355
  log_warn "RTX 5090/5080 detectada - instalando PyTorch nightly"
356
+ python -m pip install ${PIP_FLAGS} --force-reinstall --pre torch==2.8.0 torchvision==0.23.0 torchaudio==2.8.0 --index-url https://download.pytorch.org/whl/cu129
357
  else
358
  log_info "GPU: ${GPU_INFO:-Não detectada}"
359
  fi
 
378
  clone_repo "$repo" "$CN_DIR/$node_name"
379
  done
380
 
381
+ collect_requirements_and_install
382
+ python -m pip cache purge || true
383
+ conda clean -a -y 2>/dev/null || true
384
+
385
  log_success "Custom nodes instalados"
386
 
387
  # Verificar e iniciar
 
391
  log_info "URL: http://localhost:$COMFY_PORT"
392
  log_info "========================================="
393
 
394
+ rm -rf "$TMPDIR"
395
+ mkdir -p "$TMPDIR"
396
+
397
  cd "$COMFY_DIR"
398
  exec comfy --workspace "$COMFY_DIR" launch -- --listen "$COMFY_HOST" --preview-method latent2rgb --front-end-version Comfy-Org/ComfyUI_frontend@v1.28.8 --port "$COMFY_PORT"