Stage preloaded models locally
Browse files
app.py
CHANGED
|
@@ -227,11 +227,6 @@ BUILTIN_ASSETS = {
|
|
| 227 |
"image_encoder/model.safetensors"
|
| 228 |
),
|
| 229 |
}
|
| 230 |
-
PERSISTENT_MODEL_DIR = (
|
| 231 |
-
BUCKET_MOUNT
|
| 232 |
-
if BUCKET_MOUNT.is_dir()
|
| 233 |
-
else DATA_DIR / "models" if HAS_DATA_MOUNT else None
|
| 234 |
-
)
|
| 235 |
MATRIX_WIDTH = 1152
|
| 236 |
MATRIX_HEIGHT = 896
|
| 237 |
MATRIX_SAMPLER = "dpmpp_2m"
|
|
@@ -348,11 +343,6 @@ def download(url, target):
|
|
| 348 |
|
| 349 |
|
| 350 |
def model_path(kind, name):
|
| 351 |
-
mounted = BUCKET_MOUNT / kind / name
|
| 352 |
-
if mounted.is_file():
|
| 353 |
-
return mounted
|
| 354 |
-
if PERSISTENT_MODEL_DIR is not None and (kind, name) in BUILTIN_ASSETS:
|
| 355 |
-
return PERSISTENT_MODEL_DIR / kind / name
|
| 356 |
return LOCAL_MODEL_DIR / kind / name
|
| 357 |
|
| 358 |
|
|
@@ -704,40 +694,15 @@ def init_comfy():
|
|
| 704 |
for kind in MODEL_KINDS:
|
| 705 |
local = LOCAL_MODEL_DIR / kind
|
| 706 |
local.mkdir(parents=True, exist_ok=True)
|
| 707 |
-
comfy_kind = COMFY_KINDS.get(kind, kind)
|
| 708 |
folder_paths.add_model_folder_path(
|
| 709 |
-
|
| 710 |
str(local),
|
| 711 |
is_default=True,
|
| 712 |
)
|
| 713 |
-
mounted = BUCKET_MOUNT / kind
|
| 714 |
-
if mounted.is_dir():
|
| 715 |
-
folder_paths.add_model_folder_path(
|
| 716 |
-
comfy_kind,
|
| 717 |
-
str(mounted),
|
| 718 |
-
is_default=True,
|
| 719 |
-
)
|
| 720 |
-
if PERSISTENT_MODEL_DIR is not None and PERSISTENT_MODEL_DIR != BUCKET_MOUNT:
|
| 721 |
-
for kind in {kind for kind, _ in BUILTIN_ASSETS}:
|
| 722 |
-
persistent = PERSISTENT_MODEL_DIR / kind
|
| 723 |
-
if persistent == LOCAL_MODEL_DIR / kind:
|
| 724 |
-
continue
|
| 725 |
-
persistent.mkdir(parents=True, exist_ok=True)
|
| 726 |
-
folder_paths.add_model_folder_path(
|
| 727 |
-
COMFY_KINDS.get(kind, kind),
|
| 728 |
-
str(persistent),
|
| 729 |
-
is_default=True,
|
| 730 |
-
)
|
| 731 |
folder_paths.add_model_folder_path(
|
| 732 |
"ultralytics_bbox",
|
| 733 |
str(LOCAL_MODEL_DIR / "ultralytics"),
|
| 734 |
)
|
| 735 |
-
mounted_ultralytics = BUCKET_MOUNT / "ultralytics"
|
| 736 |
-
if mounted_ultralytics.is_dir():
|
| 737 |
-
folder_paths.add_model_folder_path(
|
| 738 |
-
"ultralytics_bbox",
|
| 739 |
-
str(mounted_ultralytics),
|
| 740 |
-
)
|
| 741 |
|
| 742 |
folder_paths.add_model_folder_path("custom_nodes", str(CUSTOM_NODES_DIR))
|
| 743 |
import_custom_nodes()
|
|
@@ -3135,6 +3100,18 @@ def login(p):
|
|
| 3135 |
)
|
| 3136 |
|
| 3137 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3138 |
def preload_assets():
|
| 3139 |
assets = []
|
| 3140 |
for kind, asset_ids in STARTUP_ASSET_IDS.items():
|
|
@@ -3158,7 +3135,10 @@ def preload_assets():
|
|
| 3158 |
}
|
| 3159 |
for kind, name in assets:
|
| 3160 |
log(f"Preloading {kind}/{name}")
|
| 3161 |
-
|
|
|
|
|
|
|
|
|
|
| 3162 |
if kind not in STYLE_MODEL_KINDS:
|
| 3163 |
loaders[kind](name)
|
| 3164 |
log(f"Preloaded {kind}/{name}")
|
|
|
|
| 227 |
"image_encoder/model.safetensors"
|
| 228 |
),
|
| 229 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 230 |
MATRIX_WIDTH = 1152
|
| 231 |
MATRIX_HEIGHT = 896
|
| 232 |
MATRIX_SAMPLER = "dpmpp_2m"
|
|
|
|
| 343 |
|
| 344 |
|
| 345 |
def model_path(kind, name):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 346 |
return LOCAL_MODEL_DIR / kind / name
|
| 347 |
|
| 348 |
|
|
|
|
| 694 |
for kind in MODEL_KINDS:
|
| 695 |
local = LOCAL_MODEL_DIR / kind
|
| 696 |
local.mkdir(parents=True, exist_ok=True)
|
|
|
|
| 697 |
folder_paths.add_model_folder_path(
|
| 698 |
+
COMFY_KINDS.get(kind, kind),
|
| 699 |
str(local),
|
| 700 |
is_default=True,
|
| 701 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 702 |
folder_paths.add_model_folder_path(
|
| 703 |
"ultralytics_bbox",
|
| 704 |
str(LOCAL_MODEL_DIR / "ultralytics"),
|
| 705 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 706 |
|
| 707 |
folder_paths.add_model_folder_path("custom_nodes", str(CUSTOM_NODES_DIR))
|
| 708 |
import_custom_nodes()
|
|
|
|
| 3100 |
)
|
| 3101 |
|
| 3102 |
|
| 3103 |
+
def copy_mounted_asset(kind, name):
|
| 3104 |
+
target = model_path(kind, name)
|
| 3105 |
+
if target.is_file():
|
| 3106 |
+
return
|
| 3107 |
+
log(f"Copying {kind}/{name}")
|
| 3108 |
+
target.parent.mkdir(parents=True, exist_ok=True)
|
| 3109 |
+
temp = target.with_suffix(target.suffix + ".part")
|
| 3110 |
+
shutil.copy2(BUCKET_MOUNT / kind / name, temp)
|
| 3111 |
+
temp.replace(target)
|
| 3112 |
+
log(f"Copied {kind}/{name}: {target.stat().st_size // MIB} MiB")
|
| 3113 |
+
|
| 3114 |
+
|
| 3115 |
def preload_assets():
|
| 3116 |
assets = []
|
| 3117 |
for kind, asset_ids in STARTUP_ASSET_IDS.items():
|
|
|
|
| 3135 |
}
|
| 3136 |
for kind, name in assets:
|
| 3137 |
log(f"Preloading {kind}/{name}")
|
| 3138 |
+
if (BUCKET_MOUNT / kind / name).is_file():
|
| 3139 |
+
copy_mounted_asset(kind, name)
|
| 3140 |
+
else:
|
| 3141 |
+
stage_model(kind, name)
|
| 3142 |
if kind not in STYLE_MODEL_KINDS:
|
| 3143 |
loaders[kind](name)
|
| 3144 |
log(f"Preloaded {kind}/{name}")
|