SynLayers commited on
Commit
d1077e4
·
verified ·
1 Parent(s): cdd6d76

Upload demo/hf_repo_assets.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. demo/hf_repo_assets.py +63 -0
demo/hf_repo_assets.py ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from __future__ import annotations
2
+
3
+ import os
4
+ from functools import lru_cache
5
+ from pathlib import Path
6
+
7
+ from huggingface_hub import snapshot_download
8
+
9
+
10
+ def get_model_repo_id() -> str | None:
11
+ return os.environ.get("SYNLAYERS_MODEL_REPO")
12
+
13
+
14
+ def get_cache_dir() -> str | None:
15
+ return os.environ.get("SYNLAYERS_HF_CACHE")
16
+
17
+
18
+ @lru_cache(maxsize=4)
19
+ def ensure_repo_assets(repo_id: str | None = None) -> Path | None:
20
+ """Download required runtime assets from the uploaded model repo when configured."""
21
+ resolved_repo_id = repo_id or get_model_repo_id()
22
+ if not resolved_repo_id:
23
+ return None
24
+
25
+ allow_patterns = [
26
+ "SynLayers_checkpoints/FLUX.1-dev/**",
27
+ "SynLayers_checkpoints/FLUX.1-dev-Controlnet-Inpainting-Alpha/**",
28
+ "SynLayers_ckpt/step_120000/**",
29
+ "ckpt/trans_vae/0008000.pt",
30
+ "ckpt/pre_trained_LoRA/**",
31
+ "ckpt/prism_ft_LoRA/**",
32
+ ]
33
+
34
+ local_root = snapshot_download(
35
+ repo_id=resolved_repo_id,
36
+ repo_type="model",
37
+ allow_patterns=allow_patterns,
38
+ cache_dir=get_cache_dir(),
39
+ )
40
+ return Path(local_root)
41
+
42
+
43
+ def build_repo_asset_overrides(repo_id: str | None = None) -> dict[str, str]:
44
+ """Return repo-local asset paths after downloading the uploaded bundle."""
45
+ local_root = ensure_repo_assets(repo_id)
46
+ if local_root is None:
47
+ return {}
48
+
49
+ return {
50
+ "repo_root": str(local_root),
51
+ "decomp_ckpt_root": str(local_root / "SynLayers_ckpt" / "step_120000"),
52
+ "pretrained_model_name_or_path": str(
53
+ local_root / "SynLayers_checkpoints" / "FLUX.1-dev"
54
+ ),
55
+ "pretrained_adapter_path": str(
56
+ local_root
57
+ / "SynLayers_checkpoints"
58
+ / "FLUX.1-dev-Controlnet-Inpainting-Alpha"
59
+ ),
60
+ "transp_vae_path": str(local_root / "ckpt" / "trans_vae" / "0008000.pt"),
61
+ "pretrained_lora_dir": str(local_root / "ckpt" / "pre_trained_LoRA"),
62
+ "artplus_lora_dir": str(local_root / "ckpt" / "prism_ft_LoRA"),
63
+ }