|
@@ -11,6 +11,8 @@ from hydra import compose
|
|
|
from hydra.utils import instantiate
|
|
from hydra.utils import instantiate
|
|
|
from omegaconf import OmegaConf
|
|
from omegaconf import OmegaConf
|
|
|
|
|
|
|
|
|
|
+from huggingface_hub import hf_hub_download
|
|
|
|
|
+
|
|
|
|
|
|
|
|
def build_sam2(
|
|
def build_sam2(
|
|
|
config_file,
|
|
config_file,
|
|
@@ -76,6 +78,18 @@ def build_sam2_video_predictor(
|
|
|
return model
|
|
return model
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+def build_sam2_hf(model_id, **kwargs):
|
|
|
|
|
+ config_file = hf_hub_download(repo_id=model_id, filename=f"{model_id}.yaml")
|
|
|
|
|
+ ckpt_path = hf_hub_download(repo_id=model_id, filename=f"{model_id}.pt")
|
|
|
|
|
+ return build_sam2_video_predictor(config_file=config_file, ckpt_path=ckpt_path, **kwargs)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+def build_sam2_video_predictor_hf(model_id, **kwargs):
|
|
|
|
|
+ config_file = hf_hub_download(repo_id=model_id, filename=f"{model_id}.yaml")
|
|
|
|
|
+ ckpt_path = hf_hub_download(repo_id=model_id, filename=f"{model_id}.pt")
|
|
|
|
|
+ return build_sam2_video_predictor(config_file=config_file, ckpt_path=ckpt_path, **kwargs)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
def _load_checkpoint(model, ckpt_path):
|
|
def _load_checkpoint(model, ckpt_path):
|
|
|
if ckpt_path is not None:
|
|
if ckpt_path is not None:
|
|
|
sd = torch.load(ckpt_path, map_location="cpu")["model"]
|
|
sd = torch.load(ckpt_path, map_location="cpu")["model"]
|
|
@@ -86,4 +100,4 @@ def _load_checkpoint(model, ckpt_path):
|
|
|
if unexpected_keys:
|
|
if unexpected_keys:
|
|
|
logging.error(unexpected_keys)
|
|
logging.error(unexpected_keys)
|
|
|
raise RuntimeError()
|
|
raise RuntimeError()
|
|
|
- logging.info("Loaded checkpoint sucessfully")
|
|
|
|
|
|
|
+ logging.info("Loaded checkpoint sucessfully")
|