msrcam commited on
Commit
0f04655
Β·
verified Β·
1 Parent(s): 96cd83c

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

Browse files
installers/nudify/install_flux_ultimate_nudify_v0.22.sh ADDED
@@ -0,0 +1,199 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
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'
11
+ 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"
85
+
86
+ for repo in \
87
+ "https://github.com/ltdrdata/ComfyUI-Manager.git" \
88
+ "https://github.com/ltdrdata/ComfyUI-Impact-Pack.git" \
89
+ "https://github.com/ltdrdata/ComfyUI-Impact-Subpack.git" \
90
+ "https://github.com/Gourieff/ComfyUI-ReActor.git" \
91
+ "https://github.com/cubiq/ComfyUI_essentials.git" \
92
+ "https://github.com/rgthree/rgthree-comfy.git" \
93
+ "https://github.com/ssitu/ComfyUI_UltimateSDUpscale.git" \
94
+ "https://github.com/pythongosssss/ComfyUI-Custom-Scripts.git" \
95
+ "https://github.com/chrisgoringe/cg-use-everywhere.git"
96
+ do
97
+ name=$(basename "$repo" .git)
98
+ [ ! -d "$name" ] && { echo -e "${CYAN} β†’ ${name}${NC}"; git clone --depth 1 "$repo" 2>/dev/null || true; } || echo -e "${GREEN} βœ“ ${name}${NC}"
99
+ done
100
+
101
+ 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"
122
+
123
+ dl "https://huggingface.co/Comfy-Org/flux2-klein-9B/resolve/main/split_files/text_encoders/qwen_3_8b_fp8mixed.safetensors" \
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"
131
+
132
+ dl "https://huggingface.co/Comfy-Org/flux2-dev/resolve/main/split_files/text_encoders/mistral_3_small_flux2_bf16.safetensors" \
133
+ "$COMFY_DIR/models/text_encoders/mistral_3_small_flux2_bf16.safetensors" \
134
+ "Mistral 3 Small"
135
+
136
+ echo -e "\n${MAGENTA}═══ CLIP & VAE ═══${NC}"
137
+ dl "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/clip_l.safetensors" \
138
+ "$COMFY_DIR/models/clip/clip_l.safetensors" \
139
+ "CLIP-L"
140
+
141
+ dl "https://huggingface.co/comfyanonymous/flux_text_encoders/resolve/main/t5xxl_fp8_e4m3fn.safetensors" \
142
+ "$COMFY_DIR/models/clip/t5xxl_fp8_e4m3fn.safetensors" \
143
+ "T5-XXL FP8"
144
+
145
+ dl "https://huggingface.co/black-forest-labs/FLUX.1-dev/resolve/main/ae.safetensors" \
146
+ "$COMFY_DIR/models/vae/ae.safetensors" \
147
+ "FLUX.1 VAE"
148
+
149
+ dl "https://huggingface.co/Comfy-Org/flux2-dev/resolve/main/split_files/vae/flux2-vae.safetensors" \
150
+ "$COMFY_DIR/models/vae/flux2-vae.safetensors" \
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"