msrcam commited on
Commit
4a29aed
Β·
verified Β·
1 Parent(s): 0f04655

Upload installers/nudify/install_flux_ultimate_nudify_v0.22.sh with huggingface_hub

Browse files
installers/nudify/install_flux_ultimate_nudify_v0.22.sh CHANGED
@@ -2,9 +2,14 @@
2
  # ═══════════════════════════════════════════════════════════════════════════════
3
  # FLUX Ultimate Nudify - Installation Script v0.22
4
  # ═══════════════════════════════════════════════════════════════════════════════
 
 
 
 
5
 
6
  set -e
7
 
 
8
  RED='\033[0;31m'
9
  GREEN='\033[0;32m'
10
  YELLOW='\033[1;33m'
@@ -12,73 +17,67 @@ MAGENTA='\033[0;35m'
12
  CYAN='\033[0;36m'
13
  NC='\033[0m'
14
 
 
15
  COMFY_DIR="${COMFY_DIR:-/workspace/ComfyUI}"
16
  CIVITAI_TOKEN="${CIVITAI_TOKEN:-eff2ba98a34d6fd7918164753e878bb9}"
 
17
 
18
- # Auto-detect HF token
19
- if [ -z "$HF_TOKEN" ]; then
20
- if [ -f "$HOME/.cache/huggingface/token" ]; then
21
- HF_TOKEN=$(cat "$HOME/.cache/huggingface/token")
22
- echo -e "${GREEN}βœ“ Using cached HF token${NC}"
23
- elif [ -f "$HOME/.huggingface/token" ]; then
24
- HF_TOKEN=$(cat "$HOME/.huggingface/token")
25
- echo -e "${GREEN}βœ“ Using cached HF token${NC}"
26
- fi
27
- fi
28
-
29
  MIRROR="https://huggingface.co/msrcam/ComfyUI_Models/resolve/main"
30
 
 
31
  echo -e "${CYAN}═══════════════════════════════════════════════════════════════════════════════${NC}"
32
  echo -e "${CYAN} FLUX ULTIMATE NUDIFY v0.22${NC}"
33
  echo -e "${CYAN}═══════════════════════════════════════════════════════════════════════════════${NC}"
 
34
 
 
35
  apt-get update -qq && apt-get install -y -qq aria2 > /dev/null 2>&1 || true
36
  echo -e "${GREEN}βœ“ aria2c ready${NC}"
37
 
38
- # Download function with proper token handling
39
  dl() {
40
  local url="$1"
41
  local dest="$2"
42
  local desc="$3"
43
 
44
- [ -f "$dest" ] && { echo -e "${GREEN}βœ“ Exists: ${desc}${NC}"; return 0; }
 
 
 
45
 
46
  mkdir -p "$(dirname "$dest")"
47
  echo -e "${YELLOW}↓ ${desc}${NC}"
48
 
 
49
  [[ "$url" == *"civitai.com"* ]] && url="${url}?token=${CIVITAI_TOKEN}"
 
50
 
51
- # Use token for HuggingFace
52
- if [[ "$url" == *"huggingface.co"* ]] && [ -n "$HF_TOKEN" ]; then
53
- aria2c -x 16 -s 16 -k 1M -c --console-log-level=warn \
54
- --header="Authorization: Bearer ${HF_TOKEN}" \
55
- -d "$(dirname "$dest")" -o "$(basename "$dest")" "$url" 2>/dev/null && {
56
- echo -e "${GREEN}βœ“ ${desc}${NC}"
57
- return 0
58
- }
59
- else
60
- aria2c -x 16 -s 16 -k 1M -c --console-log-level=warn \
61
- -d "$(dirname "$dest")" -o "$(basename "$dest")" "$url" 2>/dev/null && {
62
- echo -e "${GREEN}βœ“ ${desc}${NC}"
63
- return 0
64
- }
65
- fi
66
 
67
  echo -e "${RED}βœ— Failed: ${desc}${NC}"
68
  return 1
69
  }
70
 
 
 
71
  # ═══════════════════════════════════════════════════════════════════════════════
72
  echo -e "\n${YELLOW}[1/7] Setup...${NC}"
73
- [ ! -d "$COMFY_DIR" ] && { echo -e "${RED}ComfyUI not found${NC}"; exit 1; }
74
  echo -e "${GREEN}βœ“ ComfyUI found${NC}"
75
 
76
  mkdir -p "$COMFY_DIR/models"/{checkpoints,unet,diffusion_models,vae,clip,text_encoders,loras}
