msrcam commited on
Commit
42b276e
Β·
verified Β·
1 Parent(s): 607ece5

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

Browse files
installers/nudify/install_flux_ultimate_nudify_v0.20.sh ADDED
@@ -0,0 +1,285 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+ # ═══════════════════════════════════════════════════════════════════════════════
3
+ # FLUX Ultimate Nudify - Installation Script v0.20
4
+ # ═══════════════════════════════════════════════════════════════════════════════
5
+ #
6
+ # Includes:
7
+ # - FLUX.1 Kontext Dev (clothes removal)
8
+ # - FLUX.1 Dev / Fluxed Up 7.1 (anatomy)
9
+ # - FLUX.2 Klein 9B (detail refinement)
10
+ # - FLUX.2 Dev + Mistral text encoder
11
+ # - ReActor face swap
12
+ # - FaceDetailer (Impact Pack)
13
+ # - Upscale pipeline
14
+ #
15
+ # ═══════════════════════════════════════════════════════════════════════════════
16
+
17
+ set -e
18
+
19
+ # Colors
20
+ RED='\033[0;31m'
21
+ GREEN='\033[0;32m'
22
+ YELLOW='\033[1;33m'
23
+ BLUE='\033[0;34m'
24
+ MAGENTA='\033[0;35m'
25
+ CYAN='\033[0;36m'
26
+ NC='\033[0m'
27
+
28
+ # Configuration
29
+ COMFY_DIR="${COMFY_DIR:-/workspace/ComfyUI}"
30
+ CIVITAI_TOKEN="${CIVITAI_TOKEN:-eff2ba98a34d6fd7918164753e878bb9}"
31
+ HF_TOKEN="${HF_TOKEN:-}"
32
+
33
+ # Banner
34
+ echo -e "${CYAN}═══════════════════════════════════════════════════════════════════════════════${NC}"
35
+ echo -e "${CYAN} FLUX ULTIMATE NUDIFY v0.20${NC}"
36
+ echo -e "${CYAN}═══════════════════════════════════════════════════════════════════════════════${NC}"
37
+ echo ""
38
+
39
+ # ═══════════════════════════════════════════════════════════════════════════════
40
+ # INSTALL ARIA2C
41
+ # ═══════════════════════════════════════════════════════════════════════════════
42
+ apt-get update -qq && apt-get install -y -qq aria2 > /dev/null 2>&1 || true
43
+ echo -e "${GREEN}βœ“ aria2c ready${NC}"
44
+
45
+ # ═══════════════════════════════════════════════════════════════════════════════
46
+ # DOWNLOAD FUNCTION
47
+ # ═══════════════════════════════════════════════════════════════════════════════
48
+ dl() {
49
+ local url="$1"
50
+ local dest="$2"
51
+ local desc="$3"
52
+
53
+ if [ -f "$dest" ]; then
54
+ echo -e "${GREEN}βœ“ Already exists: ${desc}${NC}"
55
+ return 0
56
+ fi
57
+
58
+ mkdir -p "$(dirname "$dest")"
59
+ echo -e "${YELLOW}↓ ${desc}${NC}"
60
+
61
+ if [[ "$url" == *"civitai.com"* ]]; then
62
+ url="${url}?token=${CIVITAI_TOKEN}"
63
+ fi
64
+
65
+ if [[ "$url" == *"huggingface.co"* ]]; then
66
+ aria2c -x 16 -s 16 -k 1M -c --console-log-level=warn \
67
+ --header="Authorization: Bearer ${HF_TOKEN}" \
68
+ -d "$(dirname "$dest")" -o "$(basename "$dest")" "$url" 2>/dev/null && return 0
69
+ else
70
+ aria2c -x 16 -s 16 -k 1M -c --console-log-level=warn \
71
+ -d "$(dirname "$dest")" -o "$(basename "$dest")" "$url" 2>/dev/null && return 0
72
+ fi
73
+
74
+ echo -e "${RED}βœ— Failed: ${desc}${NC}"
75
+ return 1
76
+ }
77
+
78
+ # ═══════════════════════════════════════════════════════════════════════════════
79
+ # VERIFY COMFYUI
80
+ # ═══════════════════════════════════════════════════════════════════════════════
81
+ echo -e "\n${YELLOW}[1/7] Verifying ComfyUI...${NC}"
82
+ if [ ! -d "$COMFY_DIR" ]; then
83
+ echo -e "${RED}Error: ComfyUI not found at $COMFY_DIR${NC}"
84
+ exit 1
85
+ fi
86
+ echo -e "${GREEN}βœ“ ComfyUI found${NC}"
87
+
88
+ # ═══════════════════════════════════════════════════════════════════════════════
89
+ # CREATE DIRECTORIES
90
+ # ═══════════════════════════════════════════════════════════════════════════════
91
+ echo -e "\n${YELLOW}[2/7] Creating directories...${NC}"
92
+ mkdir -p "$COMFY_DIR/models"/{checkpoints,unet,diffusion_models,vae,clip,text_encoders,loras}
93
+ mkdir -p "$COMFY_DIR/models"/{upscale_models,insightface/models/buffalo_l,facerestore_models}
94
+ mkdir -p "$COMFY_DIR/models"/{ultralytics/bbox,ultralytics/segm,sams,reactor}
95
+ mkdir -p "$COMFY_DIR/user/default/workflows"
96
+ echo -e "${GREEN}βœ“ Directories created${NC}"
97
+
98
+ # ═══════════════════════════════════════════════════════════════════════════════
99
+ # CUSTOM NODES
100
+ # ═══════════════════════════════════════════════════════════════════════════════
101
+ echo -e "\n${YELLOW}[3/7] Installing Custom Nodes...${NC}"
102
+ cd "$COMFY_DIR/custom_nodes"
103
+
104
+ nodes=(
105
+ "https://github.com/ltdrdata/ComfyUI-Manager.git"
106
+ "https://github.com/ltdrdata/ComfyUI-Impact-Pack.git"
107
+ "https://github.com/ltdrdata/ComfyUI-Impact-Subpack.git"
108
+ "https://github.com/Gourieff/ComfyUI-ReActor.git"
109
+ "https://github.com/cubiq/ComfyUI_essentials.git"
110
+ "https://github.com/rgthree/rgthree-comfy.git"
111
+ "https://github.com/ssitu/ComfyUI_UltimateSDUpscale.git"
112
+ "https://github.com/pythongosssss/ComfyUI-Custom-Scripts.git"
113
+ "https://github.com/chrisgoringe/cg-use-everywhere.git"
114
+ )
115
+
116
+ for repo in "${nodes[@]}"; do
117
+ name=$(basename "$repo" .git)
118
+ if [ ! -d "$name" ]; then
119
+ echo -e "${CYAN} β†’ ${name}${NC}"
120
+ git clone --depth 1 "$repo" 2>/dev/null || true
121
+ else
122
+ echo -e "${GREEN} βœ“ ${name}${NC}"
123
+ fi
124
+ done
125
+
126
+ # Install requirements
127
+ for dir in ComfyUI-Impact-Pack ComfyUI-ReActor; do
128
+ if [ -f "$dir/requirements.txt" ]; then
129
+ pip install -r "$dir/requirements.txt" --break-system-packages -q 2>/dev/null || true
130
+ fi
131
+ done
132
+
133
+ # ═══════════════════════════════════════════════════════════════════════════════
134
+ # FLUX MODELS
135
+ # ═══════════════════════════════════════════════════════════════════════════════
136
+ echo -e "\n${YELLOW}[4/7] Downloading FLUX Models...${NC}"
137
+
138
+ echo -e "\n${MAGENTA}═══ FLUX.1 Kontext Dev ═══${NC}"
139
+ dl "https://huggingface.co/black-forest-labs/FLUX.1-Kontext-dev/resolve/main/flux1-kontext-dev.safetensors" \
140
+ "$COMFY_DIR/models/diffusion_models/flux1-kontext-dev.safetensors" \
141
+ "FLUX.1 Kontext Dev"
142
+
143
+ echo -e "\n${MAGENTA}═══ FLUX.1 Dev (Fluxed Up) ═══${NC}"
144
+ dl "https://huggingface.co/Comfy-Org/fluxed_up/resolve/main/fluxed-up-7.1-fp16.safetensors" \
145
+ "$COMFY_DIR/models/checkpoints/fluxed-up-7.1-fp16.safetensors" \
146
+ "Fluxed Up 7.1 FP16"
147
+
148
+ echo -e "\n${MAGENTA}═══ FLUX.2 Klein 9B ═══${NC}"
149
+ dl "https://huggingface.co/black-forest-labs/FLUX.2-klein-base-9b-fp8/resolve/main/flux-2-klein-base-9b-fp8.safetensors" \
150
+ "$COMFY_DIR/models/unet/flux-2-klein-base-9b-fp8.safetensors" \
151
+ "FLUX.2 Klein 9B FP8"
152
+
153
+ dl "https://huggingface.co/Comfy-Org/flux2-klein-9B/resolve/main/split_files/text_encoders/qwen_3_8b_fp8mixed.safetensors" \
154
+ "$COMFY_DIR/models/text_encoders/qwen_3_8b_fp8mixed.safetensors" \
155
+ "Qwen 3 8B (Klein text encoder)"
156
+
157
+ echo -e "\n${MAGENTA}═══ FLUX.2 Dev ═══${NC}"
158
+ dl "https://huggingface.co/black-forest-labs/FLUX.2-dev/resolve/main/flux2-dev.safetensors" \
159
+ "$COMFY_DIR/models/diffusion_models/flux2-dev.safetensors" \
160
+ "FLUX.2 Dev"
161
+
162
+ dl "https://huggingface.co/Comfy-Org/flux2-dev/resolve/main/split_files/text_encoders/mistral_3_small_flux2_bf16.safetensors" \
163
+ "$COMFY_DIR/models/text_encoders/mistral_3_small_flux2_bf16.safetensors" \
164
+ "Mistral 3 Small (FLUX.2 text encoder)"
165
+
166
+ echo -e "\n${MAGENTA}═══ Shared Components ═══${NC}"
167
+ dl "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/clip_l.safetensors" \
168
+ "$COMFY_DIR/models/clip/clip_l.safetensors" \
169
+ "CLIP-L"
170
+
171
+ dl "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp8_e4m3fn.safetensors" \
172
+ "$COMFY_DIR/models/clip/t5xxl_fp8_e4m3fn.safetensors" \
173
+ "T5-XXL FP8"
174
+
175
+ dl "https://huggingface.co/black-forest-labs/FLUX.1-dev/resolve/main/ae.safetensors" \
176
+ "$COMFY_DIR/models/vae/ae.safetensors" \
177
+ "FLUX.1 VAE"
178
+
179
+ dl "https://huggingface.co/Comfy-Org/flux2-dev/resolve/main/split_files/vae/flux2-vae.safetensors" \
180
+ "$COMFY_DIR/models/vae/flux2-vae.safetensors" \
181
+ "FLUX.2 VAE"
182
+
183
+ # ══════════════════════════════════��════════════════════════════════════════════
184
+ # LORAS
185
+ # ═══════════════════════════════════════════════════════════════════════════════
186
+ echo -e "\n${YELLOW}[5/7] Downloading LoRAs...${NC}"
187
+
188
+ # Flux.1 Dev LoRAs
189
+ dl "https://huggingface.co/msrcam/Flux.1_Dev_LoRas/resolve/main/flux1dev_nudity_female_v2.safetensors" \
190
+ "$COMFY_DIR/models/loras/flux1dev_nudity_female_v2.safetensors" \
191
+ "Flux1Dev Nudity Female v2"
192
+
193
+ dl "https://huggingface.co/msrcam/Flux.1_Dev_LoRas/resolve/main/flux1dev_anatomy_female.safetensors" \
194
+ "$COMFY_DIR/models/loras/flux1dev_anatomy_female.safetensors" \
195
+ "Flux1Dev Anatomy Female"
196
+
197
+ # Klein LoRAs
198
+ dl "https://huggingface.co/msrcam/Flux.2_Klein_9B_LoRas/resolve/main/flux2klein_nsfw.safetensors" \
199
+ "$COMFY_DIR/models/loras/flux2klein_nsfw.safetensors" \
200
+ "Klein NSFW"
201
+
202
+ dl "https://huggingface.co/msrcam/Flux.2_Klein_9B_LoRas/resolve/main/flux2klein_nipple.safetensors" \
203
+ "$COMFY_DIR/models/loras/flux2klein_nipple.safetensors" \
204
+ "Klein Nipple"
205
+
206
+ dl "https://huggingface.co/msrcam/Flux.2_Klein_9B_LoRas/resolve/main/flux2klein_body_version_a.safetensors" \
207
+ "$COMFY_DIR/models/loras/flux2klein_body_version_a.safetensors" \
208
+ "Klein Body Version A"
209
+
210
+ # ═══════════════════════════════════════════════════════════════════════════════
211
+ # REACTOR + DETAILER MODELS
212
+ # ═══════════════════════════════════════════════════════════════════════════════
213
+ echo -e "\n${YELLOW}[6/7] Downloading ReActor & Detailer Models...${NC}"
214
+
215
+ echo -e "\n${MAGENTA}═══ ReActor ═══${NC}"
216
+ dl "https://huggingface.co/datasets/Gourieff/ReActor/resolve/main/models/inswapper_128.onnx" \
217
+ "$COMFY_DIR/models/insightface/inswapper_128.onnx" \
218
+ "Inswapper 128"
219
+
220
+ dl "https://huggingface.co/datasets/Gourieff/ReActor/resolve/main/models/GFPGANv1.4.pth" \
221
+ "$COMFY_DIR/models/facerestore_models/GFPGANv1.4.pth" \
222
+ "GFPGAN v1.4"
223
+
224
+ dl "https://huggingface.co/datasets/Gourieff/ReActor/resolve/main/models/codeformer-v0.1.0.pth" \
225
+ "$COMFY_DIR/models/facerestore_models/codeformer.pth" \
226
+ "CodeFormer"
227
+
228
+ # InsightFace buffalo_l
229
+ for f in 1k3d68.onnx 2d106det.onnx det_10g.onnx genderage.onnx w600k_r50.onnx; do
230
+ dl "https://huggingface.co/datasets/Gourieff/ReActor/resolve/main/models/buffalo_l/$f" \
231
+ "$COMFY_DIR/models/insightface/models/buffalo_l/$f" \
232
+ "buffalo_l/$f"
233
+ done
234
+
235
+ echo -e "\n${MAGENTA}═══ Detectors ═══${NC}"
236
+ dl "https://huggingface.co/Bingsu/adetailer/resolve/main/face_yolov8m.pt" \
237
+ "$COMFY_DIR/models/ultralytics/bbox/face_yolov8m.pt" \
238
+ "Face YOLOv8m"
239
+
240
+ dl "https://huggingface.co/Bingsu/adetailer/resolve/main/hand_yolov8s.pt" \
241
+ "$COMFY_DIR/models/ultralytics/bbox/hand_yolov8s.pt" \
242
+ "Hand YOLOv8s"
243
+
244
+ dl "https://huggingface.co/Bingsu/adetailer/resolve/main/person_yolov8s-seg.pt" \
245
+ "$COMFY_DIR/models/ultralytics/segm/person_yolov8s-seg.pt" \
246
+ "Person YOLOv8s-seg"
247
+
248
+ echo -e "\n${MAGENTA}═══ SAM ═══${NC}"
249
+ dl "https://huggingface.co/spaces/abhishek/StableSAM/resolve/main/sam_vit_l_0b3195.pth" \
250
+ "$COMFY_DIR/models/sams/sam_vit_l_0b3195.pth" \
251
+ "SAM ViT-L"
252
+
253
+ echo -e "\n${MAGENTA}═══ Upscale ═══${NC}"
254
+ dl "https://huggingface.co/gemasai/4x_NMKD-Siax_200k/resolve/main/4x_NMKD-Siax_200k.pth" \
255
+ "$COMFY_DIR/models/upscale_models/4x_NMKD-Siax_200k.pth" \
256
+ "4x NMKD-Siax"
257
+
258
+ # ═══════════════════════════════════════════════════════════════════════════════
259
+ # WORKFLOW
260
+ # ═══════════════════════════════════════════════════════════════════════════════
261
+ echo -e "\n${YELLOW}[7/7] Installing Workflow...${NC}"
262
+
263
+ dl "https://huggingface.co/msrcam/ComfyUI_AutoInstallers/resolve/main/installers/nudify/Flux_Ultimate_Nudify_v0.18.json" \
264
+ "$COMFY_DIR/user/default/workflows/Flux_Ultimate_Nudify.json" \
265
+ "Workflow"
266
+
267
+ # ═══════════════════════════════════════════════════════════════════════════════
268
+ # DONE
269
+ # ══════════════════════════════════════════════════════════════���════════════════
270
+ echo -e "\n${GREEN}═══════════════════════════════════════════════════════════════════════════════${NC}"
271
+ echo -e "${GREEN} βœ“ FLUX Ultimate Nudify v0.20 - Installation Complete!${NC}"
272
+ echo -e "${GREEN}═══════════════════════════════════════════════════════════════════════════════${NC}"
273
+
274
+ echo -e "\n${CYAN}Models installed:${NC}"
275
+ echo " β€’ FLUX.1 Kontext Dev"
276
+ echo " β€’ FLUX.1 Dev (Fluxed Up 7.1)"
277
+ echo " β€’ FLUX.2 Klein 9B + Qwen encoder"
278
+ echo " β€’ FLUX.2 Dev + Mistral encoder"
279
+ echo " β€’ ReActor + InsightFace"
280
+ echo " β€’ FaceDetailer detectors + SAM"
281
+ echo " β€’ 4x NMKD-Siax upscaler"
282
+
283
+ echo -e "\n${CYAN}To start:${NC}"
284
+ echo " cd $COMFY_DIR && python main.py --listen 0.0.0.0 --port 8188"
285
+ echo ""