#!/usr/bin/env python3 import os import json from sam2.build_sam import build_sam2 from sam2.automatic_mask_generator import SAM2AutomaticMaskGenerator # Simulate the _load_sam2 function logic but with proper path handling CONFIG_PATH = "/home/mike/dev/qwen-image-edit-rapid-aio-nsfw-v23/tour-comfy/config.json" print(f"CONFIG_PATH: {CONFIG_PATH}") try: with open(CONFIG_PATH) as f: conf = json.load(f) print("Current config contents:") for key, value in conf.items(): print(f" {key}: {value}") ckpt = os.path.expanduser(conf.get("sam2_checkpoint", "~/.sam/sam2.1_hiera_base_plus.pt")) cfg = conf.get("sam2_config", "configs/sam2.1/sam2.1_hiera_t.yaml") print(f"Checkpoint path from config: {ckpt}") print(f"Config path from config: {cfg}") print(f"Checkpoint exists: {os.path.exists(ckpt)}") # Try to resolve the config path properly for SAM2 print(f"Attempting to load SAM2 model with config: {cfg}") if not os.path.exists(ckpt): print("ERROR: Checkpoint file does not exist!") else: print("Attempting to load SAM2 model...") # This should work now with the correct pkg:// protocol path model = build_sam2(cfg, ckpt, device="cuda") print("SAM2 model loaded successfully!") except Exception as e: print(f"Error: {e}") import traceback traceback.print_exc()