77
  mkdir -p "$COMFY_DIR/models"/{upscale_models,insightface/models/buffalo_l,facerestore_models}
78
- mkdir -p "$COMFY_DIR/models"/{ultralytics/bbox,ultralytics/segm,sams}
79
  mkdir -p "$COMFY_DIR/user/default/workflows"
80
  echo -e "${GREEN}οΏ½οΏ½ Directories created${NC}"
81
 
 
 
82
  # ═══════════════════════════════════════════════════════════════════════════════
83
  echo -e "\n${YELLOW}[2/7] Custom Nodes...${NC}"
84
  cd "$COMFY_DIR/custom_nodes"
@@ -102,20 +101,31 @@ for dir in ComfyUI-Impact-Pack ComfyUI-ReActor; do
102
  [ -f "$dir/requirements.txt" ] && pip install -r "$dir/requirements.txt" --break-system-packages -q 2>/dev/null || true
103
  done
104
 
 
 
 
 
 
 
 
 
 
 
 
105
  # ═══════════════════════════════════════════════════════════════════════════════
106
  echo -e "\n${YELLOW}[3/7] FLUX Models...${NC}"
107
 
108
- echo -e "\n${MAGENTA}═══ Checkpoints (from mirror) ═══${NC}"
109
  dl "$MIRROR/checkpoints/flux/fluxed-up-7.1-fp16.safetensors" \
110
  "$COMFY_DIR/models/checkpoints/fluxed-up-7.1-fp16.safetensors" \
111
  "Fluxed Up 7.1"
112
 
113
- echo -e "\n${MAGENTA}═══ FLUX.1 Kontext Dev (gated) ═══${NC}"
114
  dl "https://huggingface.co/black-forest-labs/FLUX.1-Kontext-dev/resolve/main/flux1-kontext-dev.safetensors" \
115
  "$COMFY_DIR/models/diffusion_models/flux1-kontext-dev.safetensors" \
116
  "FLUX.1 Kontext Dev"
117
 
118
- echo -e "\n${MAGENTA}═══ FLUX.2 Klein 9B (gated) ═══${NC}"
119
  dl "https://huggingface.co/black-forest-labs/FLUX.2-klein-base-9b-fp8/resolve/main/flux-2-klein-base-9b-fp8.safetensors" \
120
  "$COMFY_DIR/models/unet/flux-2-klein-base-9b-fp8.safetensors" \
121
  "FLUX.2 Klein 9B"
@@ -124,7 +134,7 @@ dl "https://huggingface.co/Comfy-Org/flux2-klein-9B/resolve/main/split_files/tex
124
  "$COMFY_DIR/models/text_encoders/qwen_3_8b_fp8mixed.safetensors" \
125
  "Qwen 3 8B"
126
 
127
- echo -e "\n${MAGENTA}═══ FLUX.2 Dev (gated) ═══${NC}"
128
  dl "https://huggingface.co/black-forest-labs/FLUX.2-dev/resolve/main/flux2-dev.safetensors" \
129
  "$COMFY_DIR/models/diffusion_models/flux2-dev.safetensors" \
130
  "FLUX.2 Dev"
@@ -151,49 +161,106 @@ dl "https://huggingface.co/Comfy-Org/flux2-dev/resolve/main/split_files/vae/flux
151
  "FLUX.2 VAE"
152
 
153
  # ═══════════════════════════════════════════════════════════════════════════════
154
- echo -e "\n${YELLOW}[4/7] LoRAs (from mirror)...${NC}"
 
 
155
 
 
156
  for lora in flux1dev_nudity_female_v2 flux1dev_anatomy_female flux1dev_nipple_default flux1dev_pussy_default; do
157
- dl "$MIRROR/loras/flux1dev/${lora}.safetensors" "$COMFY_DIR/models/loras/${lora}.safetensors" "$lora"
 
 
158
  done
159
 
 
160
  for lora in flux2klein_nsfw flux2klein_nipple flux2klein_pussy flux2klein_body_version_a flux2klein_style_2000s; do
161
- dl "$MIRROR/loras/flux2klein/${lora}.safetensors" "$COMFY_DIR/models/loras/${lora}.safetensors" "$lora"
 
 
162
  done
163
 
164
- dl "$MIRROR/loras/kontext/clothes_remover_v0.safetensors" "$COMFY_DIR/models/loras/clothes_remover_v0.safetensors" "Clothes Remover"
 
 
 
165
 
