Spaces:
Running
Running
Add Impact-Subpack and fix ControlNet model path
Browse filesCritical fixes to match reference workflow exactly:
- Add ComfyUI-Impact-Subpack v1.3.5 (provides UltralyticsDetectorProvider)
- Pin Impact-Subpack to v1.3.5 as used in reference workflow
- Fix ControlNet model path: controlnet/ → model_patches/ (correct directory)
Now all nodes, versions, and paths match the reference repo.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
app.py
CHANGED
|
@@ -36,6 +36,7 @@ def setup():
|
|
| 36 |
# 2. Setup Custom Nodes
|
| 37 |
nodes = [
|
| 38 |
"https://github.com/ltdrdata/ComfyUI-Impact-Pack",
|
|
|
|
| 39 |
"https://github.com/wildminder/ComfyUI-dype",
|
| 40 |
"https://github.com/rgthree/rgthree-comfy",
|
| 41 |
"https://github.com/BadCafeCode/masquerade-nodes-comfyui",
|
|
@@ -46,25 +47,29 @@ def setup():
|
|
| 46 |
custom_nodes_path = os.path.join(COMFYUI_DIR, "custom_nodes")
|
| 47 |
os.makedirs(custom_nodes_path, exist_ok=True)
|
| 48 |
|
| 49 |
-
# Pin Impact
|
| 50 |
IMPACT_PACK_COMMIT = "61bd8397a18e7e7668e6a24e95168967768c2bed"
|
|
|
|
| 51 |
|
| 52 |
for url in nodes:
|
| 53 |
name = url.split("/")[-1]
|
| 54 |
node_dest = os.path.join(custom_nodes_path, name)
|
| 55 |
if not os.path.exists(node_dest):
|
| 56 |
subprocess.run(["git", "clone", url, node_dest], check=True)
|
| 57 |
-
# Checkout specific
|
| 58 |
-
if "Impact-Pack"
|
| 59 |
subprocess.run(["git", "checkout", IMPACT_PACK_COMMIT], cwd=node_dest, check=True)
|
| 60 |
print(f"Pinned Impact Pack to commit {IMPACT_PACK_COMMIT}")
|
|
|
|
|
|
|
|
|
|
| 61 |
|
| 62 |
# 3. Models Download logic (Using hf_transfer for speed)
|
| 63 |
model_configs = [
|
| 64 |
{"repo": "Comfy-Org/z_image_turbo", "file": "split_files/vae/ae.safetensors", "dest": "models/vae/ae.safetensors"},
|
| 65 |
{"repo": "Comfy-Org/z_image_turbo", "file": "split_files/diffusion_models/z_image_turbo_bf16.safetensors", "dest": "models/diffusion_models/z_image_turbo_bf16.safetensors"},
|
| 66 |
{"repo": "Comfy-Org/z_image_turbo", "file": "split_files/text_encoders/qwen_3_4b.safetensors", "dest": "models/text_encoders/qwen_3_4b.safetensors"},
|
| 67 |
-
{"repo": "alibaba-pai/Z-Image-Turbo-Fun-Controlnet-Union", "file": "Z-Image-Turbo-Fun-Controlnet-Union.safetensors", "dest": "models/
|
| 68 |
{"repo": "deepghs/yolo-face", "file": "yolov8n-face/model.pt", "dest": "models/ultralytics/bbox/yolov8n-face.pt"},
|
| 69 |
# SAM model for FaceDetailer
|
| 70 |
{"repo": "YouLiXiya/YL-SAM", "file": "sam_vit_b_01ec64.pth", "dest": "models/sams/sam_vit_b_01ec64.pth"}
|
|
|
|
| 36 |
# 2. Setup Custom Nodes
|
| 37 |
nodes = [
|
| 38 |
"https://github.com/ltdrdata/ComfyUI-Impact-Pack",
|
| 39 |
+
"https://github.com/ltdrdata/ComfyUI-Impact-Subpack",
|
| 40 |
"https://github.com/wildminder/ComfyUI-dype",
|
| 41 |
"https://github.com/rgthree/rgthree-comfy",
|
| 42 |
"https://github.com/BadCafeCode/masquerade-nodes-comfyui",
|
|
|
|
| 47 |
custom_nodes_path = os.path.join(COMFYUI_DIR, "custom_nodes")
|
| 48 |
os.makedirs(custom_nodes_path, exist_ok=True)
|
| 49 |
|
| 50 |
+
# Pin Impact packs to exact versions used in reference workflow
|
| 51 |
IMPACT_PACK_COMMIT = "61bd8397a18e7e7668e6a24e95168967768c2bed"
|
| 52 |
+
IMPACT_SUBPACK_VERSION = "v1.3.5"
|
| 53 |
|
| 54 |
for url in nodes:
|
| 55 |
name = url.split("/")[-1]
|
| 56 |
node_dest = os.path.join(custom_nodes_path, name)
|
| 57 |
if not os.path.exists(node_dest):
|
| 58 |
subprocess.run(["git", "clone", url, node_dest], check=True)
|
| 59 |
+
# Checkout specific versions for Impact packs to match reference workflow
|
| 60 |
+
if name == "ComfyUI-Impact-Pack":
|
| 61 |
subprocess.run(["git", "checkout", IMPACT_PACK_COMMIT], cwd=node_dest, check=True)
|
| 62 |
print(f"Pinned Impact Pack to commit {IMPACT_PACK_COMMIT}")
|
| 63 |
+
elif name == "ComfyUI-Impact-Subpack":
|
| 64 |
+
subprocess.run(["git", "checkout", IMPACT_SUBPACK_VERSION], cwd=node_dest, check=True)
|
| 65 |
+
print(f"Pinned Impact Subpack to version {IMPACT_SUBPACK_VERSION}")
|
| 66 |
|
| 67 |
# 3. Models Download logic (Using hf_transfer for speed)
|
| 68 |
model_configs = [
|
| 69 |
{"repo": "Comfy-Org/z_image_turbo", "file": "split_files/vae/ae.safetensors", "dest": "models/vae/ae.safetensors"},
|
| 70 |
{"repo": "Comfy-Org/z_image_turbo", "file": "split_files/diffusion_models/z_image_turbo_bf16.safetensors", "dest": "models/diffusion_models/z_image_turbo_bf16.safetensors"},
|
| 71 |
{"repo": "Comfy-Org/z_image_turbo", "file": "split_files/text_encoders/qwen_3_4b.safetensors", "dest": "models/text_encoders/qwen_3_4b.safetensors"},
|
| 72 |
+
{"repo": "alibaba-pai/Z-Image-Turbo-Fun-Controlnet-Union", "file": "Z-Image-Turbo-Fun-Controlnet-Union.safetensors", "dest": "models/model_patches/Z-Image-Turbo-Fun-Controlnet-Union.safetensors"},
|
| 73 |
{"repo": "deepghs/yolo-face", "file": "yolov8n-face/model.pt", "dest": "models/ultralytics/bbox/yolov8n-face.pt"},
|
| 74 |
# SAM model for FaceDetailer
|
| 75 |
{"repo": "YouLiXiya/YL-SAM", "file": "sam_vit_b_01ec64.pth", "dest": "models/sams/sam_vit_b_01ec64.pth"}
|