File size: 2,342 Bytes
478cb8f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #!/usr/bin/env python3
"""Download all flux-redux workflow models into ComfyUI/models/."""
import os, shutil, sys
os.environ.pop("HF_HUB_ENABLE_HF_TRANSFER", None)
os.environ.pop("HF_XET_HIGH_PERFORMANCE", None)
from huggingface_hub import hf_hub_download
TOKEN = os.environ["HUGGING_FACE_ACCESS_TOKEN"]
M = "/workspace/ComfyUI/models"
JOBS = [
# (repo, filename_in_repo, local_dir, local_name)
("black-forest-labs/FLUX.1-Redux-dev", "flux1-redux-dev.safetensors", "style_models", None),
("Shakker-Labs/FLUX.1-dev-ControlNet-Union-Pro-2.0", "diffusion_pytorch_model.safetensors",
"controlnet", "FLUX.1-dev-ControlNet-Union-Pro-2.0.safetensors"),
("black-forest-labs/FLUX.1-Depth-dev-lora", "flux1-depth-dev-lora.safetensors", "loras", None),
("aleph65/ComfyUI", "models/text_encoders/t5xxl_fp16.safetensors", "text_encoders", "t5xxl_fp16.safetensors"),
("aleph65/ComfyUI", "models/text_encoders/clip_l.safetensors", "text_encoders", "clip_l.safetensors"),
("aleph65/ComfyUI", "models/vae/ae.safetensors", "vae", "ae.safetensors"),
("aleph65/ComfyUI", "models/clip_vision/sigclip_vision_patch14_384.safetensors",
"clip_vision", "sigclip_vision_patch14_384.safetensors"),
("aleph65/ComfyUI", "models/loras/flux1-turbo-alpha.safetensors", "loras", "flux1-turbo-alpha.safetensors"),
("black-forest-labs/FLUX.1-schnell", "flux1-schnell.safetensors", "diffusion_models", None),
("black-forest-labs/FLUX.1-dev", "flux1-dev.safetensors", "diffusion_models", None),
]
failures = []
for repo, fname, subdir, rename in JOBS:
target = os.path.join(M, subdir, rename or os.path.basename(fname))
if os.path.exists(target) and os.path.getsize(target) > 1e6:
print(f"SKIP (exists): {target}", flush=True)
continue
print(f"DOWNLOADING {repo}/{fname} -> {target}", flush=True)
try:
p = hf_hub_download(repo_id=repo, filename=fname, token=TOKEN)
os.makedirs(os.path.dirname(target), exist_ok=True)
shutil.copy(p, target)
print(f"DONE: {target} ({os.path.getsize(target)/1e9:.2f} GB)", flush=True)
except Exception as e:
print(f"FAILED: {repo}/{fname}: {e}", flush=True)
failures.append((repo, fname))
if failures:
print("FAILURES:", failures, flush=True)
sys.exit(1)
print("ALL DOWNLOADS COMPLETE", flush=True)
|