166
  # ═══════��═══════════════════════════════════════════════════════════════════════
167
- echo -e "\n${YELLOW}[5/7] ReActor & Detectors (from mirror)...${NC}"
 
 
168
 
169
- dl "$MIRROR/swappers/reswapper_128.onnx" "$COMFY_DIR/models/insightface/inswapper_128.onnx" "Inswapper"
170
- dl "$MIRROR/facerestore/GFPGANv1.4.pth" "$COMFY_DIR/models/facerestore_models/GFPGANv1.4.pth" "GFPGAN"
171
- dl "$MIRROR/facerestore/codeformer.pth" "$COMFY_DIR/models/facerestore_models/codeformer.pth" "CodeFormer"
 
172
 
 
 
 
 
 
 
 
 
 
173
  for f in 1k3d68.onnx 2d106det.onnx det_10g.onnx genderage.onnx w600k_r50.onnx; do
174
- dl "$MIRROR/insightface/buffalo_l/$f" "$COMFY_DIR/models/insightface/models/buffalo_l/$f" "$f"
 
 
175
  done
176
 
177
- dl "$MIRROR/detection/face_yolov8m.pt" "$COMFY_DIR/models/ultralytics/bbox/face_yolov8m.pt" "Face YOLO"
178
- dl "$MIRROR/detection/hand_yolov8s.pt" "$COMFY_DIR/models/ultralytics/bbox/hand_yolov8s.pt" "Hand YOLO"
179
- dl "$MIRROR/detection/person_yolov8s-seg.pt" "$COMFY_DIR/models/ultralytics/segm/person_yolov8s-seg.pt" "Person YOLO"
180
- dl "$MIRROR/detection/sam_vit_l_0b3195.pth" "$COMFY_DIR/models/sams/sam_vit_l_0b3195.pth" "SAM"
181
- dl "$MIRROR/upscalers/4x_NMKD-Siax_200k.pth" "$COMFY_DIR/models/upscale_models/4x_NMKD-Siax_200k.pth" "4x Upscaler"
 
 
 
 
 
 
 
182
 
 
 
 
 
 
 
 
 
 
 
 
183
  # ═══════════════════════════════════════════════════════════════════════════════
184
  echo -e "\n${YELLOW}[6/7] Workflow...${NC}"
185
  dl "https://huggingface.co/msrcam/ComfyUI_AutoInstallers/resolve/main/installers/nudify/Flux_Ultimate_Nudify_v1.14.json" \
186
  "$COMFY_DIR/user/default/workflows/Flux_Ultimate_Nudify.json" \
187
- "Workflow"
188
 
189
  # ═══════════════════════════════════════════════════════════════════════════════
190
- echo -e "\n${YELLOW}[7/7] Symlinks...${NC}"
 
 
 
 
 
 
 
 
191
  ln -sf "$COMFY_DIR/models/ultralytics/bbox/face_yolov8m.pt" "$COMFY_DIR/models/ultralytics/face_yolov8m.pt" 2>/dev/null || true
192
  ln -sf "$COMFY_DIR/models/ultralytics/bbox/hand_yolov8s.pt" "$COMFY_DIR/models/ultralytics/hand_yolov8s.pt" 2>/dev/null || true
193
- echo -e "${GREEN}βœ“ Done${NC}"
194
 
 
 
 
 
195
  # ═══════════════════════════════════════════════════════════════════════════════
196
  echo -e "\n${GREEN}═══════════════════════════════════════════════════════════════════════════════${NC}"
197
  echo -e "${GREEN} βœ“ FLUX Ultimate Nudify v0.22 - Complete!${NC}"
198
  echo -e "${GREEN}═══════════════════════════════════════════════════════════════════════════════${NC}"
199
- echo -e "\n${CYAN}Start:${NC} cd $COMFY_DIR && python main.py --listen 0.0.0.0 --port 8188"
 
 
 
 
2
  # ═══════════════════════════════════════════════════════════════════════════════
3
  # FLUX Ultimate Nudify - Installation Script v0.22
4
  # ═══════════════════════════════════════════════════════════════════════════════
5
+ #
6
+ # Uses msrcam mirror repo for reliable downloads
7
+ #
8
+ # ═══════════════════════════════════════════════════════════════════════════════
9
 
10
  set -e
11
 
12
+ # Colors
13
  RED='\033[0;31m'
14
  GREEN='\033[0;32m'
15
  YELLOW='\033[1;33m'
 
17
  CYAN='\033[0;36m'
18
  NC='\033[0m'
19
 
20
+ # Configuration
21
  COMFY_DIR="${COMFY_DIR:-/workspace/ComfyUI}"
22
  CIVITAI_TOKEN="${CIVITAI_TOKEN:-eff2ba98a34d6fd7918164753e878bb9}"
23
+ HF_TOKEN="${HF_TOKEN:-}"
24
 
25
+ # Mirror repo
 
 
 
 
 
 
 
 
 
 
26
  MIRROR="https://huggingface.co/msrcam/ComfyUI_Models/resolve/main"
27
 
28
+ # Banner
29
  echo -e "${CYAN}═══════════════════════════════════════════════════════════════════════════════${NC}"
30
  echo -e "${CYAN} FLUX ULTIMATE NUDIFY v0.22${NC}"
31
  echo -e "${CYAN}═══════════════════════════════════════════════════════════════════════════════${NC}"
32
+ echo ""
33
 
34
+ # Install aria2c
35
  apt-get update -qq && apt-get install -y -qq aria2 > /dev/null 2>&1 || true
36
  echo -e "${GREEN}βœ“ aria2c ready${NC}"
37
 
38
+ # Download function
39
  dl() {
40
  local url="$1"
41
  local dest="$2"
42
  local desc="$3"
43
 
44
+ if [ -f "$dest" ]; then
45
+ echo -e "${GREEN}βœ“ Exists: ${desc}${NC}"
46
+ return 0
47
+ fi
48
 
49
  mkdir -p "$(dirname "$dest")"
50
  echo -e "${YELLOW}↓ ${desc}${NC}"
51
 
52
+ local headers=""
53
  [[ "$url" == *"civitai.com"* ]] && url="${url}?token=${CIVITAI_TOKEN}"
54
+ [[ "$url" == *"huggingface.co"* ]] && [ -n "$HF_TOKEN" ] && headers="--header=Authorization: Bearer ${HF_TOKEN}"
55
 
56
+ aria2c -x 16 -s 16 -k 1M -c --console-log-level=warn $headers \
57
+ -d "$(dirname "$dest")" -o "$(basename "$dest")" "$url" 2>/dev/null && {
58
+ echo -e "${GREEN}βœ“ ${desc}${NC}"
59
+ return 0
60
+ }
 
 
 
 
 
 
 
 
 
 
61
 
62
  echo -e "${RED}βœ— Failed: ${desc}${NC}"
63
  return 1
64
  }
65
 
66
+ # ═══════════════════════════════════════════════════════════════════════════════
67
+ # VERIFY & SETUP
68
  # ═══════════════════════════════════════════════════════════════════════════════
69
  echo -e "\n${YELLOW}[1/7] Setup...${NC}"
70
+ [ ! -d "$COMFY_DIR" ] && { echo -e "${RED}ComfyUI not found at $COMFY_DIR${NC}"; exit 1; }
71
  echo -e "${GREEN}βœ“ ComfyUI found${NC}"
72
 
73
  mkdir -p "$COMFY_DIR/models"/{checkpoints,unet,diffusion_models,vae,clip,text_encoders,loras}
74
  mkdir -p "$COMFY_DIR/models"/{upscale_models,insightface/models/buffalo_l,facerestore_models}
75
+ mkdir -p "$COMFY_DIR/models"/{ultralytics/bbox,ultralytics/segm,sams,reactor}
76
  mkdir -p "$COMFY_DIR/user/default/workflows"
77
  echo -e "${GREEN}οΏ½οΏ½ Directories created${NC}"
78
 
79
+ # ═══════════════════════════════════════════════════════════════════════════════
80
+ # CUSTOM NODES
81
  # ═══════════════════════════════════════════════════════════════════════════════
82
  echo -e "\n${YELLOW}[2/7] Custom Nodes...${NC}"
83
  cd "$COMFY_DIR/custom_nodes"
 
101
  [ -f "$dir/requirements.txt" ] && pip install -r "$dir/requirements.txt" --break-system-packages -q 2>/dev/null || true
102
  done
103
 
104
+ # Remove broken GroundingDino if exists
105
+ rm -rf ComfyUI-GroundingDino 2>/dev/null || true
106
+
107
+ # Install onnxruntime-gpu for ReActor
108
+ pip install onnxruntime-gpu --break-system-packages -q 2>/dev/null || true
109
+
110
+ # Fix numpy compatibility
111
+ pip install "numpy<2.4" --break-system-packages -q 2>/dev/null || true
112
+
113
+ # ═══════════════════════════════════════════════════════════════════════════════
114
+ # FLUX MODELS (from mirror)
115
  # ═══════════════════════════════════════════════════════════════════════════════
116
  echo -e "\n${YELLOW}[3/7] FLUX Models...${NC}"
117
 
118
+ echo -e "\n${MAGENTA}═══ Checkpoints ═══${NC}"
119
  dl "$MIRROR/checkpoints/flux/fluxed-up-7.1-fp16.safetensors" \
120
  "$COMFY_DIR/models/checkpoints/fluxed-up-7.1-fp16.safetensors" \
121
  "Fluxed Up 7.1"
122
 
123
+ echo -e "\n${MAGENTA}═══ FLUX.1 Kontext Dev ═══${NC}"
124
  dl "https://huggingface.co/black-forest-labs/FLUX.1-Kontext-dev/resolve/main/flux1-kontext-dev.safetensors" \
125
  "$COMFY_DIR/models/diffusion_models/flux1-kontext-dev.safetensors" \
126
  "FLUX.1 Kontext Dev"
127
 
128
+ echo -e "\n${MAGENTA}═══ FLUX.2 Klein 9B ═══${NC}"
129
  dl "https://huggingface.co/black-forest-labs/FLUX.2-klein-base-9b-fp8/resolve/main/flux-2-klein-base-9b-fp8.safetensors" \
130
  "$COMFY_DIR/models/unet/flux-2-klein-base-9b-fp8.safetensors" \
131
  "FLUX.2 Klein 9B"
 
134
  "$COMFY_DIR/models/text_encoders/qwen_3_8b_fp8mixed.safetensors" \
135
  "Qwen 3 8B"
136
 
137
+ echo -e "\n${MAGENTA}═══ FLUX.2 Dev ═══${NC}"
138
  dl "https://huggingface.co/black-forest-labs/FLUX.2-dev/resolve/main/flux2-dev.safetensors" \
139
  "$COMFY_DIR/models/diffusion_models/flux2-dev.safetensors" \
140
  "FLUX.2 Dev"
 
161
  "FLUX.2 VAE"
162
 
163
  # ═══════════════════════════════════════════════════════════════════════════════
164
+ # LORAS (from mirror)
165
+ # ═══════════════════════════════════════════════════════════════════════════════
166
+ echo -e "\n${YELLOW}[4/7] LoRAs...${NC}"
167
 
168
+ echo -e "${MAGENTA}═══ Flux.1 Dev LoRAs ═══${NC}"
169
  for lora in flux1dev_nudity_female_v2 flux1dev_anatomy_female flux1dev_nipple_default flux1dev_pussy_default; do
170
+ dl "$MIRROR/loras/flux1dev/${lora}.safetensors" \
171
+ "$COMFY_DIR/models/loras/${lora}.safetensors" \
172
+ "$lora"
173
  done
174
 
175
+ echo -e "\n${MAGENTA}═══ Flux.2 Klein LoRAs ═══${NC}"
176
  for lora in flux2klein_nsfw flux2klein_nipple flux2klein_pussy flux2klein_body_version_a flux2klein_style_2000s; do
177
+ dl "$MIRROR/loras/flux2klein/${lora}.safetensors" \
178
+ "$COMFY_DIR/models/loras/${lora}.safetensors" \
179
+ "$lora"
180
  done
181
 
182
+ echo -e "\n${MAGENTA}═══ Kontext LoRAs ═══${NC}"
183
+ dl "$MIRROR/loras/kontext/clothes_remover_v0.safetensors" \
184
+ "$COMFY_DIR/models/loras/clothes_remover_v0.safetensors" \
185
+ "Clothes Remover v0"
186
 
187
  # ═══════��═══════════════════════════════════════════════════════════════════════
188
+ # REACTOR & DETECTORS (from mirror)
189
+ # ═══════════════════════════════════════════════════════════════════════════════
190
+ echo -e "\n${YELLOW}[5/7] ReActor & Detectors...${NC}"
191
 
192
+ echo -e "${MAGENTA}═══ Face Swap ═══${NC}"
193
+ dl "$MIRROR/swappers/reswapper_128.onnx" \
194
+ "$COMFY_DIR/models/insightface/inswapper_128.onnx" \
195
+ "Inswapper 128"
196
 
197
+ dl "$MIRROR/facerestore/GFPGANv1.4.pth" \
198
+ "$COMFY_DIR/models/facerestore_models/GFPGANv1.4.pth" \
199
+ "GFPGAN v1.4"
200
+
201
+ dl "$MIRROR/facerestore/codeformer.pth" \
202
+ "$COMFY_DIR/models/facerestore_models/codeformer.pth" \
203
+ "CodeFormer"
204
+
205
+ echo -e "\n${MAGENTA}═══ InsightFace buffalo_l ═══${NC}"
206
  for f in 1k3d68.onnx 2d106det.onnx det_10g.onnx genderage.onnx w600k_r50.onnx; do
207
+ dl "$MIRROR/insightface/buffalo_l/$f" \
208
+ "$COMFY_DIR/models/insightface/models/buffalo_l/$f" \
209
+ "buffalo_l/$f"
210
  done
211
 
212
+ echo -e "\n${MAGENTA}═══ Detectors ═══${NC}"
213
+ dl "$MIRROR/detection/face_yolov8m.pt" \
214
+ "$COMFY_DIR/models/ultralytics/bbox/face_yolov8m.pt" \
215
+ "Face YOLOv8m"
216
+
217
+ dl "$MIRROR/detection/hand_yolov8s.pt" \
218
+ "$COMFY_DIR/models/ultralytics/bbox/hand_yolov8s.pt" \
219
+ "Hand YOLOv8s"
220
+
221
+ dl "$MIRROR/detection/person_yolov8s-seg.pt" \
222
+ "$COMFY_DIR/models/ultralytics/segm/person_yolov8s-seg.pt" \
223
+ "Person YOLOv8s-seg"
224
 
225
+ dl "$MIRROR/detection/sam_vit_l_0b3195.pth" \
226
+ "$COMFY_DIR/models/sams/sam_vit_l_0b3195.pth" \
227
+ "SAM ViT-L"
228
+
229
+ echo -e "\n${MAGENTA}═══ Upscaler ═══${NC}"
230
+ dl "$MIRROR/upscalers/4x_NMKD-Siax_200k.pth" \
231
+ "$COMFY_DIR/models/upscale_models/4x_NMKD-Siax_200k.pth" \
232
+ "4x NMKD-Siax"
233
+
234
+ # ═══════════════════════════════════════════════════════════════════════════════
235
+ # WORKFLOW
236
  # ═══════════════════════════════════════════════════════════════════════════════
237
  echo -e "\n${YELLOW}[6/7] Workflow...${NC}"
238
  dl "https://huggingface.co/msrcam/ComfyUI_AutoInstallers/resolve/main/installers/nudify/Flux_Ultimate_Nudify_v1.14.json" \
239
  "$COMFY_DIR/user/default/workflows/Flux_Ultimate_Nudify.json" \
240
+ "Workflow v1.14"
241
 
242
  # ═══════════════════════════════════════════════════════════════════════════════
243
+ # SYMLINKS for Impact Pack paths
244
+ # ═══════════════════════════════════════════════════════════════════════════════
245
+ echo -e "\n${YELLOW}[7/7] Creating symlinks...${NC}"
246
+ cd "$COMFY_DIR/models"
247
+
248
+ # SAM
249
+ [ ! -L "sams/sam_vit_l_0b3195.pth" ] && [ -f "sams/sam_vit_l_0b3195.pth" ] || true
250
+
251
+ # Ultralytics expects specific paths
252
  ln -sf "$COMFY_DIR/models/ultralytics/bbox/face_yolov8m.pt" "$COMFY_DIR/models/ultralytics/face_yolov8m.pt" 2>/dev/null || true
253
  ln -sf "$COMFY_DIR/models/ultralytics/bbox/hand_yolov8s.pt" "$COMFY_DIR/models/ultralytics/hand_yolov8s.pt" 2>/dev/null || true
 
254
 
255
+ echo -e "${GREEN}βœ“ Symlinks created${NC}"
256
+
257
+ # ═══════════════════════════════════════════════════════════════════════════════
258
+ # DONE
259
  # ═══════════════════════════════════════════════════════════════════════════════
260
  echo -e "\n${GREEN}═══════════════════════════════════════════════════════════════════════════════${NC}"
261
  echo -e "${GREEN} βœ“ FLUX Ultimate Nudify v0.22 - Complete!${NC}"
262
  echo -e "${GREEN}═══════════════════════════════════════════════════════════════════════════════${NC}"
263
+
264
+ echo -e "\n${CYAN}Start ComfyUI:${NC}"
265
+ echo " cd $COMFY_DIR && python main.py --listen 0.0.0.0 --port 8188"
266
+ echo ""